code: def matmul(x1: Array, x2: Array, /) -> Array:
      """
      Array API compatible wrapper for :py:func:`np.matmul <numpy.matmul>`.
  
      See its docstring for more information.
      """
      # Note: the restriction to numeric dtypes only is different from
      # np.matmul.
      if (
          x1.dtype not in _numeric_dtypes
          or x2.dtype not in _numeric_dtypes
      ):
          raise TypeError("Only numeric dtypes are allowed in matmul")
  
      return Array._new(np.matmul(x1._array, x2._array))
  
imports: from __future__ import annotations
  from ._dtypes import _floating_dtypes, _numeric_dtypes, float32, float64, complex64, complex128
  from ._manipulation_functions import reshape
  from ._array_object import Array
  from ..core.numeric import normalize_axis_tuple
  from typing import TYPE_CHECKING
  from typing import NamedTuple
  import numpy.linalg
  import numpy
label_desc: Use image node_id 8 for calling a global function with example usage: matmul() and returns: Array