fixed more binutils issues (newer gcc/libc)
[zpugcc/jano.git] / toolchain / gcc / newlib / libm / mathfp / sf_isnan.c
blobac557a6b8a7131e792c20487b47795842b048fa7
2 /* @(#)z_isnanf.c 1.0 98/08/13 */
3 /******************************************************************
4 * isnanf
6 * Input:
7 * x - pointer to a floating point value
9 * Output:
10 * An integer that indicates if the number is NaN.
12 * Description:
13 * This routine returns an integer that indicates if the number
14 * passed in is NaN (1) or is finite (0).
16 *****************************************************************/
18 #include "fdlibm.h"
19 #include "zmath.h"
21 int
22 _DEFUN (isnanf, (float),
23 float x)
25 __int32_t wx;
26 int exp;
28 GET_FLOAT_WORD (wx, x);
29 exp = (wx & 0x7f800000) >> 23;
31 if ((exp == 0x7f8) && (wx & 0x7fffff))
32 return (1);
33 else
34 return (0);
38 #ifdef _DOUBLE_IS_32BITS
40 int
41 _DEFUN (isnan, (double),
42 double x)
44 return isnanf((float) x);
47 #endif /* defined(_DOUBLE_IS_32BITS) */