Function floor_sum_i64

Source
pub fn floor_sum_i64(l: i64, r: i64, a: i64, b: i64, m: u64) -> i64
Expand description

Sum of Floor of Linear mod 2^64

$$\sum_{i=l}^{r-1}\left\lfloor\frac{a\times i+b}{m}\right\rfloor$$

Examples found in repository?
crates/competitive/src/math/floor_sum.rs (line 83)
78pub fn floor_sum_range_freq(l: i64, r: i64, a: i64, b: i64, m: u64, range: Range<i64>) -> i64 {
79    if range.start >= range.end {
80        return 0;
81    }
82    assert!(0 <= range.start && range.end <= m as i64);
83    let x1 = floor_sum_i64(l, r, a, b - range.start, m);
84    let x2 = floor_sum_i64(l, r, a, b - range.end, m);
85    x1 - x2
86}