class_docstr: Riemannian gradient descent.
class_docstr_tok: ["Riemannian","gradient","descent","."]
code: def _get_vector_transport(self, space):
      if hasattr(space.metric, "parallel_transport"):
  
          def vector_transport(tan_a, tan_b, base_point, _):
              return space.metric.parallel_transport(
                  tan_a, base_point, tan_b
              )
  
      else:
  
          def vector_transport(tan_a, _, __, point):
              return space.to_tangent(tan_a, point)
  
      return vector_transport
  
imports: import logging
  import math
  from scipy.optimize import OptimizeResult
  from sklearn.base import BaseEstimator
  import geomstats.backend
  import geomstats.errors
  from geomstats.learning.frechet_mean import FrechetMean
  from geomstats.numerics.optimizers import ScipyMinimize
label_desc: Use image node_id 3 for calling the RiemannianGradientDescent obj's underlying member method code with example usage: obj._get_vector_transport(space) and returns: vector_transport, space, space