I'm translating some C++ to Rust and the original C++ code silently relies on unsigned integer overflow just... somehow working for this math??? 🙃 This function has tests which I've also translated to Rust, and the only way I can get the tests to pass is by preventing overflow using wider integer types in the intermediate math... u16::overflowing_mul does not do the trick so I don't understand how the C++ code is working??? 🤔