summaryrefslogtreecommitdiff
path: root/missing/isinf.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-04-27 02:56:30 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-04-27 02:56:30 +0000
commite975828471542a8fa3db08ecb641eca2b92e3771 (patch)
treeedaea1b4c530c0b846e59bdf88d29592b57b70e1 /missing/isinf.c
parente67e5adf4e33b79c3bc2f2c8a8b4a790a88adcf2 (diff)
better AIX support
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_3@445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'missing/isinf.c')
-rw-r--r--missing/isinf.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/missing/isinf.c b/missing/isinf.c
new file mode 100644
index 0000000000..0297efdfd4
--- /dev/null
+++ b/missing/isinf.c
@@ -0,0 +1,18 @@
+static double zero() { return 0.0; }
+static double one() { return 1.0; }
+static double inf() { return one() / zero(); }
+
+int
+isinf(n)
+ double n;
+{
+ static double pinf = 0.0;
+ static double ninf = 0.0;
+
+ if (pinf == 0.0) {
+ pinf = inf();
+ ninf = -pinf;
+ }
+ return memcmp(&n, &pinf, sizeof n) == 0
+ || memcmp(&n, &ninf, sizeof n) == 0;
+}