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

ruby-changes:3923

From: ko1@a...
Date: Sat, 9 Feb 2008 11:48:06 +0900 (JST)
Subject: [ruby-changes:3923] akr - Ruby:r15413 (trunk): * math.c (math_gamma): add error check.

akr	2008-02-09 11:47:50 +0900 (Sat, 09 Feb 2008)

  New Revision: 15413

  Modified files:
    trunk/ChangeLog
    trunk/math.c

  Log:
    * math.c (math_gamma): add error check.
      (math_lgamma): ditto.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/math.c?r1=15413&r2=15412&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15413&r2=15412&diff_format=u

Index: math.c
===================================================================
--- math.c	(revision 15412)
+++ math.c	(revision 15413)
@@ -530,8 +530,12 @@
 static VALUE
 math_gamma(VALUE obj, VALUE x)
 {
+    double d;
     Need_Float(x);
-    return DOUBLE2NUM(tgamma(RFLOAT_VALUE(x)));
+    errno = 0;
+    d = tgamma(RFLOAT_VALUE(x));
+    domain_check(d, "gamma");
+    return DOUBLE2NUM(d);
 }
 
 /*
@@ -549,10 +553,14 @@
 static VALUE
 math_lgamma(VALUE obj, VALUE x)
 {
+    double d;
     int sign;
     VALUE v;
     Need_Float(x);
-    v = DOUBLE2NUM(lgamma_r(RFLOAT_VALUE(x), &sign));
+    errno = 0;
+    d = lgamma_r(RFLOAT_VALUE(x), &sign);
+    domain_check(d, "lgamma");
+    v = DOUBLE2NUM(d);
     return rb_assoc_new(v, INT2FIX(sign));
 }
 
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15412)
+++ ChangeLog	(revision 15413)
@@ -1,3 +1,8 @@
+Sat Feb  9 11:47:03 2008  Tanaka Akira  <akr@f...>
+
+	* math.c (math_gamma): add error check.
+	  (math_lgamma): ditto.
+
 Sat Feb  9 11:09:26 2008  Tanaka Akira  <akr@f...>
 
 	* missing/lgamma_r.c (lgamma_r): return HUGE_VAL for non-positive

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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