class_docstr: Functions that operate element-by-element on whole arrays.
  
  This is a class for LAX-backed implementations of numpy ufuncs.
code: def __eq__(self, other: Any) -> bool:
      # Do not include _call, because it is computed from _func.
      return isinstance(other, ufunc) and (
          (
              self._func,
              self.__name__,
              self.identity,
              self.nin,
              self.nout,
              self.nargs,
          )
          == (
              other._func,
              other.__name__,
              other.identity,
              other.nin,
              other.nout,
              other.nargs,
          )
      )
  
imports: from __future__ import annotations
  from functools import partial
  import math
  import operator
  from typing import Any, Callable
  import jax
  from jax._src.typing import Array, ArrayLike, DTypeLike
  from jax._src.lax import lax
  from jax._src.numpy import reductions
  from jax._src.numpy.lax_numpy import _eliminate_deprecated_list_indexing, append, take
  from jax._src.numpy.reductions import _moveaxis
  from jax._src.numpy.util import _wraps, check_arraylike, _broadcast_to, _where
  from jax._src.numpy.vectorize import vectorize
  from jax._src.util import canonicalize_axis, set_module
  import numpy
label_desc: Use image node_id 3 for calling the ufunc obj's underlying member method code with example usage: obj.__eq__(other) and returns: unknown