summaryrefslogtreecommitdiff
path: root/missing/isinf.c
diff options
context:
space:
mode:
Diffstat (limited to 'missing/isinf.c')
-rw-r--r--missing/isinf.c28
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