class_docstr: Class for Stiefel manifolds St(n,p).
  
  A set of all orthonormal p-frames in n-dimensional space,
  where p <= n.
  
  Parameters
  ----------
  n : int
      Dimension of the ambient vector space.
  p : int
      Number of basis vectors in the orthonormal frame.
docstr: Project a point of St(n, p) to Gr(n, p).
  
  If :math:`U \in St(n, p)` is an orthonormal frame,
  return the orthogonal projector :math:`P = U U^T`
  onto the subspace of :math:`\mathbb{R}^n` spanned by
  :math:`U`.
  
  Parameters
  ----------
  point : array-like, shape=[..., n, p]
      Point.
  
  Returns
  -------
  projected : array-like, shape=[..., n, n]
      Projected point.
code: def to_grassmannian(point):
      r"""Project a point of St(n, p) to Gr(n, p).
  
      If :math:`U \in St(n, p)` is an orthonormal frame,
      return the orthogonal projector :math:`P = U U^T`
      onto the subspace of :math:`\mathbb{R}^n` spanned by
      :math:`U`.
  
      Parameters
      ----------
      point : array-like, shape=[..., n, p]
          Point.
  
      Returns
      -------
      projected : array-like, shape=[..., n, n]
          Projected point.
      """
      return Matrices.mul(point, Matrices.transpose(point))
  
imports: import warnings
  import geomstats.backend
  import geomstats.errors
  from geomstats import algebra_utils
  from geomstats.geometry.base import LevelSet
  from geomstats.geometry.hermitian_matrices import powermh
  from geomstats.geometry.matrices import Matrices
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.vectorization import repeat_out
label_desc: Use image node_id 6 for calling the Stiefel obj's underlying member method code with example usage: obj.to_grassmannian(point) and returns: Matrices