class_docstr: Class for the Bures-Wasserstein metric on the HPD manifold.
docstr: Compute the Bures-Wasserstein exponential map.
  
  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=[...,]
      Riemannian exponential.
docstr_tok: ["Compute","the","Bures-Wasserstein","exponential","map",".","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=","[","...",",","]","Riemannian","exponential","."]
code: def exp(self, tangent_vec, base_point):
      """Compute the Bures-Wasserstein exponential map.
  
      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=[...,]
          Riemannian exponential.
      """
      eigvals, eigvecs = gs.linalg.eigh(base_point)
      transconj_eigvecs = ComplexMatrices.transconjugate(eigvecs)
      rotated_tangent_vec = Matrices.mul(
          transconj_eigvecs, tangent_vec, eigvecs
      )
      coefficients = 1 / (eigvals[..., :, None] + eigvals[..., None, :])
      rotated_sylvester = rotated_tangent_vec * gs.cast(
          coefficients, dtype=rotated_tangent_vec.dtype
      )
      rotated_hessian = gs.einsum(
          "...ij,...j->...ij", rotated_sylvester, eigvals
      )
      rotated_hessian = Matrices.mul(rotated_hessian, rotated_sylvester)
      hessian = Matrices.mul(
          eigvecs, rotated_hessian, transconj_eigvecs
      )
  
      return base_point + tangent_vec + hessian
  
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 HPDBuresWassersteinMetric obj's underlying member method code with example usage: obj.exp(tangent_vec, base_point) and returns: unknown