class_docstr: Quotient metric on the shape space.
  
  The Kendall shape space is obtained by taking the quotient of the
  pre-shape space by the space of rotations of the ambient space.
class_docstr_tok: ["Quotient","metric","on","the","shape","space",".","The","Kendall","shape","space","is","obtained","by","taking","the","quotient","of","the","pre-shape","space","by","the","space","of","rotations","of","the","ambient","space","."]
docstr: Compute the covariant derivative of the directional curvature.
  
  For two vectors fields :math:`X|_P =` `tangent_vec_a`,
  :math:`Y|_P =` `tangent_vec_b` with tangent vector value specified in argument
  at the `base_point` :math:`P`,
  the covariant derivative (in the direction :math:`X`)
  :math:`(\nabla_X R_Y)(X) |_P = (\nabla_X R)(Y, X) Y |_P` of the
  directional curvature (in the direction :math:`Y`)
  :math:`R_Y(X) = R(Y, X) Y` is a quadratic tensor in :math:`X` and :math:`Y`
  that plays an important role in the computation of the moments of the
  empirical Fréchet mean [Pennec]_.
  
  In more details, let :math:`X, Y` be the horizontal lift of parallel
  vector fields extending the tangent vectors given in argument by
  parallel transport in a neighborhood of the`base_point` :math:`P` in the
  base-space. Such vector fields verify :math:`\nabla^T_X X=0` and
  :math:`\nabla^T_X Y = A_X Y` using the connection :math:`\nabla^T`
  of the total space. Then the covariant derivative of the
  directional curvature tensor is given by
  :math:`\nabla_X (R_Y(X)) = hor \nabla^T_X (R^T_Y(X)) - A_X( ver R^T_Y(X))
  - 3 (\nabla_X^T A_Y A_X Y - A_X A_Y A_X Y )`, where :math:`R^T_Y(X)`
  is the directional curvature tensor of the total space.
  
  Parameters
  ----------
  tangent_vec_a : array-like, shape=[..., k_landmarks, m_ambient]
      Tangent vector at `base_point`.
  tangent_vec_b : array-like, shape=[..., k_landmarks, m_ambient]
      Tangent vector at `base_point`.
  base_point : array-like, shape=[..., k_landmarks, m_ambient]
      Point on the group.
  
  Returns
  -------
  curvature_derivative : array-like, shape=[..., k_landmarks, m_ambient]
      Tangent vector at `base_point`.
docstr_tok: ["Compute","the","covariant","derivative","of","the","directional","curvature",".","For","two","vectors","fields",":","math",":","`","X|_P","=","`","`","tangent_vec_a","`",",",":","math",":","`","Y|_P","=","`","`","tangent_vec_b","`","with","tangent","vector","value","specified","in","argument","at","the","`","base_point","`",":","math",":","`","P","`",",","the","covariant","derivative","(","in","the","direction",":","math",":","`","X","`",")",":","math",":","`","(","\\nabla_X","R_Y",")","(","X",")","|_P","=","(","\\nabla_X","R",")","(","Y",",","X",")","Y","|_P","`","of","the","directional","curvature","(","in","the","direction",":","math",":","`","Y","`",")",":","math",":","`","R_Y","(","X",")","=","R","(","Y",",","X",")","Y","`","is","a","quadratic","tensor","in",":","math",":","`","X","`","and",":","math",":","`","Y","`","that","plays","an","important","role","in","the","computation","of","the","moments","of","the","empirical","Fr\u00e9chet","mean","[","Pennec","]","_",".","In","more","details",",","let",":","math",":","`","X",",","Y","`","be","the","horizontal","lift","of","parallel","vector","fields","extending","the","tangent","vectors","given","in","argument","by","parallel","transport","in","a","neighborhood","of","the","`","base_point","`",":","math",":","`","P","`","in","the","base-space",".","Such","vector","fields","verify",":","math",":","`","\\nabla^T_X","X=0","`","and",":","math",":","`","\\nabla^T_X","Y","=","A_X","Y","`","using","the","connection",":","math",":","`","\\nabla^T","`","of","the","total","space",".","Then","the","covariant","derivative","of","the","directional","curvature","tensor","is","given","by",":","math",":","`","\\nabla_X","(","R_Y","(","X",")",")","=","hor","\\nabla^T_X","(","R^T_Y","(","X",")",")","-","A_X","(","ver","R^T_Y","(","X",")",")","-","3","(","\\nabla_X^T","A_Y","A_X","Y","-","A_X","A_Y","A_X","Y",")","`",",","where",":","math",":","`","R^T_Y","(","X",")","`","is","the","directional","curvature","tensor","of","the","total","space",".","Parameters","--","--","--","--","--","tangent_vec_a",":","array-like",",","shape=","[","...",",","k_landmarks",",","m_ambient","]","Tangent","vector","at","`","base_point","`",".","tangent_vec_b",":","array-like",",","shape=","[","...",",","k_landmarks",",","m_ambient","]","Tangent","vector","at","`","base_point","`",".","base_point",":","array-like",",","shape=","[","...",",","k_landmarks",",","m_ambient","]","Point","on","the","group",".","Returns","--","--","--","-","curvature_derivative",":","array-like",",","shape=","[","...",",","k_landmarks",",","m_ambient","]","Tangent","vector","at","`","base_point","`","."]
code: def directional_curvature_derivative(
      self, tangent_vec_a, tangent_vec_b, base_point=None
  ):
      r"""Compute the covariant derivative of the directional curvature.
  
      For two vectors fields :math:`X|_P =` `tangent_vec_a`,
      :math:`Y|_P =` `tangent_vec_b` with tangent vector value specified in argument
      at the `base_point` :math:`P`,
      the covariant derivative (in the direction :math:`X`)
      :math:`(\nabla_X R_Y)(X) |_P = (\nabla_X R)(Y, X) Y |_P` of the
      directional curvature (in the direction :math:`Y`)
      :math:`R_Y(X) = R(Y, X) Y` is a quadratic tensor in :math:`X` and :math:`Y`
      that plays an important role in the computation of the moments of the
      empirical Fréchet mean [Pennec]_.
  
      In more details, let :math:`X, Y` be the horizontal lift of parallel
      vector fields extending the tangent vectors given in argument by
      parallel transport in a neighborhood of the`base_point` :math:`P` in the
      base-space. Such vector fields verify :math:`\nabla^T_X X=0` and
      :math:`\nabla^T_X Y = A_X Y` using the connection :math:`\nabla^T`
      of the total space. Then the covariant derivative of the
      directional curvature tensor is given by
      :math:`\nabla_X (R_Y(X)) = hor \nabla^T_X (R^T_Y(X)) - A_X( ver R^T_Y(X))
      - 3 (\nabla_X^T A_Y A_X Y - A_X A_Y A_X Y )`, where :math:`R^T_Y(X)`
      is the directional curvature tensor of the total space.
  
      Parameters
      ----------
      tangent_vec_a : array-like, shape=[..., k_landmarks, m_ambient]
          Tangent vector at `base_point`.
      tangent_vec_b : array-like, shape=[..., k_landmarks, m_ambient]
          Tangent vector at `base_point`.
      base_point : array-like, shape=[..., k_landmarks, m_ambient]
          Point on the group.
  
      Returns
      -------
      curvature_derivative : array-like, shape=[..., k_landmarks, m_ambient]
          Tangent vector at `base_point`.
      """
      horizontal_x = self.fiber_bundle.horizontal_projection(
          tangent_vec_a, base_point
      )
      horizontal_y = self.fiber_bundle.horizontal_projection(
          tangent_vec_b, base_point
      )
      (
          nabla_x_a_y_a_x_y,
          a_x_a_y_a_x_y,
          _,
          _,
          _,
      ) = self.fiber_bundle.iterated_integrability_tensor_derivative_parallel(
          horizontal_x, horizontal_y, base_point
      )
      return 3.0 * (nabla_x_a_y_a_x_y - a_x_a_y_a_x_y)
  
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 1 for calling the KendallShapeMetric obj's underlying member method code with example usage: obj.directional_curvature_derivative(tangent_vec_a, tangent_vec_b, base_point) and returns: unknown