code: def floor_divide(x1: ArrayLike, x2: ArrayLike, /) -> Array:
      x1, x2 = promote_args_numeric("floor_divide", x1, x2)
      dtype = dtypes.dtype(x1)
      if dtypes.issubdtype(dtype, np.integer):
          quotient = lax.div(x1, x2)
          select = logical_and(
              lax.sign(x1) != lax.sign(x2), lax.rem(x1, x2) != 0
          )
          # TODO(mattjj): investigate why subtracting a scalar was causing promotion
          return _where(select, quotient - 1, quotient)
      elif dtypes.issubdtype(dtype, np.complexfloating):
          x1r = lax.real(x1)
          x1i = lax.imag(x1)
          x2r = lax.real(x2)
          x2i = lax.imag(x2)
          which = lax.ge(lax.abs(x2r), lax.abs(x2i))
          rat1 = _where(which, lax.full_like(x2i, 1), lax.div(x2r, x2i))
          rat2 = _where(which, lax.div(x2i, x2r), _lax_const(x2i, 1))
          out = lax.floor(
              lax.div(
                  lax.add(lax.mul(x1r, rat1), lax.mul(x1i, rat2)),
                  lax.add(lax.mul(x2r, rat1), lax.mul(x2i, rat2)),
              )
          )
          return lax.convert_element_type(out, dtype)
      else:
          return _float_divmod(x1, x2)[0]
  
imports: from __future__ import annotations
  from functools import partial
  import operator
  from textwrap import dedent
  from typing import Any, Callable, overload
  import numpy
  from jax._src import core
  from jax._src import dtypes
  from jax._src.api import jit
  from jax._src.custom_derivatives import custom_jvp
  from jax._src.lax import lax
  from jax._src.typing import Array, ArrayLike
  from jax._src.numpy.util import check_arraylike, promote_args, promote_args_inexact, promote_args_numeric, promote_dtypes_inexact, promote_dtypes_numeric, promote_shapes, _where, _wraps, check_no_float0s
label_desc: Use image node_id 20 for calling a global function with example usage: floor_divide() and returns: _where, lax, _float_divmod