41#define M_E 2.7182818284590452354
42#define M_LOG2E 1.4426950408889634074
43#define M_LOG10E 0.43429448190325182765
44#define M_LN2 0.69314718055994530942
45#define M_LN10 2.30258509299404568402
46#define M_PI 3.14159265358979323846
47#define M_PI_2 1.57079632679489661923
48#define M_PI_4 0.78539816339744830962
49#define M_1_PI 0.31830988618379067154
50#define M_2_PI 0.63661977236758134308
51#define M_2_SQRTPI 1.12837916709551257390
52#define M_SQRT2 1.41421356237309504880
53#define M_SQRT1_2 0.70710678118654752440
94#define EXTRACT_WORDS(hi, lo, d) \
96 uint64_t __u = asuint64(d); \
98 (lo) = (uint32_t)__u; \
101#define GET_HIGH_WORD(hi, d) \
103 (hi) = asuint64(d) >> 32; \
106#define GET_LOW_WORD(lo, d) \
108 (lo) = (uint32_t)asuint64(d); \
111#define INSERT_WORDS(d, hi, lo) \
113 (d) = asdouble(((uint64_t)(hi) << 32) | (uint32_t)(lo)); \
116#define SET_HIGH_WORD(d, hi) INSERT_WORDS(d, hi, (uint32_t)asuint64(d))
118#define SET_LOW_WORD(d, lo) INSERT_WORDS(d, asuint64(d) >> 32, lo)
120#define GET_FLOAT_WORD(w, d) \
125#define SET_FLOAT_WORD(d, w) \
132 static INLINE void fp_force_evalf(
float x) {
137 static INLINE void fp_force_eval(
double x) {
142 static INLINE void fp_force_evall(
long double x) {
143 volatile long double y;
148#define isfinite(x) ((fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE))
149#define isnormal(x) (fpclassify(x) == FP_NORMAL)
150#define isnan(x) (fpclassify(x) == FP_NAN)
151#define isinf(x) (fpclassify(x) == FP_INFINITE)
153#define FORCE_EVAL(x) \
155 if (sizeof(x) == sizeof(float)) { \
156 _KePrint("Evaluating float \r\n"); \
158 } else if (sizeof(x) == sizeof(double)) { \
159 _KePrint("FORCE EVAL double \r\n"); \
162 _KePrint("Force eval long \r\n"); \
#define INLINE
Definition _xeneva.h:62
#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:297
XE_LIB double pow(double, double)
Definition math.cpp:173
XE_LIB double sqrt(double)
Definition math.cpp:267
XE_LIB double tan(double)
Definition math.cpp:285
XE_LIB double floor(double)
Definition math.cpp:140
XE_LIB double fabs(double)
Definition math.cpp:126
XE_LIB double cos(double)
Definition math.cpp:62
XE_LIB int fpclassify(double x)
Definition math.cpp:320
XE_LIB float fabsf(float)
Definition math.cpp:133
XE_LIB double fmod(double, double)
Definition math.cpp:150
XE_LIB float atan2f(float y, float x)
Definition atan2f.cpp:35
XE_LIB float fminf(float a, float b)
Definition math.cpp:377
XE_LIB float fmaxf(float a, float b)
Definition math.cpp:373
@ FP_INFINITE
Definition math.h:130
@ FP_SUBNORMAL
Definition math.h:130
@ FP_NORMAL
Definition math.h:130
@ FP_ZERO
Definition math.h:130
@ FP_NAN
Definition math.h:130
XE_LIB float floorf(float)
Definition math.cpp:145
XE_LIB double sin(double)
Definition math.cpp:190
XE_LIB double modf(double, double *)
Definition math.cpp:162
XE_LIB float atanf(float x)
Definition atanf.cpp:25
XE_LIB float sqrtf(float x)
Definition math.cpp:293
XE_LIB float tanf(float)
Definition math.cpp:289
XE_LIB double ceil(double)
Definition math.cpp:52
XE_LIB float roundf(float x)
Definition roundf.cpp:15
XE_LIB float fmodf(float x, float y)
Definition fmodf.cpp:10
XE_LIB float sinf(float)
Definition math.cpp:222
XE_LIB float ceilf(float x)
Definition ceilf.cpp:3
XE_LIB float cosf(float)
Definition math.cpp:94
XE_LIB float acosf(float x)
Definition acosf.cpp:45
double d
Definition math.h:61
uint64_t i
Definition math.h:62
uint32_t i
Definition math.h:57
float f
Definition math.h:56