class_docstr: Class for Grassmann manifolds :math:`Gr(n, p)`.
  
  Parameters
  ----------
  n : int
      Dimension of the Euclidean space.
  p : int
      Dimension of the subspaces.
docstr: Project a matrix to the Grassmann manifold.
  
  An eigenvalue decomposition of (the symmetric part of) point is used.
  
  Parameters
  ----------
  point : array-like, shape=[..., n, n]
      Point in embedding manifold.
  
  Returns
  -------
  projected : array-like, shape=[..., n, n]
      Projected point.
docstr_tok: ["Project","a","matrix","to","the","Grassmann","manifold",".","An","eigenvalue","decomposition","of","(","the","symmetric","part","of",")","point","is","used",".","Parameters","--","--","--","--","--","point",":","array-like",",","shape=","[","...",",","n",",","n","]","Point","in","embedding","manifold",".","Returns","--","--","--","-","projected",":","array-like",",","shape=","[","...",",","n",",","n","]","Projected","point","."]
code: def projection(self, point):
      """Project a matrix to the Grassmann manifold.
  
      An eigenvalue decomposition of (the symmetric part of) point is used.
  
      Parameters
      ----------
      point : array-like, shape=[..., n, n]
          Point in embedding manifold.
  
      Returns
      -------
      projected : array-like, shape=[..., n, n]
          Projected point.
      """
      mat = Matrices.to_symmetric(point)
      _, eigvecs = gs.linalg.eigh(mat)
      diagonal = gs.array([0.0] * (self.n - self.p) + [1.0] * self.p)
      p_d = gs.einsum("...ij,...j->...ij", eigvecs, diagonal)
      return Matrices.mul(p_d, Matrices.transpose(eigvecs))
  
imports: import geomstats.backend
  import geomstats.errors
  from geomstats.geometry.base import LevelSet
  from geomstats.geometry.general_linear import GeneralLinear
  from geomstats.geometry.matrices import Matrices, MatricesMetric
  from geomstats.geometry.symmetric_matrices import SymmetricMatrices
  from geomstats.vectorization import repeat_out
label_desc: Use image node_id 9 for calling the Grassmannian obj's underlying member method code with example usage: obj.projection(point) and returns: Matrices