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'.
code: def __init__(
      self,
      base_manifold,
      n_copies,
      equip=True,
  ):
      geomstats.errors.check_integer(n_copies, "n_copies")
      dim = n_copies * base_manifold.dim
      shape = (n_copies,) + base_manifold.shape
  
      self.base_manifold = base_manifold
      self.n_copies = n_copies
  
      super().__init__(
          dim=dim,
          shape=shape,
          default_coords_type=base_manifold.default_coords_type,
          equip=equip,
      )
  
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 1 to create a new NFoldManifold object from inherited base classes: Manifold with example: obj = NFoldManifold(base_manifold, n_copies, equip)