diff options
Diffstat (limited to 'missing')
-rw-r--r-- | missing/isinf.c | 28 | ||||
-rw-r--r-- | missing/isnan.c | 24 |
2 files changed, 28 insertions, 24 deletions
diff --git a/missing/isinf.c b/missing/isinf.c index 38772ba4f1..1b09f11f19 100644 --- a/missing/isinf.c +++ b/missing/isinf.c @@ -9,16 +9,33 @@ int isinf(n) double n; { - if (IsNANorINF(n) && IsINF(n)) { - return 1; - } else { - return 0; - } + if (IsNANorINF(n) && IsINF(n)) { + return 1; + } + else { + return 0; + } } #else #include "config.h" + +#if defined(HAVE_FINITE) && defined(HAVE_ISNAN) + +#ifdef HAVE_IEEEFP_H +#include <ieeefp.h> +#endif + +int +isinf(n) + double n; +{ + return (!finite(x) && !isnan(x)) +} + +#else + #ifdef HAVE_STRING_H # include <string.h> #else @@ -44,3 +61,4 @@ isinf(n) || memcmp(&n, &ninf, sizeof n) == 0; } #endif +#endif diff --git a/missing/isnan.c b/missing/isnan.c index df424c2e61..459048e936 100644 --- a/missing/isnan.c +++ b/missing/isnan.c @@ -1,31 +1,17 @@ /* public domain rewrite of isnan(3) */ -#ifdef _MSC_VER - -#include <float.h> -int -isnan(n) - double n; -{ - return _isnan(n); -} - -#else - static int double_ne(); int isnan(n) - double n; + double n; { - return double_ne(n, n); + return double_ne(n, n); } -static -int +static int double_ne(n1, n2) - double n1, n2; + double n1, n2; { - return n1 != n2; + return n1 != n2; } -#endif |