X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=include%2Flfta%2Frts_external.h;h=358527e0ebd195aefff819e805b2d75795710584;hb=eb761d89890df8d74532dd4faad118db18fd3b7d;hp=5e0f197b98fa8bf594217fc32e067225af49207f;hpb=804ea15b01566ac0de58781ca61870b4824d0e02;p=com%2Fgs-lite.git diff --git a/include/lfta/rts_external.h b/include/lfta/rts_external.h index 5e0f197..358527e 100644 --- a/include/lfta/rts_external.h +++ b/include/lfta/rts_external.h @@ -74,27 +74,67 @@ gs_retval_t str_compare( struct gs_string * str1, struct gs_string * str2); gs_retval_t str_constructor(struct gs_string *s, gs_sp_t l); +/* string hash */ + +#define string_hash(s) lfta_V_STR_to_hash((*(s))) /* External Function definitions */ -#define LLMIN(x,y) ((x)<(y)?(x):(y)) -#define LLMAX(x,y) ((x)<(y)?(y):(x)) -#define UMIN(x,y) ((x)<(y)?(x):(y)) -#define UMAX(x,y) ((x)<(y)?(y):(x)) +#define ULLMIN(x,y) (unsigned long long)(((x)<(y)?(x):(y))) +#define ULLMAX(x,y) (unsigned long long)(((x)<(y)?(y):(x))) +#define LLMIN(x,y) (long long int)(((x)<(y)?(x):(y))) +#define LLMAX(x,y) (long long int)(((x)<(y)?(y):(x))) +#define UMIN(x,y) (unsigned int)(((x)<(y)?(x):(y))) +#define UMAX(x,y) (unsigned int)(((x)<(y)?(y):(x))) +#define LMIN(x,y) (int)(((x)<(y)?(x):(y))) +#define LMAX(x,y) (int)(((x)<(y)?(y):(x))) +#define FMIN(x,y) (double)(((x)<(y)?(x):(y))) +#define FMAX(x,y) (double)(((x)<(y)?(y):(x))) + // type conversion #define INT(c) ((int)(c)) #define UINT(c) ((unsigned int)(c)) #define ULLONG(c) ((unsigned long long)(c)) +#define LLONG(c) ((long long int)(c)) #define FLOAT(c) ((double)(c)) + +// comparison #define EQ(x,y) ((x)==(y)) #define GEQ(x,y) ((x)>=(y)) +#define GE(x,y) ((x)>(y)) #define LEQ(x,y) ((x)<=(y)) +#define LE(x,y) ((x)<(y)) + +// if_else +#define if_else_f(x,y,z) (double)(((x)==0?(z):(y))) +#define if_else_ll(x,y,z) (long long int)(((x)==0?(z):(y))) +#define if_else_ul(x,y,z) (unsigned long long)(((x)==0?(z):(y))) +#define if_else_u(x,y,z) (unsigned int)(((x)==0?(z):(y))) +#define if_else_i(x,y,z) (int)(((x)==0?(z):(y))) // Cast away temporality #define non_temporal(x)(x) +// endian swap +#define endian_swap_ui(x) ( (( (x) & 0xFF000000) >> 24) | (( (x) & 0x00FF0000) >> 8) | (( (x) & 0x0000FF00) << 8) | (( (x) & 0x000000FF) << 24) ) + + // Access math libraries #define sqrt(x) sqrt(x) +#define pow(x,y) pow((x),(y)) +#define sin(x) sin(x) +#define cos(x) cos(x) +#define tan(x) tan(x) +#define asin(x) asin(x) +#define acos(x) acos(x) +#define atan(x) atan(x) +#define log(x) log(x) +#define log2(x) log2(x) +#define log10(x) log10(x) +#define ceil(x) ceil(x) +#define floor(x) floor(x) +#define fmod(x) fmod(x) +#define trunc(x) trunc(x)