class_docstr: Class for the Fisher information metric on multinomial distributions.
  
  The Fisher information metric on the $n$-simplex of multinomial
  distributions parameters can be obtained as the pullback metric of the
  $n$-sphere using the componentwise square root.
  
  References
  ----------
  .. [K2003] R. E. Kass. The Geometry of Asymptotic Inference. Statistical
      Science, 4(3): 188 - 234, 1989.
docstr: Generate parameterized function for the geodesic curve.
  
  Geodesic curve defined by either:
  
  - an initial point and an initial tangent vector,
  - an initial point and an end point.
  
  Parameters
  ----------
  initial_point : array-like, shape=[..., dim + 1]
      Point on the manifold, initial point of the geodesic.
  end_point : array-like, shape=[..., dim + 1]
      Point on the manifold, end point of the geodesic.
      Optional, default: None.
      If None, an initial tangent vector must be given.
  initial_tangent_vec : array-like, shape=[..., dim + 1]
      Tangent vector at base point, the initial speed of the geodesics.
      Optional, default: None.
      If None, an end point must be given and a logarithm is computed.
  
  Returns
  -------
  path : callable
      Time parameterized geodesic curve. If a batch of initial
      conditions is passed, the output array's first dimension
      represents time, and the second corresponds to the different
      initial conditions.
docstr_tok: ["Generate","parameterized","function","for","the","geodesic","curve",".","Geodesic","curve","defined","by","either",":","-","an","initial","point","and","an","initial","tangent","vector",",","-","an","initial","point","and","an","end","point",".","Parameters","--","--","--","--","--","initial_point",":","array-like",",","shape=","[","...",",","dim","+","1","]","Point","on","the","manifold",",","initial","point","of","the","geodesic",".","end_point",":","array-like",",","shape=","[","...",",","dim","+","1","]","Point","on","the","manifold",",","end","point","of","the","geodesic",".","Optional",",","default",":","None",".","If","None",",","an","initial","tangent","vector","must","be","given",".","initial_tangent_vec",":","array-like",",","shape=","[","...",",","dim","+","1","]","Tangent","vector","at","base","point",",","the","initial","speed","of","the","geodesics",".","Optional",",","default",":","None",".","If","None",",","an","end","point","must","be","given","and","a","logarithm","is","computed",".","Returns","--","--","--","-","path",":","callable","Time","parameterized","geodesic","curve",".","If","a","batch","of","initial","conditions","is","passed",",","the","output","array","'s","first","dimension","represents","time",",","and","the","second","corresponds","to","the","different","initial","conditions","."]
code: def geodesic(
      self, initial_point, end_point=None, initial_tangent_vec=None
  ):
      """Generate parameterized function for the geodesic curve.
  
      Geodesic curve defined by either:
  
      - an initial point and an initial tangent vector,
      - an initial point and an end point.
  
      Parameters
      ----------
      initial_point : array-like, shape=[..., dim + 1]
          Point on the manifold, initial point of the geodesic.
      end_point : array-like, shape=[..., dim + 1]
          Point on the manifold, end point of the geodesic.
          Optional, default: None.
          If None, an initial tangent vector must be given.
      initial_tangent_vec : array-like, shape=[..., dim + 1]
          Tangent vector at base point, the initial speed of the geodesics.
          Optional, default: None.
          If None, an end point must be given and a logarithm is computed.
  
      Returns
      -------
      path : callable
          Time parameterized geodesic curve. If a batch of initial
          conditions is passed, the output array's first dimension
          represents time, and the second corresponds to the different
          initial conditions.
      """
      initial_point_sphere = self.simplex_to_sphere(initial_point)
      end_point_sphere = None
      vec_sphere = None
      if end_point is not None:
          end_point_sphere = self.simplex_to_sphere(end_point)
      if initial_tangent_vec is not None:
          vec_sphere = self.tangent_simplex_to_sphere(
              initial_tangent_vec, initial_point
          )
      geodesic_sphere = self._sphere.metric.geodesic(
          initial_point_sphere, end_point_sphere, vec_sphere
      )
  
      def path(t):
          """Generate parameterized function for geodesic curve.
  
          Parameters
          ----------
          t : array-like, shape=[n_times,]
              Times at which to compute points of the geodesics.
  
          Returns
          -------
          geodesic : array-like, shape=[..., n_times, dim + 1]
              Values of the geodesic at times t.
          """
          geod_sphere_at_t = geodesic_sphere(t)
          return self.sphere_to_simplex(geod_sphere_at_t)
  
      return path
  
imports: from scipy.stats import dirichlet, multinomial
  import geomstats.backend
  from geomstats.algebra_utils import from_vector_to_diagonal_matrix
  from geomstats.geometry.base import LevelSet
  from geomstats.geometry.euclidean import Euclidean
  from geomstats.geometry.hypersphere import Hypersphere
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.information_geometry.base import InformationManifoldMixin, ScipyMultivariateRandomVariable
  from geomstats.vectorization import repeat_out
label_desc: Use image node_id 9 for calling the MultinomialMetric obj's underlying member method code with example usage: obj.geodesic(initial_point, end_point, initial_tangent_vec) and returns: path, self