code: def matmul(
      a,
      b,
      transpose_a=False,
      transpose_b=False,
      adjoint_a=False,
      adjoint_b=False,
      a_is_sparse=False,
      b_is_sparse=False,
      output_type=None,
      name=None,
  ):
      if transpose_a and adjoint_a:
          raise ivy.utils.exceptions.IvyException(
              "Only one of `transpose_a` and `adjoint_a` can be True. "
              "Received `transpose_a`=True, `adjoint_a`=True."
          )
      if transpose_b and adjoint_b:
          raise ivy.utils.exceptions.IvyException(
              "Only one of `transpose_b` and `adjoint_b` can be True. "
              "Received `transpose_b`=True, `adjoint_b`=True."
          )
      return ivy.matmul(
          a,
          b,
          transpose_a=transpose_a,
          transpose_b=transpose_b,
          adjoint_a=adjoint_a,
          adjoint_b=adjoint_b,
      )
  
imports: import ivy
  from ivy.functional.frontends.tensorflow import check_tensorflow_casting
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
  from ivy.functional.frontends.tensorflow.func_wrapper import to_ivy_arrays_and_back, handle_tf_dtype
  import ivy.functional.frontends.tensorflow
label_desc: Use image node_id 20 for calling a global function with example usage: matmul(a, b, transpose_a, transpose_b, adjoint_a, adjoint_b, a_is_sparse, b_is_sparse, output_type, name) and returns: ivy