code: def cross(x1: ArrayLike, x2: ArrayLike, /, *, axis=-1):
      check_arraylike("jnp.linalg.outer", x1, x2)
      x1, x2 = jnp.asarray(x1), jnp.asarray(x2)
      if x1.shape[axis] != 3 or x2.shape[axis] != 3:
          raise ValueError(
              "Both input arrays must be (arrays of) 3-dimensional vectors, "
              f"but they have {x1.shape[axis]=} and {x2.shape[axis]=}"
          )
      return jnp.cross(x1, x2, axis=axis)
  
imports: from __future__ import annotations
  from collections.abc import Sequence
  from functools import partial
  import numpy
  import textwrap
  import operator
  from typing import Literal, cast, overload
  import jax
  from jax import jit, custom_jvp
  from jax import lax
  from jax._src.lax import lax
  from jax._src.lax import linalg
  from jax._src.numpy import lax_numpy
  from jax._src.numpy import reductions, ufuncs
  from jax._src.numpy.util import _wraps, promote_dtypes_inexact, check_arraylike
  from jax._src.util import canonicalize_axis
  from jax._src.typing import ArrayLike, Array
label_desc: Use image node_id 35 for calling a global function with example usage: cross() and returns: jnp