diff options
Diffstat (limited to 'newlib/libc/include/math.h')
-rw-r--r-- | newlib/libc/include/math.h | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h index 41ce752b3..041e8000b 100644 --- a/newlib/libc/include/math.h +++ b/newlib/libc/include/math.h @@ -1,3 +1,4 @@ +/* math.h -- Definitions for the math floating point package. */ #ifndef _MATH_H_ #define _MATH_H_ @@ -118,10 +119,6 @@ typedef double double_t; #define FP_SUBNORMAL 3 #define FP_NORMAL 4 -extern int __isinff (float x); -extern int __isinfd (double x); -extern int __isnanf (float x); -extern int __isnand (double x); extern int __fpclassifyf (float x); extern int __fpclassifyd (double x); extern int __signbitf (float x); @@ -134,19 +131,9 @@ extern int __signbitd (double x); #define isfinite(y) \ (__extension__ ({__typeof__(y) __y = (y); \ fpclassify(__y) != FP_INFINITE && fpclassify(__y) != FP_NAN;})) - -/* Note: isinf and isnan were once functions in newlib that took double - * arguments. C99 specifies that these names are reserved for macros - * supporting multiple floating point types. Thus, they are - * now defined as macros. Implementations of the old functions - * taking double arguments still exist for compatibility purposes. */ -#define isinf(x) \ - (__extension__ ({__typeof__(x) __x = (x); \ - (sizeof (__x) == sizeof (float)) ? __isinff(__x) : __isinfd(__x);})) -#define isnan(x) \ - (__extension__ ({__typeof__(x) __x = (x); \ - (sizeof (__x) == sizeof (float)) ? __isnanf(__x) : __isnand(__x);})) -#define isnormal(y) (fpclassify(y) == FP_NORMAL) +#define isnormal(z) \ + (__extension__ ({__typeof__(z) __z = (z); \ + fpclassify(__z) == FP_NORMAL;})) #define signbit(x) \ (__extension__ ({__typeof__(x) __x = (x); \ (sizeof(__x) == sizeof(float)) ? __signbitf(__x) : __signbitd(__x);})) @@ -175,6 +162,8 @@ extern int __signbitd (double x); extern double infinity _PARAMS((void)); extern double nan _PARAMS((const char *)); +extern int isnan _PARAMS((double)); +extern int isinf _PARAMS((double)); extern int finite _PARAMS((double)); extern double copysign _PARAMS((double, double)); extern int ilogb _PARAMS((double)); |