aboutsummaryrefslogtreecommitdiffstats
path: root/include/ruby/defines.h
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-12-29 07:05:39 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-12-29 07:05:39 +0000
commit7ed0640ffb938fcf246f5167c7062fbf2a46dcd3 (patch)
tree03fe926eaafee97c67c833d82daa2137779b758f /include/ruby/defines.h
parent92ab16fac66eeb9baba090af2976b27956ac56d4 (diff)
downloadruby-7ed0640ffb938fcf246f5167c7062fbf2a46dcd3.tar.gz
Add Float::INFINITY and Float::NAN.
* numeric.c (Init_Numeric): Add Float::INFINITY and Float::NAN. [ruby-dev:1657] [ruby-dev:4760] [ruby-list:7023] [ruby-list:46690] [ruby-core:26632] [ruby-talk:41352] [ruby-talk:203333] * include/ruby/defines.h (INFINITY): defined. * include/ruby/defines.h (NAN): defined. * include/ruby/util.h (ruby_div0): removed. * numeric.c (fix_pow): use INFINITY and NAN instead of ruby_div0(1.0). * marshal.c (r_object0): ditto. * bignum.c (big_fdiv): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include/ruby/defines.h')
-rw-r--r--include/ruby/defines.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/ruby/defines.h b/include/ruby/defines.h
index 70b1685804..a81aef8416 100644
--- a/include/ruby/defines.h
+++ b/include/ruby/defines.h
@@ -99,6 +99,20 @@ void xfree(void*);
# define BDIGIT_DBL_SIGNED long
#endif
+#ifdef INFINITY
+# define HAVE_INFINITY
+#else
+extern const unsigned char rb_infinity[];
+# define INFINITY (*(double *)rb_infinity)
+#endif
+
+#ifdef NAN
+# define HAVE_NAN
+#else
+extern const unsigned char rb_nan[];
+# define NAN (*(double *)rb_nan)
+#endif
+
#ifdef __CYGWIN__
#undef _WIN32
#endif