pub fn div_rem(a: u64, b: u64) -> (u64, u64) {
(a / b, a % b)
}
pub fn div_ceil(a: u64, b: u64) -> u64 {
let (d, m) = div_rem(a, b);
if m == 0 {
d
} else {
d + 1
}
}
pub fn padding_to_multiple(a: u64, b: u64) -> usize {
let m = a % b;
let r = if m == 0 {
m
} else {
b - m
};
r as usize
}
pub fn is_multiple_of(a: u64, b: u64) -> bool {
a % b == 0
}