class_docstr: Class for the space of complex matrices (m, n).
  
  Parameters
  ----------
  m, n : int
      Integers representing the shapes of the matrices: m x n.
docstr: Compute the congruent action of mat_2 on mat_1.
  
  This is :math:`mat\_2 \ mat\_1 \ mat\_2^T`.
  
  Parameters
  ----------
  mat_1 : array-like, shape=[..., n, n]
      Matrix.
  mat_2 : array-like, shape=[..., n, n]
      Matrix.
  
  Returns
  -------
  cong : array-like, shape=[..., n, n]
      Result of the congruent action.
docstr_tok: ["Compute","the","congruent","action","of","mat_2","on","mat_1",".","This","is",":","math",":","`","mat\\_2","\\","mat\\_1","\\","mat\\_2^T","`",".","Parameters","--","--","--","--","--","mat_1",":","array-like",",","shape=","[","...",",","n",",","n","]","Matrix",".","mat_2",":","array-like",",","shape=","[","...",",","n",",","n","]","Matrix",".","Returns","--","--","--","-","cong",":","array-like",",","shape=","[","...",",","n",",","n","]","Result","of","the","congruent","action","."]
code: def congruent(cls, mat_1, mat_2):
      r"""Compute the congruent action of mat_2 on mat_1.
  
      This is :math:`mat\_2 \ mat\_1 \ mat\_2^T`.
  
      Parameters
      ----------
      mat_1 : array-like, shape=[..., n, n]
          Matrix.
      mat_2 : array-like, shape=[..., n, n]
          Matrix.
  
      Returns
      -------
      cong : array-like, shape=[..., n, n]
          Result of the congruent action.
      """
      return Matrices.mul(mat_2, mat_1, cls.transconjugate(mat_2))
  
imports: import geomstats.backend
  import geomstats.errors
  from geomstats.geometry.base import ComplexMatrixVectorSpace
  from geomstats.geometry.hermitian import HermitianMetric
  from geomstats.geometry.matrices import Matrices
  from geomstats.vectorization import repeat_out
label_desc: Use image node_id 11 for calling the ComplexMatrices obj's underlying member method code with example usage: obj.congruent(cls, mat_1, mat_2) and returns: Matrices