de-interleave bits
http://stackoverflow.com/a/3233173
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
http://stackoverflow.com/questions/4909263/how-to-efficiently-de-interleave-bits-inverse-morton
// morton1 - extract even bits uint32_t morton1(uint32_t x) { x = x & 0x55555555; x = (x | (x >> 1)) & 0x33333333; x = (x | (x >> 2)) & 0x0F0F0F0F; x = (x | (x >> 4)) & 0x00FF00FF; x = (x | (x >> 8)) & 0x0000FFFF; return x; } // morton2 - extract odd and even bits void morton2(uint32_t *x, uint32_t *y, uint32_t z) { *x = morton1(z); *y = morton1(z >> 1); }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
http://stackoverflow.com/a/4925461
int64 w = (z &0xAAAAAAAA)<<31 | (z &0x55555555 ) w = (w | (w >> 1)) & 0x3333333333333333; w = (w | (w >> 2)) & 0x0F0F0F0F0F0F0F0F; ...