char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
eafe15a5e
char/aliceai-t5-moe
1#ifndef HEX_COMMON_H 2#define HEX_COMMON_H 3 4#include <stdint.h> 5#include <stddef.h> 6#include <stdbool.h> 7 8#ifndef SIZE_MAX 9#define SIZE_MAX ((size_t)-1) 10#endif 11 12#ifndef MAX 13#define MAX (a ,b ) ((a) > (b) ? (a) : (b)) 14#endif 15 16#ifndef MIN 17#define MIN (a ,b ) ((a) < (b) ? (a) : (b)) 18#endif 19 20static inline uint32_t hex_ceil_pow2 (uint32_t x ) { 21if (x <=1 ) {return 1 ; } 22int p = 2 ; 23x -- ; 24while (x >>=1 ) {p <<=1 ; } 25return p ; 26} 27 28static inline size_t hmx_ceil_div (size_t num ,size_t den ) { 29return (num + den - 1 ) /den ; 30} 31 32static inline int32_t hex_is_aligned (const void * addr ,uint32_t align ) { 33return ((size_t )addr & (align - 1 ))== 0 ; 34} 35 36static inline size_t hex_align_up (size_t v ,size_t align ) { 37return hmx_ceil_div (v ,align )* align ; 38} 39 40static inline size_t hex_align_down (size_t v ,size_t align ) { 41return (v /align )* align ; 42} 43 44static inline int32_t hex_is_one_chunk (void * addr ,uint32_t n ,uint32_t chunk_size ) { 45uint32_t left_off = (size_t )addr & (chunk_size - 1 ); 46uint32_t right_off = left_off + n ; 47return right_off <=chunk_size ; 48} 49 50static inline uint32_t hex_round_up (uint32_t n ,uint32_t m ) { 51return m * ((n + m - 1 ) /m ); 52} 53 54static inline size_t hex_smin (size_t a ,size_t b ) { 55return a < b ?a :b ; 56} 57 58static inline size_t hex_smax (size_t a ,size_t b ) { 59return a > b ?a :b ; 60} 61 62static inline void hex_swap_ptr (void ** p1 ,void ** p2 ) { 63void * t = * p1 ; 64* p1 = * p2 ; 65* p2 = t ; 66} 67 68static inline bool hex_mul_overflow (size_t a ,size_t b ,size_t * out ) { 69if (a != 0 && b > SIZE_MAX /a )return true; 70* out = a * b ; 71return false; 72} 73 74static inline bool hex_add_overflow (size_t a ,size_t b ,size_t * out ) { 75if (a > SIZE_MAX - b )return true; 76* out = a + b ; 77return false; 78} 79 80static inline uint32_t hex_gcd_u32 (uint32_t a ,uint32_t b ) { 81while (b != 0 ) { 82uint32_t t = b ; 83b = a %b ; 84a = t ; 85 } 86return a ; 87} 88 89#endif // HEX_COMMON_H