class_docstr: Class for the Hypersphere Metric.
docstr: Compute the curvature.
  
  For three tangent vectors at a base point :math:`x,y,z`,
  the curvature is defined by
  :math:`R(x, y)z = \nabla_{[x,y]}z
  - \nabla_z\nabla_y z + \nabla_y\nabla_x z`, where :math:`\nabla`
  is the Levi-Civita connection. In the case of the hypersphere,
  we have the closed formula
  :math:`R(x,y)z = \langle y,z \rangle x - \langle x, z \rangle y`.
  
  Parameters
  ----------
  tangent_vec_a : array-like, shape=[..., dim]
      Tangent vector at `base_point`.
  tangent_vec_b : array-like, shape=[..., dim]
      Tangent vector at `base_point`.
  tangent_vec_c : array-like, shape=[..., dim]
      Tangent vector at `base_point`.
  base_point :  array-like, shape=[..., dim]
      Point on the hypersphere.
  
  Returns
  -------
  curvature : array-like, shape=[..., dim]
      Tangent vector at `base_point`.
docstr_tok: ["Compute","the","curvature",".","For","three","tangent","vectors","at","a","base","point",":","math",":","`","x",",","y",",","z","`",",","the","curvature","is","defined","by",":","math",":","`","R","(","x",",","y",")","z","=","\\nabla_","{","[","x",",","y","]","}","z","-","\\nabla_z\\nabla_y","z","+","\\nabla_y\\nabla_x","z","`",",","where",":","math",":","`","\\nabla","`","is","the","Levi-Civita","connection",".","In","the","case","of","the","hypersphere",",","we","have","the","closed","formula",":","math",":","`","R","(","x",",","y",")","z","=","\\langle","y",",","z","\\rangle","x","-","\\langle","x",",","z","\\rangle","y","`",".","Parameters","--","--","--","--","--","tangent_vec_a",":","array-like",",","shape=","[","...",",","dim","]","Tangent","vector","at","`","base_point","`",".","tangent_vec_b",":","array-like",",","shape=","[","...",",","dim","]","Tangent","vector","at","`","base_point","`",".","tangent_vec_c",":","array-like",",","shape=","[","...",",","dim","]","Tangent","vector","at","`","base_point","`",".","base_point",":","array-like",",","shape=","[","...",",","dim","]","Point","on","the","hypersphere",".","Returns","--","--","--","-","curvature",":","array-like",",","shape=","[","...",",","dim","]","Tangent","vector","at","`","base_point","`","."]
code: def curvature(
      self, tangent_vec_a, tangent_vec_b, tangent_vec_c, base_point
  ):
      r"""Compute the curvature.
  
      For three tangent vectors at a base point :math:`x,y,z`,
      the curvature is defined by
      :math:`R(x, y)z = \nabla_{[x,y]}z
      - \nabla_z\nabla_y z + \nabla_y\nabla_x z`, where :math:`\nabla`
      is the Levi-Civita connection. In the case of the hypersphere,
      we have the closed formula
      :math:`R(x,y)z = \langle y,z \rangle x - \langle x, z \rangle y`.
  
      Parameters
      ----------
      tangent_vec_a : array-like, shape=[..., dim]
          Tangent vector at `base_point`.
      tangent_vec_b : array-like, shape=[..., dim]
          Tangent vector at `base_point`.
      tangent_vec_c : array-like, shape=[..., dim]
          Tangent vector at `base_point`.
      base_point :  array-like, shape=[..., dim]
          Point on the hypersphere.
  
      Returns
      -------
      curvature : array-like, shape=[..., dim]
          Tangent vector at `base_point`.
      """
      if self._space.dim == 1:
          raise NotImplementedError(
              "Curvature is not implemented for the circle."
          )
  
      inner_ac = self.inner_product(tangent_vec_a, tangent_vec_c)
      inner_bc = self.inner_product(tangent_vec_b, tangent_vec_c)
      first_term = gs.einsum("...,...i->...i", inner_bc, tangent_vec_a)
      second_term = gs.einsum("...,...i->...i", inner_ac, tangent_vec_b)
      return first_term - second_term
  
imports: import logging
  import math
  from itertools import product
  from scipy.stats import beta
  import geomstats.algebra_utils
  import geomstats.backend
  from geomstats.geometry.base import LevelSet
  from geomstats.geometry.euclidean import Euclidean
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.vectorization import get_batch_shape, repeat_out
label_desc: Use image node_id 10 for calling the HypersphereMetric obj's underlying member method code with example usage: obj.curvature(tangent_vec_a, tangent_vec_b, tangent_vec_c, base_point) and returns: unknown