in histogram/src/histogram.rs [393:409]
fn bucket_index(&self, value: u64) -> usize {
if value == 0 {
return 0;
}
let m = self.m as u64;
let r = self.r as u64;
let h = (63 - value.leading_zeros()) as u64;
if h < r {
(value >> m) as usize
} else {
let d = h - r + 1;
((d + 1) * self.G + ((value - (1 << h)) >> (m + d))) as usize
}
}