class_docstr: Class for an n-fold product manifold :math:`M^n`.
  
  Define a manifold as the product manifold of n copies of a given base
  manifold M.
  
  Parameters
  ----------
  base_manifold : Manifold
      Base manifold.
  n_copies : int
      Number of replication of the base manifold.
  default_coords_type : str, {\'intrinsic\', \'extrinsic\', etc}
      Coordinate type.
      Optional, default: 'intrinsic'.
docstr: Test if a point belongs to the manifold.
  
  Parameters
  ----------
  point : array-like, shape=[..., n_copies, *base_shape]
      Point.
  atol : float,
      Tolerance.
  
  Returns
  -------
  belongs : array-like, shape=[..., n_copies, *base_shape]
      Boolean evaluating if the point belongs to the manifold.
docstr_tok: ["Test","if","a","point","belongs","to","the","manifold",".","Parameters","--","--","--","--","--","point",":","array-like",",","shape=","[","...",",","n_copies",",","*","base_shape","]","Point",".","atol",":","float",",","Tolerance",".","Returns","--","--","--","-","belongs",":","array-like",",","shape=","[","...",",","n_copies",",","*","base_shape","]","Boolean","evaluating","if","the","point","belongs","to","the","manifold","."]
code: def belongs(self, point, atol=gs.atol):
      """Test if a point belongs to the manifold.
  
      Parameters
      ----------
      point : array-like, shape=[..., n_copies, *base_shape]
          Point.
      atol : float,
          Tolerance.
  
      Returns
      -------
      belongs : array-like, shape=[..., n_copies, *base_shape]
          Boolean evaluating if the point belongs to the manifold.
      """
      batch_shape = get_batch_shape(self.point_ndim, point)
      point_ = gs.reshape(point, (-1, *self.base_manifold.shape))
  
      each_belongs = self.base_manifold.belongs(point_, atol=atol)
  
      reshaped = gs.reshape(
          each_belongs, batch_shape + (self.n_copies,)
      )
      return gs.all(reshaped, axis=-1)
  
imports: import geomstats.backend
  import geomstats.errors
  from geomstats.geometry.manifold import Manifold
  from geomstats.geometry.riemannian_metric import RiemannianMetric
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 3 for calling the NFoldManifold obj's underlying member method code with example usage: obj.belongs(point, atol) and returns: gs