diff options
Diffstat (limited to 'missing/isinf.c')
-rw-r--r-- | missing/isinf.c | 28 |
1 files changed, 23 insertions, 5 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 |