From fc788eaa37994ca914e65add2d2f4c9577c80611 Mon Sep 17 00:00:00 2001 From: naruse Date: Tue, 29 Dec 2009 07:05:39 +0000 Subject: 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: http://svn.ruby-lang.org/repos/ruby/trunk@26197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- include/ruby/defines.h | 14 ++++++++++++++ include/ruby/util.h | 6 ------ 2 files changed, 14 insertions(+), 6 deletions(-) (limited to 'include/ruby') diff --git a/include/ruby/defines.h b/include/ruby/defines.h index 70b168580..a81aef841 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 diff --git a/include/ruby/util.h b/include/ruby/util.h index 1c52c576d..0c1e1c4eb 100644 --- a/include/ruby/util.h +++ b/include/ruby/util.h @@ -74,12 +74,6 @@ double ruby_strtod(const char *, char **); #pragma warning(push) #pragma warning(disable:4723) #endif -static inline double -ruby_div0(double x) -{ - double t = 0.0; - return x / t; -} #if defined _MSC_VER && _MSC_VER >= 1300 #pragma warning(pop) #endif -- cgit