_find()

in lib/index.js [122:139]


  _find(sum, before) {
    let left = 0;
    let right = this._msb << 1;
    let sumT = sum;

    while (right > left + 1) {
      let middle = (left + right) >> 1;
      const sumM = this._getTree(middle);

      if (middle <= this._maxVal && before(sumM, sumT)) {
        sumT -= sumM;
        left = middle;
      } else {
        right = middle;
      }
    }
    return left;
  }