class_docstr: Class for the Kendall pre-shape space bundle.
class_docstr_tok: ["Class","for","the","Kendall","pre-shape","space","bundle","."]
docstr: Project to vertical subspace.
  
  Compute the vertical component of a tangent vector :math:`w` at a
  base point :math:`x` by solving the sylvester equation:
  
  .. math::
      Axx^T + xx^TA = wx^T - xw^T
  
  where `A` is skew-symmetric.
  Then `Ax` is the vertical projection of `w`.
  
  Parameters
  ----------
  tangent_vec : array-like, shape=[..., k_landmarks, m_ambient]
      Tangent vector to the pre-shape space at `base_point`.
  base_point : array-like, shape=[..., k_landmarks, m_ambient]
      Point on the pre-shape space.
  return_skew : bool
      Whether to return the skew-symmetric matrix A.
      Optional, default: False
  
  Returns
  -------
  vertical : array-like, shape=[..., k_landmarks, m_ambient]
      Vertical component of `tangent_vec`.
  skew : array-like, shape=[..., m_ambient, m_ambient]
      Vertical component of `tangent_vec`.
docstr_tok: ["Project","to","vertical","subspace",".","Compute","the","vertical","component","of","a","tangent","vector",":","math",":","`","w","`","at","a","base","point",":","math",":","`","x","`","by","solving","the","sylvester","equation",":","..","math",":",":","Axx^T","+","xx^TA","=","wx^T","-","xw^T","where","`","A","`","is","skew-symmetric",".","Then","`","Ax","`","is","the","vertical","projection","of","`","w","`",".","Parameters","--","--","--","--","--","tangent_vec",":","array-like",",","shape=","[","...",",","k_landmarks",",","m_ambient","]","Tangent","vector","to","the","pre-shape","space","at","`","base_point","`",".","base_point",":","array-like",",","shape=","[","...",",","k_landmarks",",","m_ambient","]","Point","on","the","pre-shape","space",".","return_skew",":","bool","Whether","to","return","the","skew-symmetric","matrix","A",".","Optional",",","default",":","False","Returns","--","--","--","-","vertical",":","array-like",",","shape=","[","...",",","k_landmarks",",","m_ambient","]","Vertical","component","of","`","tangent_vec","`",".","skew",":","array-like",",","shape=","[","...",",","m_ambient",",","m_ambient","]","Vertical","component","of","`","tangent_vec","`","."]
code: def vertical_projection(
      self, tangent_vec, base_point, return_skew=False
  ):
      r"""Project to vertical subspace.
  
      Compute the vertical component of a tangent vector :math:`w` at a
      base point :math:`x` by solving the sylvester equation:
  
      .. math::
          Axx^T + xx^TA = wx^T - xw^T
  
      where `A` is skew-symmetric.
      Then `Ax` is the vertical projection of `w`.
  
      Parameters
      ----------
      tangent_vec : array-like, shape=[..., k_landmarks, m_ambient]
          Tangent vector to the pre-shape space at `base_point`.
      base_point : array-like, shape=[..., k_landmarks, m_ambient]
          Point on the pre-shape space.
      return_skew : bool
          Whether to return the skew-symmetric matrix A.
          Optional, default: False
  
      Returns
      -------
      vertical : array-like, shape=[..., k_landmarks, m_ambient]
          Vertical component of `tangent_vec`.
      skew : array-like, shape=[..., m_ambient, m_ambient]
          Vertical component of `tangent_vec`.
      """
      transposed_point = Matrices.transpose(base_point)
      left_term = gs.matmul(transposed_point, base_point)
      alignment = gs.matmul(Matrices.transpose(tangent_vec), base_point)
      right_term = alignment - Matrices.transpose(alignment)
      skew = gs.linalg.solve_sylvester(left_term, left_term, right_term)
  
      vertical = -gs.matmul(base_point, skew)
      return (vertical, skew) if return_skew else vertical
  
imports: import geomstats.backend
  from geomstats.geometry.base import LevelSet
  from geomstats.geometry.fiber_bundle import FiberBundle
  from geomstats.geometry.hypersphere import Hypersphere
  from geomstats.geometry.matrices import Matrices
  from geomstats.geometry.quotient_metric import QuotientMetric
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.integrator import integrate
  from geomstats.vectorization import get_batch_shape, repeat_out
label_desc: Use image node_id 2 for calling the PreShapeSpaceBundle obj's underlying member method code with example usage: obj.vertical_projection(tangent_vec, base_point, return_skew) and returns: unknown