code: def _matmul(self, a, b):
      if self.transa:
          a = a.swapaxes(-1, -2)
      if self.transb:
          b = b.swapaxes(-1, -2)
      if hasattr(numpy, "matmul"):
          return numpy.matmul(a, b)
      elif a.ndim == 2:
          return numpy.dot(a, b)
      else:
          return numpy.einsum("...ij,...jk->...ik", a, b)
  
imports: import unittest
  import numpy
  import chainer
  from chainer import cuda
  import chainer.functions
  from chainer import gradient_check
  from chainer import testing
  from chainer.testing import attr
  from chainer import utils
  from chainer.utils import type_check
label_desc: Use image node_id 3 for calling the TestCooMatMul obj's underlying member method code with example usage: obj._matmul(a, b) and returns: numpy, numpy, numpy