class_docstr: Class for the affine-invariant metric on the HPD manifold.
docstr: Compute the affine-invariant exponential map.
  
  Compute the Riemannian exponential at point base_point
  of tangent vector tangent_vec wrt the metric defined in inner_product.
  This gives a Hermitian positive definite matrix.
  
  Parameters
  ----------
  tangent_vec : array-like, shape=[..., n, n]
      Tangent vector at base point.
  base_point : array-like, shape=[..., n, n]
      Base point.
  
  Returns
  -------
  exp : array-like, shape=[..., n, n]
      Riemannian exponential.
docstr_tok: ["Compute","the","affine-invariant","exponential","map",".","Compute","the","Riemannian","exponential","at","point","base_point","of","tangent","vector","tangent_vec","wrt","the","metric","defined","in","inner_product",".","This","gives","a","Hermitian","positive","definite","matrix",".","Parameters","--","--","--","--","--","tangent_vec",":","array-like",",","shape=","[","...",",","n",",","n","]","Tangent","vector","at","base","point",".","base_point",":","array-like",",","shape=","[","...",",","n",",","n","]","Base","point",".","Returns","--","--","--","-","exp",":","array-like",",","shape=","[","...",",","n",",","n","]","Riemannian","exponential","."]
code: def exp(self, tangent_vec, base_point):
      """Compute the affine-invariant exponential map.
  
      Compute the Riemannian exponential at point base_point
      of tangent vector tangent_vec wrt the metric defined in inner_product.
      This gives a Hermitian positive definite matrix.
  
      Parameters
      ----------
      tangent_vec : array-like, shape=[..., n, n]
          Tangent vector at base point.
      base_point : array-like, shape=[..., n, n]
          Base point.
  
      Returns
      -------
      exp : array-like, shape=[..., n, n]
          Riemannian exponential.
      """
      sqrt_base_point, inv_sqrt_base_point = powermh(
          base_point, [1.0 / 2, -1.0 / 2]
      )
  
      tangent_vec_at_id = Matrices.mul(
          inv_sqrt_base_point, tangent_vec, inv_sqrt_base_point
      )
  
      tangent_vec_at_id = ComplexMatrices.to_hermitian(
          tangent_vec_at_id
      )
      exp_from_id = expmh(tangent_vec_at_id)
  
      return Matrices.mul(sqrt_base_point, exp_from_id, sqrt_base_point)
  
imports: import math
  import geomstats.backend
  from geomstats.geometry.base import ComplexVectorSpaceOpenSet
  from geomstats.geometry.complex_matrices import ComplexMatrices, ComplexMatricesMetric
  from geomstats.geometry.complex_riemannian_metric import ComplexRiemannianMetric
  from geomstats.geometry.general_linear import GeneralLinear
  from geomstats.geometry.hermitian_matrices import HermitianMatrices, expmh, powermh
  from geomstats.geometry.matrices import Matrices
  from geomstats.geometry.pullback_metric import PullbackDiffeoMetric
  from geomstats.geometry.spd_matrices import SymMatrixLog, logmh
  from geomstats.integrator import integrate
  from geomstats.vectorization import repeat_out
label_desc: Use image node_id 2 for calling the HPDAffineMetric obj's underlying member method code with example usage: obj.exp(tangent_vec, base_point) and returns: Matrices