* math.c (math_atanh): raise ERANGE without calling atanh if absolute
value is 1 to achieve platform-independent math. [ruby-core:28219] * math.c (math_lgamma): return [Infinity, 1] without calling lgamma_r if argument is infinity or -infinity. [ruby-core:28219] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a8fcae0858
commit
54380d99f8
@ -1,3 +1,11 @@
|
|||||||
|
Thu Feb 18 22:31:15 2010 Yusuke Endoh <mame@tsg.ne.jp>
|
||||||
|
|
||||||
|
* math.c (math_atanh): raise ERANGE without calling atanh if absolute
|
||||||
|
value is 1 to achieve platform-independent math. [ruby-core:28219]
|
||||||
|
|
||||||
|
* math.c (math_lgamma): return [Infinity, 1] without calling lgamma_r
|
||||||
|
if argument is infinity or -infinity. [ruby-core:28219]
|
||||||
|
|
||||||
Thu Feb 18 22:28:00 2010 Kenta Murata <mrkn@mrkn.jp>
|
Thu Feb 18 22:28:00 2010 Kenta Murata <mrkn@mrkn.jp>
|
||||||
|
|
||||||
* confiure.in: new --with-ext and --with-out-ext options for extmk.
|
* confiure.in: new --with-ext and --with-out-ext options for extmk.
|
||||||
|
7
math.c
7
math.c
@ -310,6 +310,10 @@ math_atanh(VALUE obj, VALUE x)
|
|||||||
Need_Float(x);
|
Need_Float(x);
|
||||||
errno = 0;
|
errno = 0;
|
||||||
d0 = RFLOAT_VALUE(x);
|
d0 = RFLOAT_VALUE(x);
|
||||||
|
if (d0 == 1.0 || d0 == -1.0) {
|
||||||
|
errno = ERANGE;
|
||||||
|
rb_sys_fail("atanh");
|
||||||
|
}
|
||||||
d = atanh(d0);
|
d = atanh(d0);
|
||||||
domain_check(d0, d, "atanh");
|
domain_check(d0, d, "atanh");
|
||||||
infinity_check(x, d, "atanh");
|
infinity_check(x, d, "atanh");
|
||||||
@ -715,6 +719,9 @@ math_lgamma(VALUE obj, VALUE x)
|
|||||||
Need_Float(x);
|
Need_Float(x);
|
||||||
errno = 0;
|
errno = 0;
|
||||||
d0 = RFLOAT_VALUE(x);
|
d0 = RFLOAT_VALUE(x);
|
||||||
|
if (isinf(d0)) {
|
||||||
|
return rb_assoc_new(DBL2NUM(INFINITY), INT2FIX(1));
|
||||||
|
}
|
||||||
d = lgamma_r(d0, &sign);
|
d = lgamma_r(d0, &sign);
|
||||||
domain_check(d0, d, "lgamma");
|
domain_check(d0, d, "lgamma");
|
||||||
v = DBL2NUM(d);
|
v = DBL2NUM(d);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user