class_docstr: Class for the manifold of Dirichlet distributions.
  
  This is Dirichlet = :math:`(R_+^*)^dim`, the positive quadrant of the
  dim-dimensional Euclidean space.
  
  Attributes
  ----------
  dim : int
      Dimension of the manifold of Dirichlet distributions.
class_docstr_tok: ["Class","for","the","manifold","of","Dirichlet","distributions",".","This","is","Dirichlet","=",":","math",":","`","(","R_+^","*",")","^dim","`",",","the","positive","quadrant","of","the","dim-dimensional","Euclidean","space",".","Attributes","--","--","--","--","--","dim",":","int","Dimension","of","the","manifold","of","Dirichlet","distributions","."]
docstr: Project a point in ambient space to the open set.
  
  The last coordinate is floored to `gs.atol` if it is negative.
  
  Parameters
  ----------
  point : array-like, shape=[..., dim]
      Point in ambient space.
  atol : float
      Tolerance to evaluate positivity.
  
  Returns
  -------
  projected : array-like, shape=[..., dim]
      Projected point.
docstr_tok: ["Project","a","point","in","ambient","space","to","the","open","set",".","The","last","coordinate","is","floored","to","`","gs.atol","`","if","it","is","negative",".","Parameters","--","--","--","--","--","point",":","array-like",",","shape=","[","...",",","dim","]","Point","in","ambient","space",".","atol",":","float","Tolerance","to","evaluate","positivity",".","Returns","--","--","--","-","projected",":","array-like",",","shape=","[","...",",","dim","]","Projected","point","."]
code: def projection(self, point, atol=gs.atol):
      """Project a point in ambient space to the open set.
  
      The last coordinate is floored to `gs.atol` if it is negative.
  
      Parameters
      ----------
      point : array-like, shape=[..., dim]
          Point in ambient space.
      atol : float
          Tolerance to evaluate positivity.
  
      Returns
      -------
      projected : array-like, shape=[..., dim]
          Projected point.
      """
      return gs.where(point < atol, atol, point)
  
imports: import math
  import numpy
  from scipy.optimize import minimize
  from scipy.stats import dirichlet
  import geomstats.backend
  from geomstats.algebra_utils import from_vector_to_diagonal_matrix
  from geomstats.geometry.base import VectorSpaceOpenSet
  from geomstats.geometry.euclidean import Euclidean
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.information_geometry.base import InformationManifoldMixin, ScipyMultivariateRandomVariable
  from geomstats.numerics.bvp import ScipySolveBVP
  from geomstats.numerics.geodesic import ExpODESolver, LogODESolver
  from geomstats.numerics.ivp import ScipySolveIVP
  from geomstats.vectorization import repeat_out
label_desc: Use image node_id 5 for calling the DirichletDistributions obj's underlying member method code with example usage: obj.projection(point, atol) and returns: gs