class_docstr: Vectorized slice/HARM sampler.
  
  Can revert until all previous steps have likelihoods allL above Lmin.
  Updates currentt, generation and allL, in-place.
docstr: Allocate arrays.
docstr_tok: ["Allocate","arrays","."]
code: def _setup(self, ndim):
      """Allocate arrays."""
      self.allu = (
          np.zeros((self.popsize, self.nsteps + 1, ndim)) + np.nan
      )
      self.allL = np.zeros((self.popsize, self.nsteps + 1)) + np.nan
      self.currentt = np.zeros(self.popsize) + np.nan
      self.currentv = np.zeros((self.popsize, ndim)) + np.nan
      self.generation = np.zeros(self.popsize, dtype=int) - 1
      self.current_left = np.zeros(self.popsize)
      self.current_right = np.zeros(self.popsize)
      self.searching_left = np.zeros(self.popsize, dtype=bool)
      self.searching_right = np.zeros(self.popsize, dtype=bool)
  
imports: import numpy
  from ultranest.utils import submasks
  from ultranest.stepfuncs import evolve, step_back
  from ultranest.stepfuncs import generate_cube_oriented_direction, generate_cube_oriented_direction_scaled
  from ultranest.stepfuncs import generate_random_direction, generate_region_oriented_direction, generate_region_random_direction
  from ultranest.stepfuncs import generate_differential_direction, generate_mixture_random_direction
  import scipy.stats
label_desc: Use image node_id 4 for calling the PopulationSliceSampler obj's underlying member method code with example usage: obj._setup(ndim) without return types