]> git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
Remove __STDC__ conditionals from libm.
[thirdparty/glibc.git] / sysdeps / ieee754 / dbl-64 / wordsize-64 / s_isnan.c
1 /* @(#)s_isnan.c 5.1 93/09/24 */
2 /*
3 * ====================================================
4 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
5 *
6 * Developed at SunPro, a Sun Microsystems, Inc. business.
7 * Permission to use, copy, modify, and distribute this
8 * software is freely granted, provided that this notice
9 * is preserved.
10 * ====================================================
11 */
12
13 /*
14 * isnan(x) returns 1 is x is nan, else 0;
15 * no branching!
16 */
17
18 #include "math.h"
19 #include "math_private.h"
20
21 #undef __isnan
22 int __isnan(double x)
23 {
24 int64_t hx;
25 EXTRACT_WORDS64(hx,x);
26 hx &= UINT64_C(0x7fffffffffffffff);
27 hx = UINT64_C(0x7ff0000000000000) - hx;
28 return (int)(((uint64_t)hx)>>63);
29 }
30 hidden_def (__isnan)
31 weak_alias (__isnan, isnan)
32 #ifdef NO_LONG_DOUBLE
33 strong_alias (__isnan, __isnanl)
34 weak_alias (__isnan, isnanl)
35 #endif