| * 64-bit IEEE not-a-number routines. |
| * This is big/little-endian portable assuming that |
| * the 64-bit doubles and 64-bit integers have the |
| typedef unsigned long long uvlong; |
| typedef unsigned long ulong; |
| static uvlong uvnan = 0x7FF0000000000001LL; |
| static uvlong uvinf = 0x7FF0000000000000LL; |
| static uvlong uvneginf = 0xFFF0000000000000LL; |
| static uvlong uvnan = 0x7FF0000000000001; |
| static uvlong uvinf = 0x7FF0000000000000; |
| static uvlong uvneginf = 0xFFF0000000000000; |
| /* gcc complains about "return *(double*)&uvnan;" */ |
| return (ulong)(x>>32)==0x7FF00000 && !__isInf(d, 0); |
| __isInf(double d, int sign) |
| return x==uvinf || x==uvneginf; |