summaryrefslogtreecommitdiff
path: root/Zend/acconfig.h
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>2000-08-20 06:07:42 +0000
committerSascha Schumann <sas@php.net>2000-08-20 06:07:42 +0000
commit1f84023b058932e149b951dc58d557263561309b (patch)
tree74a74ec5d6b06864191ac55468108c8e486c1320 /Zend/acconfig.h
parente325e06693ba09bdae1801e7434cee7f9f0d10bf (diff)
downloadphp-git-1f84023b058932e149b951dc58d557263561309b.tar.gz
Add zend_isinf and zend_isnan.
Diffstat (limited to 'Zend/acconfig.h')
-rw-r--r--Zend/acconfig.h27
1 files changed, 20 insertions, 7 deletions
diff --git a/Zend/acconfig.h b/Zend/acconfig.h
index 9b3153daf1..0d6d84b54e 100644
--- a/Zend/acconfig.h
+++ b/Zend/acconfig.h
@@ -35,18 +35,31 @@ int zend_sprintf(char *buffer, const char *format, ...);
# define zend_sprintf sprintf
#endif
+#ifdef HAVE_ISNAN
+#define zend_isnan(a) isnan(a)
+#elif defined(NAN)
+#define zend_isnan(a) (((a)==NAN)?1:0)
+#else
+#define zend_isnan(a) 0
+#endif
+
+#ifdef HAVE_ISINF
+#define zend_isinf(a) isinf(a)
+#elif defined(INFINITY)
+/* Might not work, but is required by ISO C99 */
+#define zend_isinf(a) (((a)==INFINITY)?1:0)
+#else
+#define zend_isinf(a) 0
+#endif
+
+#include <math.h>
+
#ifdef HAVE_FINITE
#define zend_finite(a) finite(a)
#elif defined(HAVE_ISFINITE)
#define zend_finite(a) isfinite(a)
-#elif defined(HAVE_ISNAN) && defined(HAVE_ISINF)
-#define zend_finite(a) (isnan(a) ? 0 : isinf(a) ? 0 : 1)
-#elif defined(HAVE_ISNAN)
-#define zend_finite(a) (isnan(a) ? 0 : 1)
-#elif defined(HAVE_ISINF)
-#define zend_finite(a) (isinf(a) ? 0 : 1)
#else
-#define zend_finite(a) (1)
+#define zend_finite(a) (zend_isnan(a) ? 0 : zend_isinf(a) ? 0 : 1)
#endif
/*