class_docstr: Class for the Siegel space.
  
  Parameters
  ----------
  n : int
      Integer representing the shape of the matrices: n x n.
  symmetric : bool
      If symmetric is True, add a symmetry condition
      on the matrices to belong to the Siegel space.
      Optional, default: False.
class_docstr_tok: ["Class","for","the","Siegel","space",".","Parameters","--","--","--","--","--","n",":","int","Integer","representing","the","shape","of","the","matrices",":","n","x","n.","symmetric",":","bool","If","symmetric","is","True",",","add","a","symmetry","condition","on","the","matrices","to","belong","to","the","Siegel","space",".","Optional",",","default",":","False","."]
docstr: Check if a matrix belongs to the Siegel space.
  
  Parameters
  ----------
  point : array-like, shape=[..., n, n]
      Point to be checked.
  atol : float
      Tolerance.
      Optional, default: backend atol.
  
  Returns
  -------
  belongs : array-like, shape=[...,]
      Boolean denoting if mat belongs to the Siegel space.
docstr_tok: ["Check","if","a","matrix","belongs","to","the","Siegel","space",".","Parameters","--","--","--","--","--","point",":","array-like",",","shape=","[","...",",","n",",","n","]","Point","to","be","checked",".","atol",":","float","Tolerance",".","Optional",",","default",":","backend","atol",".","Returns","--","--","--","-","belongs",":","array-like",",","shape=","[","...",",","]","Boolean","denoting","if","mat","belongs","to","the","Siegel","space","."]
code: def belongs(self, point, atol=gs.atol):
      """Check if a matrix belongs to the Siegel space.
  
      Parameters
      ----------
      point : array-like, shape=[..., n, n]
          Point to be checked.
      atol : float
          Tolerance.
          Optional, default: backend atol.
  
      Returns
      -------
      belongs : array-like, shape=[...,]
          Boolean denoting if mat belongs to the Siegel space.
      """
      point_transconj = ComplexMatrices.transconjugate(point)
      aux = gs.matmul(point, point_transconj)
  
      axis = -1 if gs.ndim(point) == 3 else None
      belongs = gs.all(gs.linalg.eigvalsh(aux) <= 1 + atol, axis=axis)
  
      if self.symmetric:
          return gs.logical_and(belongs, Matrices.is_symmetric(point))
  
      return belongs
  
imports: import geomstats.backend
  from geomstats.geometry.base import ComplexVectorSpaceOpenSet
  from geomstats.geometry.complex_matrices import ComplexMatrices
  from geomstats.geometry.complex_riemannian_metric import ComplexRiemannianMetric
  from geomstats.geometry.hermitian_matrices import expmh, powermh
  from geomstats.geometry.matrices import Matrices
label_desc: Use image node_id 3 for calling the Siegel obj's underlying member method code with example usage: obj.belongs(point, atol) and returns: belongs, gs