code: def test_gemm_out(self, dtype):
      dtype = numpy.dtype(dtype)
      tol = self._tol[dtype.char.lower()]
      m, n, k = self.mnk
      a = self._make_matrix(m, k, self.transa, self.ordera, dtype)
      b = self._make_matrix(k, n, self.transb, self.orderb, dtype)
      c = self._make_matrix(m, n, "N", self.orderc, dtype)
      alpha = 0.9
      beta = 0.8
      if dtype.char in "FD":
          alpha = alpha - 1j * 0.7
          beta = beta - 1j * 0.6
      aa = self._trans_matrix(a, self.transa)
      bb = self._trans_matrix(b, self.transb)
      ref = alpha * aa.dot(bb) + beta * c
      if self.mode is not None:
          alpha = self.mode.array(alpha)
          beta = self.mode.array(beta)
      cublas.gemm(
          self.transa, self.transb, a, b, out=c, alpha=alpha, beta=beta
      )
      cupy.testing.assert_allclose(c, ref, rtol=tol, atol=tol)
  
imports: import numpy
  import pytest
  import cupy
  from cupy import cublas
  from cupy import testing
label_desc: Use image node_id 4 for calling the TestGemmAndGeam obj's underlying member method code with example usage: obj.test_gemm_out(dtype) without return types