class_docstr: Private class for the n-dimensional hypersphere.
  
  Class for the n-dimensional hypersphere embedded in the
  (n+1)-dimensional Euclidean space.
  
  By default, points are parameterized by their extrinsic
  (n+1)-coordinates. For dimensions 1 and 2, this can be changed with the
  `default_coords_type` parameter. For dimensions 1 (the circle),
  the intrinsic coordinates correspond angles in radians, with 0. mapping
  to point [1., 0.]. For dimension 2, the intrinsic coordinates are the
  spherical coordinates from the north pole, i.e. where angles [0., 0.]
  correspond to point [0., 0., 1.].
  
  Parameters
  ----------
  dim : int
      Dimension of the hypersphere.
  
  default_coords_type : str, {'extrinsic', 'intrinsic'}
      Type of representation for dimensions 1 and 2.
docstr: Convert point from extrinsic to intrinsic coordinates.
  
  Convert from the extrinsic coordinates in Euclidean space,
  to some intrinsic coordinates in the hypersphere.
  
  Parameters
  ----------
  point_extrinsic : array-like, shape=[..., dim + 1]
      Point on the hypersphere, in extrinsic coordinates in
      Euclidean space.
  
  Returns
  -------
  point_intrinsic : array-like, shape=[..., dim]
      Point on the hypersphere, in intrinsic coordinates.
docstr_tok: ["Convert","point","from","extrinsic","to","intrinsic","coordinates",".","Convert","from","the","extrinsic","coordinates","in","Euclidean","space",",","to","some","intrinsic","coordinates","in","the","hypersphere",".","Parameters","--","--","--","--","--","point_extrinsic",":","array-like",",","shape=","[","...",",","dim","+","1","]","Point","on","the","hypersphere",",","in","extrinsic","coordinates","in","Euclidean","space",".","Returns","--","--","--","-","point_intrinsic",":","array-like",",","shape=","[","...",",","dim","]","Point","on","the","hypersphere",",","in","intrinsic","coordinates","."]
code: def extrinsic_to_intrinsic_coords(self, point_extrinsic):
      """Convert point from extrinsic to intrinsic coordinates.
  
      Convert from the extrinsic coordinates in Euclidean space,
      to some intrinsic coordinates in the hypersphere.
  
      Parameters
      ----------
      point_extrinsic : array-like, shape=[..., dim + 1]
          Point on the hypersphere, in extrinsic coordinates in
          Euclidean space.
  
      Returns
      -------
      point_intrinsic : array-like, shape=[..., dim]
          Point on the hypersphere, in intrinsic coordinates.
      """
      if self.dim == 2:
          return self.extrinsic_to_spherical(point_extrinsic)
      if self.dim == 1:
          return self.extrinsic_to_angle(point_extrinsic)
  
      raise NotImplementedError(
          "Intrinsic coordinates are only implemented in dimension 1 and 2."
      )
  
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 15 for calling the _Hypersphere obj's underlying member method code with example usage: obj.extrinsic_to_intrinsic_coords(point_extrinsic) and returns: self, self