using u8 = uint8_t; using u16 = uint16_t; using u32 = uint32_t; using u64 = uint64_t; using f32 = float; using f64 = double; using b8 = bool; using b32 = int32_t; using b32x = int; using i8 = int8_t; using i32 = int32_t; using i64 = int64_t; #define internal static #define max(a, b) ((a) > (b)) ? (a) : (b) #define min(a, b) ((a) < (b)) ? (a) : (b) #define KiB(b) (b * 1024) #define MiB(b) (KiB(b) * 1024) #define GiB(b) (MiB(b) * 1024) #define LIKELY(x) __builtin_expect(!!(x), 1) #define UNLIKELY(x) __builtin_expect(!!(x), 0)