docs: public static int indexOf(long v) {
      if (v <= 0) {
        return 0;
      } else if (v <= 4) {
        return (int) v;
      } else {
        int lz = Long.numberOfLeadingZeros(v);
        int shift = 64 - lz - 1;
        long prevPowerOf2 = (v >> shift) << shift;
        long prevPowerOf4 = prevPowerOf2;
        if (shift % 2 != 0) {
          shift--;
          prevPowerOf4 = prevPowerOf2 >> 1;
        }
  
        long base = prevPowerOf4;
        long delta = base / 3;
        int offset = (int) ((v - base) / delta);
        int pos = offset + POWER_OF_4_INDEX[shift / 2];
        return (pos >= BUCKET_VALUES.length - 1) ? BUCKET_VALUES.length - 1 : pos + 1;
      }
    }