[前][次][番号順一覧][スレッド一覧]

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

[前][次][番号順一覧][スレッド一覧]