docstr: ivy.Array instance method variant of ivy.matmul. This method simply
  wraps the function, and so the docstring for ivy.matmul also applies to
  this method with minimal changes.
  
  Parameters
  ----------
  self
      first input array. Should have a numeric data type. Must have at least one
      dimension.
  x2
      second input array. Should have a numeric data type. Must have at least one
      dimension.
  transpose_a
      if True, ``x1`` is transposed before multiplication.
  transpose_b
      if True, ``x2`` is transposed before multiplication.
  adjoint_a
      If True, takes the conjugate of the matrix then the transpose of the matrix.
      adjoint_a and transpose_a can not be true at the same time.
  adjoint_b
      If True, takes the conjugate of the matrix then the transpose of the matrix.
      adjoint_b and transpose_b can not be true at the same time.
  out
      optional output array, for writing the result to. It must have a
      shape that the inputs broadcast to.
  
  Returns
  -------
  ret
      An array containing the output of matrix multiplication. The returned array
      must have a data type determined by :ref:`type-promotion`. More details
      can be found in ivy.matmul.
  
  Examples
  --------
  With :class:`ivy.Array` instance inputs:
  
  >>> x = ivy.array([1., 4.])
  >>> y = ivy.array([3., 2.])
  >>> z = x.matmul(y)
  >>> print(z)
  ivy.array(11.)
docstr_tok: ["ivy.Array","instance","method","variant","of","ivy.matmul",".","This","method","simply","wraps","the","function",",","and","so","the","docstring","for","ivy.matmul","also","applies","to","this","method","with","minimal","changes",".","Parameters","--","--","--","--","--","self","first","input","array",".","Should","have","a","numeric","data","type",".","Must","have","at","least","one","dimension",".","x2","second","input","array",".","Should","have","a","numeric","data","type",".","Must","have","at","least","one","dimension",".","transpose_a","if","True",",","``","x1","``","is","transposed","before","multiplication",".","transpose_b","if","True",",","``","x2","``","is","transposed","before","multiplication",".","adjoint_a","If","True",",","takes","the","conjugate","of","the","matrix","then","the","transpose","of","the","matrix",".","adjoint_a","and","transpose_a","can","not","be","true","at","the","same","time",".","adjoint_b","If","True",",","takes","the","conjugate","of","the","matrix","then","the","transpose","of","the","matrix",".","adjoint_b","and","transpose_b","can","not","be","true","at","the","same","time",".","out","optional","output","array",",","for","writing","the","result","to",".","It","must","have","a","shape","that","the","inputs","broadcast","to",".","Returns","--","--","--","-","ret","An","array","containing","the","output","of","matrix","multiplication",".","The","returned","array","must","have","a","data","type","determined","by",":","ref",":","`","type-promotion","`",".","More","details","can","be","found","in","ivy.matmul",".","Examples","--","--","--","--","With",":","class",":","`","ivy.Array","`","instance","inputs",":",">",">",">","x","=","ivy.array","(","[","1.",",","4",".","]",")",">",">",">","y","=","ivy.array","(","[","3.",",","2",".","]",")",">",">",">","z","=","x.matmul","(","y",")",">",">",">","print","(","z",")","ivy.array","(","11",".",")"]
code: def matmul(
      self: ivy.Array,
      x2: Union[ivy.Array, ivy.NativeArray],
      /,
      *,
      transpose_a: bool = False,
      transpose_b: bool = False,
      adjoint_a: bool = False,
      adjoint_b: bool = False,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """ivy.Array instance method variant of ivy.matmul. This method simply
      wraps the function, and so the docstring for ivy.matmul also applies to
      this method with minimal changes.
  
      Parameters
      ----------
      self
          first input array. Should have a numeric data type. Must have at least one
          dimension.
      x2
          second input array. Should have a numeric data type. Must have at least one
          dimension.
      transpose_a
          if True, ``x1`` is transposed before multiplication.
      transpose_b
          if True, ``x2`` is transposed before multiplication.
      adjoint_a
          If True, takes the conjugate of the matrix then the transpose of the matrix.
          adjoint_a and transpose_a can not be true at the same time.
      adjoint_b
          If True, takes the conjugate of the matrix then the transpose of the matrix.
          adjoint_b and transpose_b can not be true at the same time.
      out
          optional output array, for writing the result to. It must have a
          shape that the inputs broadcast to.
  
      Returns
      -------
      ret
          An array containing the output of matrix multiplication. The returned array
          must have a data type determined by :ref:`type-promotion`. More details
          can be found in ivy.matmul.
  
      Examples
      --------
      With :class:`ivy.Array` instance inputs:
  
      >>> x = ivy.array([1., 4.])
      >>> y = ivy.array([3., 2.])
      >>> z = x.matmul(y)
      >>> print(z)
      ivy.array(11.)
      """
      return ivy.matmul(
          self._data,
          x2,
          transpose_a=transpose_a,
          transpose_b=transpose_b,
          adjoint_a=adjoint_a,
          adjoint_b=adjoint_b,
          out=out,
      )
  
imports: import abc
  from typing import Union, Optional, Literal, Tuple, List, Sequence
  import ivy
label_desc: Use image node_id 1 for calling the _ArrayWithLinearAlgebra obj's underlying member method code with example usage: obj.matmul() and returns: ivy