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/