class_docstr: Class for invariant metrics on Lie groups represented by vectors.
  
  Parameters
  ----------
  space : LieGroup
      Group to equip with the invariant metric
  left : bool
      Whether to use a left or right invariant metric.
      Optional, default: True.
class_docstr_tok: ["Class","for","invariant","metrics","on","Lie","groups","represented","by","vectors",".","Parameters","--","--","--","--","--","space",":","LieGroup","Group","to","equip","with","the","invariant","metric","left",":","bool","Whether","to","use","a","left","or","right","invariant","metric",".","Optional",",","default",":","True","."]
docstr: Compute inner product of two vectors in tangent space at base point.
  
  Parameters
  ----------
  tangent_vec_a : array-like, shape=[..., n, n]
      First tangent vector at base_point.
  tangent_vec_b : array-like, shape=[..., n, n]
      Second tangent vector at base_point.
  base_point : array-like, shape=[..., n, n]
      Point in the group.
      Optional, defaults to identity if 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=None
  ):
      """Compute inner product of two vectors in tangent space at base point.
  
      Parameters
      ----------
      tangent_vec_a : array-like, shape=[..., n, n]
          First tangent vector at base_point.
      tangent_vec_b : array-like, shape=[..., n, n]
          Second tangent vector at base_point.
      base_point : array-like, shape=[..., n, n]
          Point in the group.
          Optional, defaults to identity if None.
  
      Returns
      -------
      inner_prod : array-like, shape=[...,]
          Inner-product of the two tangent vectors.
      """
      if base_point is None:
          return self.inner_product_at_identity(
              tangent_vec_a, tangent_vec_b
          )
  
      tangent_translation = self._space.tangent_translation_map(
          base_point, left=self.left, inverse=True
      )
      tangent_vec_a_at_id = tangent_translation(tangent_vec_a)
      tangent_vec_b_at_id = tangent_translation(tangent_vec_b)
      return self.inner_product_at_identity(
          tangent_vec_a_at_id, tangent_vec_b_at_id
      )
  
imports: import geomstats.backend
  from geomstats.geometry.matrices import Matrices
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.integrator import integrate
  from geomstats.numerics.geodesic import ExpODESolver, LogShootingSolver
  from geomstats.numerics.ivp import GSIVPIntegrator
  from geomstats.vectorization import repeat_out
label_desc: Use image node_id 10 for calling the _InvariantMetricVector obj's underlying member method code with example usage: obj.inner_product(tangent_vec_a, tangent_vec_b, base_point) and returns: self, self