fn bucket_index()

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
        }
    }