class_docstr: Class for the Euclidean metric on the HPD manifold.
docstr: Compute the domain of the Euclidean exponential map.
  
  Compute the real interval of time where the Euclidean geodesic starting
  at point `base_point` in direction `tangent_vec` is defined.
  
  Parameters
  ----------
  tangent_vec : array-like, shape=[..., n, n]
      Tangent vector at base point.
  base_point : array-like, shape=[..., n, n]
      Base point.
  
  Returns
  -------
  exp_domain : array-like, shape=[..., 2]
      Interval of time where the geodesic is defined.
docstr_tok: ["Compute","the","domain","of","the","Euclidean","exponential","map",".","Compute","the","real","interval","of","time","where","the","Euclidean","geodesic","starting","at","point","`","base_point","`","in","direction","`","tangent_vec","`","is","defined",".","Parameters","--","--","--","--","--","tangent_vec",":","array-like",",","shape=","[","...",",","n",",","n","]","Tangent","vector","at","base","point",".","base_point",":","array-like",",","shape=","[","...",",","n",",","n","]","Base","point",".","Returns","--","--","--","-","exp_domain",":","array-like",",","shape=","[","...",",","2","]","Interval","of","time","where","the","geodesic","is","defined","."]
code: def exp_domain(tangent_vec, base_point):
      """Compute the domain of the Euclidean exponential map.
  
      Compute the real interval of time where the Euclidean geodesic starting
      at point `base_point` in direction `tangent_vec` is defined.
  
      Parameters
      ----------
      tangent_vec : array-like, shape=[..., n, n]
          Tangent vector at base point.
      base_point : array-like, shape=[..., n, n]
          Base point.
  
      Returns
      -------
      exp_domain : array-like, shape=[..., 2]
          Interval of time where the geodesic is defined.
      """
      invsqrt_base_point = powermh(base_point, -0.5)
      reduced_vec = gs.matmul(invsqrt_base_point, tangent_vec)
      reduced_vec = gs.matmul(reduced_vec, invsqrt_base_point)
      eigvals = gs.linalg.eigvalsh(reduced_vec)
      min_eig = gs.amin(eigvals, axis=-1)
      max_eig = gs.amax(eigvals, axis=-1)
      inf_value = gs.where(
          max_eig <= 0.0, gs.array(-math.inf), -1.0 / max_eig
      )
      sup_value = gs.where(
          min_eig >= 0.0, gs.array(-math.inf), -1.0 / min_eig
      )
      return gs.stack((inf_value, sup_value), axis=-1)
  
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 1 for calling the HPDEuclideanMetric obj's underlying member method code with example usage: obj.exp_domain(tangent_vec, base_point) and returns: gs