class_docstr: Class for the Kendall pre-shape space bundle.
class_docstr_tok: ["Class","for","the","Kendall","pre-shape","space","bundle","."]
docstr: Check whether the tangent vector is horizontal at base_point.
  
  Parameters
  ----------
  tangent_vec : array-like, shape=[..., k_landmarks, m_ambient]
      Tangent vector.
  base_point : array-like, shape=[..., k_landmarks, m_ambient]
      Point on the manifold.
      Optional, default: none.
  atol : float
      Absolute tolerance.
      Optional, default: backend atol.
  
  Returns
  -------
  is_tangent : bool
      Boolean denoting if tangent vector is horizontal.
docstr_tok: ["Check","whether","the","tangent","vector","is","horizontal","at","base_point",".","Parameters","--","--","--","--","--","tangent_vec",":","array-like",",","shape=","[","...",",","k_landmarks",",","m_ambient","]","Tangent","vector",".","base_point",":","array-like",",","shape=","[","...",",","k_landmarks",",","m_ambient","]","Point","on","the","manifold",".","Optional",",","default",":","none",".","atol",":","float","Absolute","tolerance",".","Optional",",","default",":","backend","atol",".","Returns","--","--","--","-","is_tangent",":","bool","Boolean","denoting","if","tangent","vector","is","horizontal","."]
code: def is_horizontal(self, tangent_vec, base_point, atol=gs.atol):
      """Check whether the tangent vector is horizontal at base_point.
  
      Parameters
      ----------
      tangent_vec : array-like, shape=[..., k_landmarks, m_ambient]
          Tangent vector.
      base_point : array-like, shape=[..., k_landmarks, m_ambient]
          Point on the manifold.
          Optional, default: none.
      atol : float
          Absolute tolerance.
          Optional, default: backend atol.
  
      Returns
      -------
      is_tangent : bool
          Boolean denoting if tangent vector is horizontal.
      """
      product = gs.matmul(Matrices.transpose(tangent_vec), base_point)
      is_tangent = self.total_space.is_tangent(
          tangent_vec, base_point, atol
      )
      is_symmetric = Matrices.is_symmetric(product, atol)
      return gs.logical_and(is_tangent, is_symmetric)
  
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 3 for calling the PreShapeSpaceBundle obj's underlying member method code with example usage: obj.is_horizontal(tangent_vec, base_point, atol) and returns: gs