riichi_decomp_table/utils.rs
1pub const fn key_is_overflow(key: u32) -> bool {
2 (((key & 0o333333333) + 0o333333333) & key & 0o444444444) != 0
3}
4
5pub const fn key_sum(key: u32) -> u32 {
6 let key = (key & 0o707070707) + ((key & 0o070707070) >> 3);
7 let key = (key & 0o700770077) + ((key & 0o077007700) >> 6);
8 let key = (key & 0o700007777) + ((key & 0o077770000) >> 12);
9 (key & 0o077777777) + (key >> 24)
10}