class_docstr: Class for the n-dimensional hyperbolic space.
  
  Common class for the n-dimensional hyperbolic space regardless the
  representation being used. This class gathers the change of coordinate
  methods that are common to all representations.
  
  This class cannot be instantiated in itself, but a public class
  `Hyperbolic` is available, that returns the class that corresponds to the
  chosen representation: Hyperboloid, Poincare Ball or Poincare Half-space.
class_docstr_tok: ["Class","for","the","n-dimensional","hyperbolic","space",".","Common","class","for","the","n-dimensional","hyperbolic","space","regardless","the","representation","being","used",".","This","class","gathers","the","change","of","coordinate","methods","that","are","common","to","all","representations",".","This","class","can","not","be","instantiated","in","itself",",","but","a","public","class","`","Hyperbolic","`","is","available",",","that","returns","the","class","that","corresponds","to","the","chosen","representation",":","Hyperboloid",",","Poincare","Ball","or","Poincare","Half-space","."]
docstr: Convert ball to half space coordinates.
  
  Convert the parameterization of a point in the hyperbolic space
  from its Poincare ball coordinates, to the Poincare half-space
  coordinates.
  
  Parameters
  ----------
  point : array-like, shape=[..., dim]
      Point in the hyperbolic space in Poincare ball coordinates.
  
  Returns
  -------
  point_ball : array-like, shape=[..., dim]
      Point in the hyperbolic space in half-space coordinates.
docstr_tok: ["Convert","ball","to","half","space","coordinates",".","Convert","the","parameterization","of","a","point","in","the","hyperbolic","space","from","its","Poincare","ball","coordinates",",","to","the","Poincare","half-space","coordinates",".","Parameters","--","--","--","--","--","point",":","array-like",",","shape=","[","...",",","dim","]","Point","in","the","hyperbolic","space","in","Poincare","ball","coordinates",".","Returns","--","--","--","-","point_ball",":","array-like",",","shape=","[","...",",","dim","]","Point","in","the","hyperbolic","space","in","half-space","coordinates","."]
code: def ball_to_half_space_coordinates(point):
      """Convert ball to half space coordinates.
  
      Convert the parameterization of a point in the hyperbolic space
      from its Poincare ball coordinates, to the Poincare half-space
      coordinates.
  
      Parameters
      ----------
      point : array-like, shape=[..., dim]
          Point in the hyperbolic space in Poincare ball coordinates.
  
      Returns
      -------
      point_ball : array-like, shape=[..., dim]
          Point in the hyperbolic space in half-space coordinates.
      """
      sq_norm = gs.sum(point**2, axis=-1)
      den = 1 + sq_norm - 2 * point[..., -1]
      component_1 = gs.einsum(
          "...i,...->...i", point[..., :-1], 2.0 / den
      )
      component_2 = (1 - sq_norm) / den
      return gs.concatenate(
          [component_1, component_2[..., None]], axis=-1
      )
  
file_path: geomstats/geomstats/geometry/_hyperbolic.py
imports: import geomstats.backend
  from geomstats.geometry.riemannian_metric import RiemannianMetric
label_desc: Use image node_id 8 for calling the _Hyperbolic obj's underlying member method code with example usage: obj.ball_to_half_space_coordinates(point) and returns: gs