class_docstr: Class for the manifold of Gamma distributions.
  
  This is :math:`Gamma = (R_+^*)^2`, the positive quadrant of the
  2-dimensional Euclidean space.
class_docstr_tok: ["Class","for","the","manifold","of","Gamma","distributions",".","This","is",":","math",":","`","Gamma","=","(","R_+^","*",")","^2","`",",","the","positive","quadrant","of","the","2-dimensional","Euclidean","space","."]
docstr: Sample parameters of Gamma distributions.
  
  The uniform distribution on [0, bound]^2 is used.
  
  Parameters
  ----------
  n_samples : int
      Number of samples.
      Optional, default: 1.
  bound : float
      Side of the square where the Gamma parameters are sampled.
      Optional, default: 5.
  
  Returns
  -------
  samples : array-like, shape=[..., 2]
      Sample of points representing Gamma distributions.
docstr_tok: ["Sample","parameters","of","Gamma","distributions",".","The","uniform","distribution","on","[","0",",","bound","]","^2","is","used",".","Parameters","--","--","--","--","--","n_samples",":","int","Number","of","samples",".","Optional",",","default",":","1.","bound",":","float","Side","of","the","square","where","the","Gamma","parameters","are","sampled",".","Optional",",","default",":","5",".","Returns","--","--","--","-","samples",":","array-like",",","shape=","[","...",",","2","]","Sample","of","points","representing","Gamma","distributions","."]
code: def random_point(self, n_samples=1, upper_bound=5.0, lower_bound=0.0):
      """Sample parameters of Gamma distributions.
  
      The uniform distribution on [0, bound]^2 is used.
  
      Parameters
      ----------
      n_samples : int
          Number of samples.
          Optional, default: 1.
      bound : float
          Side of the square where the Gamma parameters are sampled.
          Optional, default: 5.
  
      Returns
      -------
      samples : array-like, shape=[..., 2]
          Sample of points representing Gamma distributions.
      """
      upper_bound, lower_bound = gs.array(upper_bound) * gs.ones(
          2
      ), gs.array(lower_bound) * gs.ones(2)
  
      if gs.any((upper_bound - lower_bound) < 0):
          raise ValueError(
              "upper_bound cannot be greater than lower_bound."
          )
  
      size = (2,) if n_samples == 1 else (n_samples, 2)
      return lower_bound + (upper_bound - lower_bound) * gs.random.rand(
          *size
      )
  
imports: from scipy.stats import gamma
  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, ScipyUnivariateRandomVariable
  from geomstats.numerics.bvp import ScipySolveBVP
  from geomstats.numerics.geodesic import ExpODESolver, LogODESolver
  from geomstats.numerics.ivp import ScipySolveIVP
  from geomstats.vectorization import check_is_batch
label_desc: Use image node_id 4 for calling the GammaDistributions obj's underlying member method code with example usage: obj.random_point(n_samples, upper_bound, lower_bound) and returns: unknown