(x: int)
| 408 | |
| 409 | |
| 410 | def mwm_unshuffle(x: int) -> int: |
| 411 | x = ((x & 0x22222222) << 1) | ((x >> 1) & 0x22222222) | (x & 0x99999999) |
| 412 | x = ((x & 0x0C0C0C0C) << 2) | ((x >> 2) & 0x0C0C0C0C) | (x & 0xC3C3C3C3) |
| 413 | x = ((x & 0x00F000F0) << 4) | ((x >> 4) & 0x00F000F0) | (x & 0xF00FF00F) |
| 414 | x = ((x & 0x0000FF00) << 8) | ((x >> 8) & 0x0000FF00) | (x & 0xFF0000FF) |
| 415 | return x |
| 416 | |
| 417 | |
| 418 | def mwm_bitwise_split(v) -> mi.Point: |