code: def _can_use_numexpr(op, op_str, a, b, dtype_check):
      
      if op_str is not None:
  
          # required min elements (otherwise we are adding overhead)
          if np.prod(a.shape) > _MIN_ELEMENTS:
  
              # check for dtype compatibility
              dtypes = set()
              for o in [a, b]:
                  if hasattr(o, 'get_dtype_counts'):
                      s = o.get_dtype_counts()
                      if len(s) > 1:
                          return False
                      dtypes |= set(s.index)
                  elif isinstance(o, np.ndarray):
                      dtypes |= {o.dtype.name}
  
              # allowed are a superset
              if not len(dtypes) or _ALLOWED_DTYPES[dtype_check] >= dtypes:
                  return True
  
      return False
docs: return a boolean if we WILL be using numexpr