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.
code: def __init__(self, n, p, equip=True):
      geomstats.errors.check_integer(n, "n")
      geomstats.errors.check_integer(p, "p")
      if p > n:
          raise ValueError("p needs to be smaller than n.")
  
      self.n = n
      self.p = p
      self._value = gs.eye(p)
  
      dim = int(p * n - (p * (p + 1) / 2))
      super().__init__(dim=dim, equip=equip)
  
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 1 to create a new Stiefel object from inherited base classes: LevelSet with example: obj = Stiefel(n, p, equip)