X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=include%2Fmath.h;h=ae84a73163589d3827166348533a2d1f1acc65d8;hb=405ce58dcf59ecfb3e245fed0b96b1f35fbeaec1;hp=4c46a055fbdd218d4747a025502b515643fce01b;hpb=9fcecd7b34c66e9d0a2b000809e022a4f3e5e951;p=musl 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 -#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 */