code: def cross(x1: Array, x2: Array, /, *, axis: int = -1) -> Array:
      """
      Array API compatible wrapper for :py:func:`np.cross <numpy.cross>`.
  
      See its docstring for more information.
      """
      if (
          x1.dtype not in _numeric_dtypes
          or x2.dtype not in _numeric_dtypes
      ):
          raise TypeError("Only numeric dtypes are allowed in cross")
      # Note: this is different from np.cross(), which broadcasts
      if x1.shape != x2.shape:
          raise ValueError("x1 and x2 must have the same shape")
      if x1.ndim == 0:
          raise ValueError(
              "cross() requires arrays of dimension at least 1"
          )
      # Note: this is different from np.cross(), which allows dimension 2
      if x1.shape[axis] != 3:
          raise ValueError("cross() dimension must equal 3")
      return Array._new(np.cross(x1._array, x2._array, axis=axis))
  
imports: from __future__ import annotations
  import functools
  from ._dtypes import _floating_dtypes, _numeric_dtypes
  from ._manipulation_functions import reshape
  from ._array_object import Array
  from .._core.internal import _normalize_axis_indices
  from typing import TYPE_CHECKING
  from typing import NamedTuple
  import cupy
label_desc: Use image node_id 2 for calling a global function with example usage: cross() and returns: Array