pub fn mul_one(a: u32, b: u32, shift: u32) -> u32
Fixed-point multiply: (a * b + half) >> shift, with rounding. Replaces C++ template mul_one<Shift>::mul.
(a * b + half) >> shift
mul_one<Shift>::mul