inverseQuery method

int inverseQuery(
  1. double prefixSum
)

Implementation

int inverseQuery(double prefixSum) {
  var index = 0;
  var bitmask = 1 << size.bitLength - 1;
  while (bitmask != 0 && index < size) {
    final nextIndex = index + bitmask;
    if (nextIndex <= size && _tree[nextIndex] <= prefixSum) {
      index = nextIndex;
      prefixSum -= _tree[index];
    }
    bitmask >>= 1;
  }
  return index;
}