class_docstr: Class for the complex Poincaré disk.
  
  The Poincaré disk is a representation of the Hyperbolic
  space of dimension 2. Its complex dimension is 1.
class_docstr_tok: ["Class","for","the","complex","Poincar\u00e9","disk",".","The","Poincar\u00e9","disk","is","a","representation","of","the","Hyperbolic","space","of","dimension","2",".","Its","complex","dimension","is","1","."]
docstr: Project a point on the complex unit disk.
  
  Parameters
  ----------
  point : array-like, shape=[..., 1]
      Point to project.
  atol : float
      Tolerance.
      Optional, default: backend atol.
  
  Returns
  -------
  projected : array-like, shape=[..., 1]
      Projected point.
docstr_tok: ["Project","a","point","on","the","complex","unit","disk",".","Parameters","--","--","--","--","--","point",":","array-like",",","shape=","[","...",",","1","]","Point","to","project",".","atol",":","float","Tolerance",".","Optional",",","default",":","backend","atol",".","Returns","--","--","--","-","projected",":","array-like",",","shape=","[","...",",","1","]","Projected","point","."]
code: def projection(point):
      """Project a point on the complex unit disk.
  
      Parameters
      ----------
      point : array-like, shape=[..., 1]
          Point to project.
      atol : float
          Tolerance.
          Optional, default: backend atol.
  
      Returns
      -------
      projected : array-like, shape=[..., 1]
          Projected point.
      """
      scalars = gs.where(
          gs.abs(point) >= 1 - gs.atol,
          (1 - gs.atol) / gs.abs(point),
          1.0,
      )
      return scalars * point
  
file_path: geomstats/geomstats/geometry/complex_poincare_disk.py
imports: import geomstats.backend
  from geomstats.geometry.base import ComplexVectorSpaceOpenSet
  from geomstats.geometry.complex_riemannian_metric import ComplexRiemannianMetric
  from geomstats.geometry.hermitian import Hermitian
label_desc: Use image node_id 4 for calling the ComplexPoincareDisk obj's underlying member method code with example usage: obj.projection(point) and returns: unknown