class_docstr: Pullback metric.
  
  Let :math:`f` be an immersion :math:`f: M \rightarrow N`
  of one manifold :math:`M` into the Riemannian manifold :math:`N`
  with metric :math:`g`.
  The pull-back metric :math:`f^*g` is defined on :math:`M` for a
  base point :math:`p` as:
  :math:`(f^*g)_p(u, v) = g_{f(p)}(df_p u , df_p v)
  \quad \forall u, v \in T_pM`
  
  Note
  ----
  The pull-back metric is currently only implemented for an
  immersion into the Euclidean space, i.e. for
  
  :math:`N=\mathbb{R}^n`.
class_docstr_tok: ["Pullback","metric",".","Let",":","math",":","`","f","`","be","an","immersion",":","math",":","`","f",":","M","\\rightarrow","N","`","of","one","manifold",":","math",":","`","M","`","into","the","Riemannian","manifold",":","math",":","`","N","`","with","metric",":","math",":","`","g","`",".","The","pull-back","metric",":","math",":","`","f^","*","g","`","is","defined","on",":","math",":","`","M","`","for","a","base","point",":","math",":","`","p","`","as",":",":","math",":","`","(","f^","*","g",")","_p","(","u",",","v",")","=","g_","{","f","(","p",")","}","(","df_p","u",",","df_p","v",")","\\quad","\\forall","u",",","v","\\in","T_pM","`","Note","--","--","The","pull-back","metric","is","currently","only","implemented","for","an","immersion","into","the","Euclidean","space",",","i.e",".","for",":","math",":","`","N=\\mathbb","{","R","}","^n","`","."]
docstr: Compute the inner-product derivative matrix.
  
  The derivative of the metrix matrix is given by
  :math:`\partial_k g_{ij}(p)`
  where :math:`p` is the base_point.
  
  The index k of the derivation is last.
  
  Parameters
  ----------
  base_point : array-like, shape=[..., *shape]
      Base point.
      Optional, default: None.
  
  Returns
  -------
  inner_prod_deriv_mat : array-like, shape=[..., dim, dim, dim]
      Inner-product derivative matrix, where the index of the derivation
      is last: :math:`mat_{ijk} = \partial_k g_{ij}`.
docstr_tok: ["Compute","the","inner-product","derivative","matrix",".","The","derivative","of","the","metrix","matrix","is","given","by",":","math",":","`","\\partial_k","g_","{","ij","}","(","p",")","`","where",":","math",":","`","p","`","is","the","base_point",".","The","index","k","of","the","derivation","is","last",".","Parameters","--","--","--","--","--","base_point",":","array-like",",","shape=","[","...",",","*","shape","]","Base","point",".","Optional",",","default",":","None",".","Returns","--","--","--","-","inner_prod_deriv_mat",":","array-like",",","shape=","[","...",",","dim",",","dim",",","dim","]","Inner-product","derivative","matrix",",","where","the","index","of","the","derivation","is","last",":",":","math",":","`","mat_","{","ijk","}","=","\\partial_k","g_","{","ij","}","`","."]
code: def inner_product_derivative_matrix(self, base_point):
      r"""Compute the inner-product derivative matrix.
  
      The derivative of the metrix matrix is given by
      :math:`\partial_k g_{ij}(p)`
      where :math:`p` is the base_point.
  
      The index k of the derivation is last.
  
      Parameters
      ----------
      base_point : array-like, shape=[..., *shape]
          Base point.
          Optional, default: None.
  
      Returns
      -------
      inner_prod_deriv_mat : array-like, shape=[..., dim, dim, dim]
          Inner-product derivative matrix, where the index of the derivation
          is last: :math:`mat_{ijk} = \partial_k g_{ij}`.
      """
      jacobian_ai = self._space.jacobian_immersion(base_point)
      hessian_aij = self._space.hessian_immersion(base_point)
      return gs.einsum(
          "...aki,...aj->...ijk", hessian_aij, jacobian_ai
      ) + gs.einsum("...akj,...ai->...ijk", hessian_aij, jacobian_ai)
  
imports: import geomstats.backend
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.numerics.geodesic import ExpODESolver, LogShootingSolver
  from geomstats.numerics.ivp import GSIVPIntegrator
  from geomstats.vectorization import check_is_batch
label_desc: Use image node_id 4 for calling the PullbackMetric obj's underlying member method code with example usage: obj.inner_product_derivative_matrix(base_point) and returns: unknown