code: def poincare_ball_distance(c, x, y):
      r"""
      Distance between ``x`` and ``y``, on the Poincaré ball with curvature ``-c``: :math:`d_c(\mathbf{x}, \mathbf{y})`.
  
      See Section 2 of [1] for more details.
  
      [1] O.-E. Ganea, G. Bécigneul, and T. Hofmann, “Hyperbolic Neural Networks,” `arXiv:1805.09112 <http://arxiv.org/abs/1805.09112>`_, Jun. 2018.
  
      Args:
          c (tensorflow Tensor-like): the curvature of the hyperbolic space(s). Must be able to be
              broadcast to ``x`` and ``y``.
          x (tensorflow Tensor-like): a tensor containing vectors in hyperbolic space, where each
              vector is an element of the last axis (for example, if ``x`` has shape ``(2, 3, 4)``, it
              represents ``2 * 3 = 6`` hyperbolic vectors, each of length ``4``). Must be able to be
              broadcast to ``y``.
          y (tensorflow Tensor-like): a tensor containing vectors in hyperbolic space, where each
              vector is an element of the last axis similar to ``x``. Must be able to be broadcast to
              ``x``.
  
      Returns:
          A TensorFlow Tensor containing the hyperbolic distance between each of the vectors (last
          axis) in ``x`` and ``y``, using the corresponding curvature from ``c``. This tensor has the
          same shape as the Euclidean equivalent ``tf.norm(x - y)``.
      """
      sqrt_c = tf.sqrt(c)
      return (2 / sqrt_c) * _atanh(
          sqrt_c * tf.norm(poincare_ball_mobius_add(c, -x, y), axis=-1)
      )
  
file_path: stellargraph/stellargraph/utils/hyperbolic.py
imports: import tensorflow
  import numpy
label_desc: Use image node_id 6 for calling a global function with example usage: poincare_ball_distance(c, x, y) and returns: unknown