class_docstr: Class that defines operations using a Poincare ball.
class_docstr_tok: ["Class","that","defines","operations","using","a","Poincare","ball","."]
docstr: Compute the geodesic distance between two points.
  
  Parameters
  ----------
  point_a : array-like, shape=[..., dim]
      First point in the Poincare ball.
  point_b : array-like, shape=[..., dim]
      Second point in the Poincare ball.
  
  Returns
  -------
  dist : array-like, shape=[...,]
      Geodesic distance between the two points.
docstr_tok: ["Compute","the","geodesic","distance","between","two","points",".","Parameters","--","--","--","--","--","point_a",":","array-like",",","shape=","[","...",",","dim","]","First","point","in","the","Poincare","ball",".","point_b",":","array-like",",","shape=","[","...",",","dim","]","Second","point","in","the","Poincare","ball",".","Returns","--","--","--","-","dist",":","array-like",",","shape=","[","...",",","]","Geodesic","distance","between","the","two","points","."]
code: def dist(self, point_a, point_b):
      """Compute the geodesic distance between two points.
  
      Parameters
      ----------
      point_a : array-like, shape=[..., dim]
          First point in the Poincare ball.
      point_b : array-like, shape=[..., dim]
          Second point in the Poincare ball.
  
      Returns
      -------
      dist : array-like, shape=[...,]
          Geodesic distance between the two points.
      """
      point_a_norm = gs.clip(gs.sum(point_a**2, -1), 0.0, 1 - EPSILON)
      point_b_norm = gs.clip(gs.sum(point_b**2, -1), 0.0, 1 - EPSILON)
  
      diff_norm = gs.sum((point_a - point_b) ** 2, -1)
      norm_function = 1 + 2 * diff_norm / (
          (1 - point_a_norm) * (1 - point_b_norm)
      )
  
      return gs.log(norm_function + gs.sqrt(norm_function**2 - 1))
  
imports: import math
  import geomstats.algebra_utils
  import geomstats.backend
  from geomstats.geometry._hyperbolic import _Hyperbolic
  from geomstats.geometry.base import VectorSpaceOpenSet
  from geomstats.geometry.euclidean import Euclidean
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.vectorization import repeat_out
label_desc: Use image node_id 5 for calling the PoincareBallMetric obj's underlying member method code with example usage: obj.dist(point_a, point_b) and returns: gs