no libc, start on socket x11

This commit is contained in:
veclavtlica
2026-10-04 11:13:07 +03:00
parent 1125073568
commit 14062e9d00
21 changed files with 516 additions and 222 deletions
+36
View File
@@ -0,0 +1,36 @@
#ifndef COM_ZORD_H
#define COM_ZORD_H
#include <stdint.h>
// #include <immintrin.h>
extern const uint16_t com_zord_morton_table[];
/* Z-filling curve to help with cache and data locality. */
static inline uint32_t com_zord_order(uint16_t x, uint16_t y) {
return (com_zord_morton_table[y >> 8] << 17) |
(com_zord_morton_table[x >> 8] << 16) |
(com_zord_morton_table[y & 0xFF] << 1) |
(com_zord_morton_table[x & 0xFF]);
// return _pdep_u32(x, 0x55555555) | _pdep_u32(y, 0xAAAAAAAA);
}
/* https://en.wikipedia.org/wiki/Z-order_curve#Coordinate_values*/
static inline uint32_t com_zord_inc_x(uint32_t z) {
return (((z | 0b10101010) + 1) & 0b01010101) | (z & 0b10101010);
}
static inline uint32_t com_zord_dec_x(uint32_t z) {
return (((z & 0b01010101) - 1) & 0b01010101) | (z & 0b10101010);
}
static inline uint32_t com_zord_inc_y(uint32_t z) {
return (((z | 0b01010101) + 1) & 0b10101010) | (z & 0b01010101);
}
static inline uint32_t com_zord_dec_y(uint32_t z) {
return (((z & 0b10101010) - 1) & 0b10101010) | (z & 0b01010101);
}
#endif