docs: def indices(self, fit):
          """return the set of indices to be reevaluated for noise
          measurement.
  
          Given the first values are the earliest, this is a useful policy also
          with a time changing objective.
  
          """
          ## meta_parameters.noise_reeval_multiplier == 1.0
          lam_reev = 1.0 * (self.lam_reeval if self.lam_reeval
                              else 2 + len(fit) / 20)
          lam_reev = int(lam_reev) + ((lam_reev % 1) > np.random.rand())
          ## meta_parameters.noise_choose_reeval == 1
          choice = 1
          if choice == 1:
              # take n_first first and reev - n_first best of the remaining
              n_first = lam_reev - lam_reev // 2
              sort_idx = np.argsort(array(fit, copy=False)[n_first:]) + n_first
              return np.array(list(range(0, n_first)) +
                              list(sort_idx[0:lam_reev - n_first]), copy=False)
          elif choice == 2:
              idx_sorted = np.argsort(array(fit, copy=False))
              # take lam_reev equally spaced, starting with best
              linsp = np.linspace(0, len(fit) - len(fit) / lam_reev, lam_reev)
              return idx_sorted[[int(i) for i in linsp]]
          # take the ``lam_reeval`` best from the first ``2 * lam_reeval + 2`` values.
          elif choice == 3:
              return np.argsort(array(fit, copy=False)[:2 * (lam_reev + 1)])[:lam_reev]
          else:
              raise ValueError('unrecognized choice value %d for noise reev'
                               % choice)