class_docstr: Class that defines operations using a Poincare ball.
class_docstr_tok: ["Class","that","defines","operations","using","a","Poincare","ball","."]
docstr: Compute the inner product matrix.
  
  Parameters
  ----------
  base_point : array-like, shape=[..., dim]
      Base point.
      Optional, defaults to zeros if None.
  
  Returns
  -------
  inner_prod_mat : array-like, shape=[..., dim, dim]
      Inner-product matrix.
docstr_tok: ["Compute","the","inner","product","matrix",".","Parameters","--","--","--","--","--","base_point",":","array-like",",","shape=","[","...",",","dim","]","Base","point",".","Optional",",","defaults","to","zeros","if","None",".","Returns","--","--","--","-","inner_prod_mat",":","array-like",",","shape=","[","...",",","dim",",","dim","]","Inner-product","matrix","."]
code: def metric_matrix(self, base_point=None):
      """Compute the inner product matrix.
  
      Parameters
      ----------
      base_point : array-like, shape=[..., dim]
          Base point.
          Optional, defaults to zeros if None.
  
      Returns
      -------
      inner_prod_mat : array-like, shape=[..., dim, dim]
          Inner-product matrix.
      """
      if base_point is None:
          base_point = gs.zeros((1, self._space.dim))
  
      lambda_base = (
          2 / (1 - gs.sum(base_point * base_point, axis=-1))
      ) ** 2
      identity = gs.eye(self._space.dim, self._space.dim)
  
      return gs.einsum("...,jk->...jk", lambda_base, identity)
  
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 7 for calling the PoincareBallMetric obj's underlying member method code with example usage: obj.metric_matrix(base_point) and returns: gs