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}