code: private void updateLight(final T item, final double weight, final boolean mark) {
      assert r_ >= 1;
      assert (r_ + h_) == k_;
  
      final int mSlot = h_; // index of the gap, which becomes the M region
      data_.set(mSlot, item);
      weights_.set(mSlot, weight);
      if (marks_ != null) { marks_.set(mSlot, mark); }
      ++m_;
  
      growCandidateSet(totalWtR_ + weight, r_ + 1);
    }
docs: /* In the "light" case the new item has weight <= old_tau, so
  would appear to the right of the R items in a hypothetical reverse-sorted
  list. It is easy to prove that it is light enough to be part of this
  round's downsampling