class_docstr: Class for PSD(n,k).
  
  The manifold of Positive Semi Definite matrices of rank k: PSD(n,k).
  
  Parameters
  ----------
  n : int
      Integer representing the shape of the matrices: n x n.
  k : int
      Integer representing the rank of the matrix (k<n).
class_docstr_tok: ["Class","for","PSD","(","n",",","k",")",".","The","manifold","of","Positive","Semi","Definite","matrices","of","rank","k",":","PSD","(","n",",","k",")",".","Parameters","--","--","--","--","--","n",":","int","Integer","representing","the","shape","of","the","matrices",":","n","x","n.","k",":","int","Integer","representing","the","rank","of","the","matrix","(","k","<","n",")","."]
docstr: Sample in PSD(n,k) from the log-uniform distribution.
  
  Parameters
  ----------
  n_samples : int
      Number of samples.
      Optional, default: 1.
  bound : float
      Bound of the interval in which to sample in the tangent space.
      Optional, default: 1.
  
  Returns
  -------
  samples : array-like, shape=[..., n, n]
      Points sampled in PSD(n,k).
docstr_tok: ["Sample","in","PSD","(","n",",","k",")","from","the","log-uniform","distribution",".","Parameters","--","--","--","--","--","n_samples",":","int","Number","of","samples",".","Optional",",","default",":","1.","bound",":","float","Bound","of","the","interval","in","which","to","sample","in","the","tangent","space",".","Optional",",","default",":","1",".","Returns","--","--","--","-","samples",":","array-like",",","shape=","[","...",",","n",",","n","]","Points","sampled","in","PSD","(","n",",","k",")","."]
code: def random_point(self, n_samples=1, bound=1.0):
      r"""Sample in PSD(n,k) from the log-uniform distribution.
  
      Parameters
      ----------
      n_samples : int
          Number of samples.
          Optional, default: 1.
      bound : float
          Bound of the interval in which to sample in the tangent space.
          Optional, default: 1.
  
      Returns
      -------
      samples : array-like, shape=[..., n, n]
          Points sampled in PSD(n,k).
      """
      n = self.n
      size = (n_samples, n, n) if n_samples != 1 else (n, n)
      mat = bound * (2 * gs.random.rand(*size) - 1)
      spd_mat = GeneralLinear.exp(Matrices.to_symmetric(mat))
      return self.projection(spd_mat)
  
imports: import geomstats.backend
  from geomstats.geometry.fiber_bundle import FiberBundle
  from geomstats.geometry.full_rank_matrices import FullRankMatrices
  from geomstats.geometry.general_linear import GeneralLinear
  from geomstats.geometry.manifold import Manifold
  from geomstats.geometry.matrices import Matrices, MatricesMetric
  from geomstats.geometry.quotient_metric import QuotientMetric
  from geomstats.geometry.spd_matrices import SPDEuclideanMetric, SPDMatrices
  from geomstats.geometry.special_orthogonal import SpecialOrthogonal
  from geomstats.geometry.symmetric_matrices import SymmetricMatrices
label_desc: Use image node_id 5 for calling the RankKPSDMatrices obj's underlying member method code with example usage: obj.random_point(n_samples, bound) and returns: self