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 horizontal subspace.
  
  Compute the horizontal component of a tangent vector at a
  base point by removing the vertical component,
  or by computing a horizontal lift of the tangent projection.
  
  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
  -------
  horizontal : array-like, shape=[..., {total_space.dim, [n, m]}]
      Horizontal component of `tangent_vec`.
docstr_tok: ["Project","to","horizontal","subspace",".","Compute","the","horizontal","component","of","a","tangent","vector","at","a","base","point","by","removing","the","vertical","component",",","or","by","computing","a","horizontal","lift","of","the","tangent","projection",".","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","--","--","--","-","horizontal",":","array-like",",","shape=","[","...",",","{","total_space.dim",",","[","n",",","m","]","}","]","Horizontal","component","of","`","tangent_vec","`","."]
code: def horizontal_projection(self, tangent_vec, base_point):
      r"""Project to horizontal subspace.
  
      Compute the horizontal component of a tangent vector at a
      base point by removing the vertical component,
      or by computing a horizontal lift of the tangent projection.
  
      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
      -------
      horizontal : array-like, shape=[..., {total_space.dim, [n, m]}]
          Horizontal component of `tangent_vec`.
      """
      caller_name = sys._getframe().f_back.f_code.co_name
      if not caller_name == "vertical_projection":
          try:
              return tangent_vec - self.vertical_projection(
                  tangent_vec, base_point
              )
          except NotImplementedError:
              pass
  
      return self.horizontal_lift(
          self.tangent_riemannian_submersion(tangent_vec, base_point),
          fiber_point=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 6 for calling the FiberBundle obj's underlying member method code with example usage: obj.horizontal_projection(tangent_vec, base_point) and returns: self, unknown