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: Project to the tangent space of PSD(n,k) at base_point.
  
  Parameters
  ----------
  vector : array-like, shape=[..., n, n]
      Matrix to check if it belongs to the tangent space.
  base_point : array-like, shape=[..., n, n]
      Base point of the tangent space.
      Optional, default: None.
  
  Returns
  -------
  tangent : array-like, shape=[..., n, n]
      Projection of the tangent vector at base_point.
docstr_tok: ["Project","to","the","tangent","space","of","PSD","(","n",",","k",")","at","base_point",".","Parameters","--","--","--","--","--","vector",":","array-like",",","shape=","[","...",",","n",",","n","]","Matrix","to","check","if","it","belongs","to","the","tangent","space",".","base_point",":","array-like",",","shape=","[","...",",","n",",","n","]","Base","point","of","the","tangent","space",".","Optional",",","default",":","None",".","Returns","--","--","--","-","tangent",":","array-like",",","shape=","[","...",",","n",",","n","]","Projection","of","the","tangent","vector","at","base_point","."]
code: def to_tangent(self, vector, base_point):
      r"""Project to the tangent space of PSD(n,k) at base_point.
  
      Parameters
      ----------
      vector : array-like, shape=[..., n, n]
          Matrix to check if it belongs to the tangent space.
      base_point : array-like, shape=[..., n, n]
          Base point of the tangent space.
          Optional, default: None.
  
      Returns
      -------
      tangent : array-like, shape=[..., n, n]
          Projection of the tangent vector at base_point.
      """
      vector_sym = Matrices.to_symmetric(vector)
      r, _, _ = gs.linalg.svd(base_point)
      r_ort = r[..., :, : (self.rank - 1)]
      r_ort_t = Matrices.transpose(r_ort)
      rr = gs.matmul(r_ort, r_ort_t)
      return vector_sym - Matrices.mul(rr, vector_sym, rr)
  
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 7 for calling the RankKPSDMatrices obj's underlying member method code with example usage: obj.to_tangent(vector, base_point) and returns: unknown