diff options
| -rw-r--r-- | include/math.h | 14 | 
1 files changed, 8 insertions, 6 deletions
diff --git a/include/math.h b/include/math.h index 4c46a055..ae84a731 100644 --- a/include/math.h +++ b/include/math.h @@ -12,17 +12,18 @@ extern "C" {  #define __NEED___uint64_t  #include <bits/alltypes.h> -#define __MAKE_FLOAT(i) (((union { int __i; float __f; }){ .__i = i }).__f) - -#define NAN       __MAKE_FLOAT(0x7fc00000) -#define INFINITY  __MAKE_FLOAT(0x7f800000) +#if 100*__GNUC__+__GNUC_MINOR__ >= 303 +#define NAN       __builtin_nanf("") +#define INFINITY  __builtin_inff() +#else +#define NAN       (0.0f/0.0f) +#define INFINITY  1e40f +#endif  #define HUGE_VALF INFINITY  #define HUGE_VAL  ((double)INFINITY)  #define HUGE_VALL ((long double)INFINITY) -#define MAXFLOAT  __MAKE_FLOAT(0x7f7fffff) -  #define MATH_ERRNO  1  #define MATH_EXCEPT 2  #define math_errhandling 2 @@ -301,6 +302,7 @@ float       truncf(float);  long double truncl(long double);  #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) +#define MAXFLOAT        3.40282347e+38F  #define M_E             2.7182818284590452354   /* e */  #define M_LOG2E         1.4426950408889634074   /* log_2 e */  #define M_LOG10E        0.43429448190325182765  /* log_10 e */  | 
