class_docstr: Class for an n-fold product manifold :math:`M^n`.
  
  Define a manifold as the product manifold of n copies of a given base
  manifold M.
  
  Parameters
  ----------
  space : NFoldManifold
      Base space.
  scales : array-like
      Scale of each metric in the product.
docstr: Compute the inner-product of two tangent vectors at a base point.
  
  Inner product defined by the Riemannian metric at point `base_point`
  between tangent vectors `tangent_vec_a` and `tangent_vec_b`.
  
  Parameters
  ----------
  tangent_vec_a : array-like, shape=[..., n_copies, *base_shape]
      First tangent vector at base point.
  tangent_vec_b : array-like, shape=[..., n_copies, *base_shape]
      Second tangent vector at base point.
  base_point : array-like, shape=[..., n_copies, *base_shape]
      Point on the manifold.
      Optional, default: None.
  
  Returns
  -------
  inner_prod : array-like, shape=[...,]
      Inner-product of the two tangent vectors.
docstr_tok: ["Compute","the","inner-product","of","two","tangent","vectors","at","a","base","point",".","Inner","product","defined","by","the","Riemannian","metric","at","point","`","base_point","`","between","tangent","vectors","`","tangent_vec_a","`","and","`","tangent_vec_b","`",".","Parameters","--","--","--","--","--","tangent_vec_a",":","array-like",",","shape=","[","...",",","n_copies",",","*","base_shape","]","First","tangent","vector","at","base","point",".","tangent_vec_b",":","array-like",",","shape=","[","...",",","n_copies",",","*","base_shape","]","Second","tangent","vector","at","base","point",".","base_point",":","array-like",",","shape=","[","...",",","n_copies",",","*","base_shape","]","Point","on","the","manifold",".","Optional",",","default",":","None",".","Returns","--","--","--","-","inner_prod",":","array-like",",","shape=","[","...",",","]","Inner-product","of","the","two","tangent","vectors","."]
code: def inner_product(self, tangent_vec_a, tangent_vec_b, base_point):
      """Compute the inner-product of two tangent vectors at a base point.
  
      Inner product defined by the Riemannian metric at point `base_point`
      between tangent vectors `tangent_vec_a` and `tangent_vec_b`.
  
      Parameters
      ----------
      tangent_vec_a : array-like, shape=[..., n_copies, *base_shape]
          First tangent vector at base point.
      tangent_vec_b : array-like, shape=[..., n_copies, *base_shape]
          Second tangent vector at base point.
      base_point : array-like, shape=[..., n_copies, *base_shape]
          Point on the manifold.
          Optional, default: None.
  
      Returns
      -------
      inner_prod : array-like, shape=[...,]
          Inner-product of the two tangent vectors.
      """
      return gs.sum(
          self.pointwise_inner_product(
              tangent_vec_a, tangent_vec_b, base_point
          ),
          axis=-1,
      )
  
imports: import geomstats.backend
  import geomstats.errors
  from geomstats.geometry.manifold import Manifold
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 4 for calling the NFoldMetric obj's underlying member method code with example usage: obj.inner_product(tangent_vec_a, tangent_vec_b, base_point) and returns: gs