class_docstr: Class for (principal) fiber bundles.
  
  This class implements abstract methods for fiber bundles, or more
  generally manifolds, with a submersion map, or a right Lie group action.
  
  Parameters
  ----------
  group : LieGroup
      Group that acts on the total space by the right.
      Optional. Default : None.
      Either the group or the group action must be given.
  group_action : callable
      Right group action. It must take as input a point of the total space
      and an element of the group, and return a point of the total space.
class_docstr_tok: ["Class","for","(","principal",")","fiber","bundles",".","This","class","implements","abstract","methods","for","fiber","bundles",",","or","more","generally","manifolds",",","with","a","submersion","map",",","or","a","right","Lie","group","action",".","Parameters","--","--","--","--","--","group",":","LieGroup","Group","that","acts","on","the","total","space","by","the","right",".","Optional",".","Default",":","None",".","Either","the","group","or","the","group","action","must","be","given",".","group_action",":","callable","Right","group","action",".","It","must","take","as","input","a","point","of","the","total","space","and","an","element","of","the","group",",","and","return","a","point","of","the","total","space","."]
docstr: Project to vertical subspace.
  
  Compute the vertical component of a tangent vector :math:`w` at a
  base point :math:`P` by removing the horizontal component.
  
  Parameters
  ----------
  tangent_vec : array-like, shape=[..., {total_space.dim, [n, m]}]
      Tangent vector to the total space at `base_point`.
  base_point : array-like, shape=[..., {total_space.dim, [n, m]}]
      Point on the total space.
  
  Returns
  -------
  vertical : array-like, shape=[..., {total_space.dim, [n, m]}]
      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",":","`","P","`","by","removing","the","horizontal","component",".","Parameters","--","--","--","--","--","tangent_vec",":","array-like",",","shape=","[","...",",","{","total_space.dim",",","[","n",",","m","]","}","]","Tangent","vector","to","the","total","space","at","`","base_point","`",".","base_point",":","array-like",",","shape=","[","...",",","{","total_space.dim",",","[","n",",","m","]","}","]","Point","on","the","total","space",".","Returns","--","--","--","-","vertical",":","array-like",",","shape=","[","...",",","{","total_space.dim",",","[","n",",","m","]","}","]","Vertical","component","of","`","tangent_vec","`","."]
code: def vertical_projection(self, tangent_vec, base_point):
      r"""Project to vertical subspace.
  
      Compute the vertical component of a tangent vector :math:`w` at a
      base point :math:`P` by removing the horizontal component.
  
      Parameters
      ----------
      tangent_vec : array-like, shape=[..., {total_space.dim, [n, m]}]
          Tangent vector to the total space at `base_point`.
      base_point : array-like, shape=[..., {total_space.dim, [n, m]}]
          Point on the total space.
  
      Returns
      -------
      vertical : array-like, shape=[..., {total_space.dim, [n, m]}]
          Vertical component of `tangent_vec`.
      """
      caller_name = sys._getframe().f_back.f_code.co_name
      if caller_name == "horizontal_projection":
          raise NotImplementedError
  
      return tangent_vec - self.horizontal_projection(
          tangent_vec, base_point
      )
  
file_path: geomstats/geomstats/geometry/fiber_bundle.py
imports: import sys
  from abc import ABC
  from scipy.optimize import minimize
  import geomstats.backend
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 7 for calling the FiberBundle obj's underlying member method code with example usage: obj.vertical_projection(tangent_vec, base_point) and returns: unknown