(a: u64, b: u64)
| 143 | /// Upper 64 bits of signed*unsigned product. |
| 144 | #[inline] |
| 145 | pub fn mulhsu(a: u64, b: u64) -> u64 { |
| 146 | ((a as i64 as i128).wrapping_mul(b as u128 as i128) >> 64) as u64 |
| 147 | } |
| 148 | |
| 149 | /// Signed division. Returns `u64::MAX` on divide-by-zero; `i64::MIN` (as u64) on overflow. |
| 150 | pub fn div(a: u64, b: u64) -> u64 { |