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: Advance the walker population.
  
  Parameters
  ----------
  transform: function
      prior transform function
  loglike: function
      loglikelihood function
  Lmin: float
      current log-likelihood threshold
docstr_tok: ["Advance","the","walker","population",".","Parameters","--","--","--","--","--","transform",":","function","prior","transform","function","loglike",":","function","loglikelihood","function","Lmin",":","float","current","log-likelihood","threshold"]
code: def advance(self, transform, loglike, Lmin):
      """Advance the walker population.
  
      Parameters
      ----------
      transform: function
          prior transform function
      loglike: function
          loglikelihood function
      Lmin: float
          current log-likelihood threshold
  
      """
      movable = self.generation < self.nsteps
      all_movable = movable.all()
      # print("moving ", movable.sum(), self.popsize)
      if all_movable:
          i = np.arange(self.popsize)
          args = [
              self.allu[i, self.generation],
              self.allL[i, self.generation],
              # pass values directly
              self.currentt,
              self.currentv,
              self.current_left,
              self.current_right,
              self.searching_left,
              self.searching_right,
          ]
          del i
      else:
          args = [
              self.allu[movable, self.generation[movable]],
              self.allL[movable, self.generation[movable]],
              # this makes copies
              self.currentt[movable],
              self.currentv[movable],
              self.current_left[movable],
              self.current_right[movable],
              self.searching_left[movable],
              self.searching_right[movable],
          ]
      if self.log:
          print("evolve will advance:", movable)
  
      (
          (
              currentt,
              currentv,
              current_left,
              current_right,
              searching_left,
              searching_right,
          ),
          (success, unew, pnew, Lnew),
          nc,
      ) = evolve(transform, loglike, Lmin, *args)
  
      if self.log:
          print("movable", movable.shape, movable.sum(), success.shape)
      moved = submasks(movable, success)
      if self.log:
          print("evolve moved:", moved)
      self.generation[moved] += 1
      if len(pnew) > 0:
          if len(self.currentp) == 0:
              self._setup_currentp(nparams=pnew.shape[1])
  
          if self.log:
              print(
                  "currentp", self.currentp[moved, :].shape, pnew.shape
              )
          self.currentp[moved, :] = pnew
  
      # update with what we learned
      # print(currentu.shape, currentL.shape, success.shape, self.generation[movable])
      self.allu[moved, self.generation[moved]] = unew
      self.allL[moved, self.generation[moved]] = Lnew
      if all_movable:
          # in this case, the values were directly overwritten
          pass
      else:
          self.currentt[movable] = currentt
          self.currentv[movable] = currentv
          self.current_left[movable] = current_left
          self.current_right[movable] = current_right
          self.searching_left[movable] = searching_left
          self.searching_right[movable] = searching_right
      return nc
  
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 9 for calling the PopulationSliceSampler obj's underlying member method code with example usage: obj.advance(transform, loglike, Lmin) and returns: nc