class_docstr: Pullback metric via a diffeomorphism.
  
  Diffeormorphism between full-rank correlation matrices and
  the space of lower triangular matrices with positive diagonal
  and unit normed rows.
  
  Since this image space is also diffeomorphic to another space, the
  product space of successively increasing factor-dimension open hemispheres,
  we take advantage of `ComposedDiffeo` to avoid explicitly representing
  the intermediate space.
  
  For more details, check section 7.4.1 [T2022]_.
code: def __init__(self, space):
      n = space.n
      diffeos = [CholeskyMap(), UnitNormedRowsPLTDiffeo(n)]
  
      if n == 2:
          diffeos.append(OpenHemisphereToHyperboloidDiffeo())
          image_space = Hyperboloid(dim=1)
      else:
          image_space = OpenHemispheresProduct(n=n)
  
      diffeo = ComposedDiffeo(diffeos)
  
      super().__init__(
          space=space, diffeo=diffeo, image_space=image_space
      )
  
imports: import geomstats.backend
  from geomstats.geometry.base import LevelSet
  from geomstats.geometry.diffeo import ComposedDiffeo
  from geomstats.geometry.fiber_bundle import FiberBundle
  from geomstats.geometry.general_linear import GeneralLinear
  from geomstats.geometry.hyperboloid import Hyperboloid
  from geomstats.geometry.matrices import Matrices
  from geomstats.geometry.open_hemisphere import OpenHemispheresProduct, OpenHemisphereToHyperboloidDiffeo
  from geomstats.geometry.positive_lower_triangular_matrices import UnitNormedRowsPLTDiffeo
  from geomstats.geometry.pullback_metric import PullbackDiffeoMetric
  from geomstats.geometry.quotient_metric import QuotientMetric
  from geomstats.geometry.spd_matrices import CholeskyMap, SPDAffineMetric, SPDMatrices
label_desc: Use image node_id 1 to create a new PolyHyperbolicCholeskyMetric object from inherited base classes: PullbackDiffeoMetric with example: obj = PolyHyperbolicCholeskyMetric(space)