ruby-changes:2295
From: ko1@a...
Date: 26 Oct 2007 17:14:42 +0900
Subject: [ruby-changes:2295] nobu - Ruby:r13786 (trunk, ruby_1_8): * numeric.c (fix_pow): returns 1.0 for 0**0.0.
nobu 2007-10-26 17:14:14 +0900 (Fri, 26 Oct 2007)
New Revision: 13786
Modified files:
branches/ruby_1_8/ChangeLog
branches/ruby_1_8/numeric.c
trunk/ChangeLog
trunk/numeric.c
Log:
* numeric.c (fix_pow): returns 1.0 for 0**0.0.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/numeric.c?r1=13786&r2=13785
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=13786&r2=13785
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13786&r2=13785
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/numeric.c?r1=13786&r2=13785
Index: ChangeLog
===================================================================
--- ChangeLog (revision 13785)
+++ ChangeLog (revision 13786)
@@ -1,5 +1,7 @@
-Fri Oct 26 17:01:34 2007 Nobuyoshi Nakada <nobu@r...>
+Fri Oct 26 17:14:14 2007 Nobuyoshi Nakada <nobu@r...>
+ * numeric.c (fix_pow): returns 1.0 for 0**0.0.
+
* numeric.c (fix_pow): returns infinity for 0**-1. [ruby-dev:32084]
Fri Oct 26 15:00:52 2007 Nobuyoshi Nakada <nobu@r...>
Index: numeric.c
===================================================================
--- numeric.c (revision 13785)
+++ numeric.c (revision 13786)
@@ -2361,6 +2361,7 @@
x = rb_int2big(FIX2LONG(x));
return rb_big_pow(x, y);
case T_FLOAT:
+ if (RFLOAT(y)->value == 0.0) return rb_float_new(1.0);
if (a == 0) {
return rb_float_new(RFLOAT(y)->value < 0 ? (1.0 / zero) : 0.0);
}
Index: ruby_1_8/numeric.c
===================================================================
--- ruby_1_8/numeric.c (revision 13785)
+++ ruby_1_8/numeric.c (revision 13786)
@@ -2247,12 +2247,10 @@
long a = FIX2LONG(x);
if (FIXNUM_P(y)) {
- long b;
+ long b = FIX2LONG(y);
- b = FIX2LONG(y);
if (b == 0) return INT2FIX(1);
if (b == 1) return x;
- a = FIX2LONG(x);
if (a == 0) {
if (b > 0) return INT2FIX(0);
return rb_float_new(1.0 / zero);
@@ -2280,6 +2278,7 @@
x = rb_int2big(FIX2LONG(x));
return rb_big_pow(x, y);
case T_FLOAT:
+ if (RFLOAT(y)->value == 0.0) return rb_float_new(1.0);
if (a == 0) {
return rb_float_new(RFLOAT(y)->value < 0 ? (1.0 / zero) : 0.0);
}
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog (revision 13785)
+++ ruby_1_8/ChangeLog (revision 13786)
@@ -1,5 +1,7 @@
-Fri Oct 26 17:01:34 2007 Nobuyoshi Nakada <nobu@r...>
+Fri Oct 26 17:14:14 2007 Nobuyoshi Nakada <nobu@r...>
+ * numeric.c (fix_pow): returns 1.0 for 0**0.0.
+
* numeric.c (fix_pow): returns infinity for 0**-1. [ruby-dev:32084]
Wed Oct 25 07:18:09 2007 James Edward Gray II <jeg2@r...>
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml