47 uint32_t morton_code(uint32_t x, uint32_t y, uint32_t z) {
 
   48   x = (
x | (
x << 16)) & 0x030000FF;
 
   49   x = (
x | (
x << 8)) & 0x0300F00F;
 
   50   x = (
x | (
x << 4)) & 0x030C30C3;
 
   51   x = (
x | (
x << 2)) & 0x09249249;
 
   53   y = (
y | (
y << 16)) & 0x030000FF;
 
   54   y = (
y | (
y << 8)) & 0x0300F00F;
 
   55   y = (
y | (
y << 4)) & 0x030C30C3;
 
   56   y = (
y | (
y << 2)) & 0x09249249;
 
   58   z = (z | (z << 16)) & 0x030000FF;
 
   59   z = (z | (z << 8)) & 0x0300F00F;
 
   60   z = (z | (z << 4)) & 0x030C30C3;
 
   61   z = (z | (z << 2)) & 0x09249249;
 
   63   return x | (
y << 1) | (z << 2);
 
   67 uint64_t morton_code60(uint32_t x, uint32_t y, uint32_t z) {
 
   75   return (
uint64_t(morton_code(hi_x, hi_y, hi_z)) << 30) |
 
   76          uint64_t(morton_code(lo_x, lo_y, lo_z));