42#define M_E 2.7182818284590452354
43#define M_LOG2E 1.4426950408889634074
44#define M_LOG10E 0.43429448190325182765
45#define M_LN2 0.69314718055994530942
46#define M_LN10 2.30258509299404568402
47#define M_PI 3.14159265358979323846
48#define M_PI_2 1.57079632679489661923
49#define M_PI_4 0.78539816339744830962
50#define M_1_PI 0.31830988618379067154
51#define M_2_PI 0.63661977236758134308
52#define M_2_SQRTPI 1.12837916709551257390
53#define M_SQRT2 1.41421356237309504880
54#define M_SQRT1_2 0.70710678118654752440
96#define EXTRACT_WORDS(hi,lo,d) \
98 uint64_t __u = asuint64(d); \
100 (lo) = (uint32_t)__u; \
103#define GET_HIGH_WORD(hi,d) \
105 (hi) = asuint64(d) >> 32; \
108#define GET_LOW_WORD(lo,d) \
110 (lo) = (uint32_t)asuint64(d); \
113#define INSERT_WORDS(d,hi,lo) \
115 (d) = asdouble(((uint64_t)(hi)<<32) | (uint32_t)(lo)); \
118#define SET_HIGH_WORD(d,hi) \
119 INSERT_WORDS(d, hi, (uint32_t)asuint64(d))
121#define SET_LOW_WORD(d,lo) \
122 INSERT_WORDS(d, asuint64(d)>>32, lo)
124#define GET_FLOAT_WORD(w,d) \
129#define SET_FLOAT_WORD(d,w) \
143static INLINE void fp_force_evalf(
float x) {
148static INLINE void fp_force_eval(
double x) {
153static INLINE void fp_force_evall(
long double x) {
154 volatile long double y;
159#define isfinite(x) ((fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE))
160#define isnormal(x) (fpclassify(x) == FP_NORMAL)
161#define isnan(x) (fpclassify(x) == FP_NAN)
162#define isinf(x) (fpclassify(x) == FP_INFINITE)
164#define FORCE_EVAL(x) do { \
165 if (sizeof(x) == sizeof(float)){ \
166 _KePrint("Evaluating float \r\n"); \
168 }else if (sizeof(x) == sizeof(double)) { \
169 _KePrint("FORCE EVAL double \r\n"); \
172 _KePrint("Force eval long \r\n"); \
#define INLINE
Definition _xeneva.h:63
#define XE_LIB
Definition _xeneva.h:55
#define XE_EXTERN
Definition _xeneva.h:50
void * memset(void *Dest, int Value, ACPI_SIZE Count)
Definition utclib.c:346
unsigned int uint32_t
Definition acefiex.h:163
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
float exp(float x)
Definition audioCtrl.cpp:53
XE_LIB double frexp(double x, int *exp)
Definition math.cpp:308
XE_LIB double pow(double, double)
Definition math.cpp:173
XE_LIB double sqrt(double)
Definition math.cpp:276
XE_LIB double tan(double)
Definition math.cpp:295
XE_LIB double floor(double)
Definition math.cpp:134
@ FP_INFINITE
Definition math.h:136
@ FP_SUBNORMAL
Definition math.h:138
@ FP_NORMAL
Definition math.h:139
@ FP_ZERO
Definition math.h:137
@ FP_NAN
Definition math.h:135
XE_LIB double fabs(double)
Definition math.cpp:120
XE_LIB double cos(double)
Definition math.cpp:52
XE_LIB int fpclassify(double x)
Definition math.cpp:331
XE_LIB float fabsf(float)
Definition math.cpp:127
XE_LIB double fmod(double, double)
Definition math.cpp:145
XE_LIB float atan2f(float y, float x)
Definition atan2f.cpp:36
XE_LIB float floorf(float)
Definition math.cpp:139
XE_LIB double sin(double)
Definition math.cpp:194
XE_LIB double modf(double, double *)
Definition math.cpp:160
XE_LIB float atanf(float x)
Definition atanf.cpp:25
XE_LIB float sqrtf(float x)
Definition math.cpp:304
XE_LIB float tanf(float)
Definition math.cpp:299
XE_LIB double ceil(double)
Definition math.cpp:42
XE_LIB float roundf(float x)
Definition roundf.cpp:16
XE_LIB float fmodf(float x, float y)
Definition fmodf.cpp:7
XE_LIB float sinf(float)
Definition math.cpp:227
XE_LIB float ceilf(float x)
Definition ceilf.cpp:3
XE_LIB float cosf(float)
Definition math.cpp:85
XE_LIB float acosf(float x)
Definition acosf.cpp:50
int x
Definition term.cpp:49
double d
Definition math.h:62
uint64_t i
Definition math.h:63
uint32_t i
Definition math.h:58
float f
Definition math.h:57