Project

General

Profile

Actions

Bug #2381

closed

Math.gammaの挙動がx86_64とia64で異なる

Added by takano32 (Mitsuhiro TAKANO) over 14 years ago. Updated about 13 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 1.9.2dev (2009-11-17 trunk 25805)
Backport:
[ruby-dev:39709]

Description

=begin
x86_64とia64でMath.gamma(4294967296) の結果などが異なる。

$ ./ruby -ve 'p Math.gamma(4294967296) '
ruby 1.9.2dev (2009-11-17 trunk 25805) [x86_64-linux]
Infinity

$ ./ruby -ve 'p Math.gamma(4294967296).finite? '
ruby 1.9.2dev (2009-11-17 trunk 25805) [x86_64-linux]
false

$ ./ruby -ve 'p Math.gamma(4294967296) '
ruby 1.9.2dev (2009-11-17 trunk 25805) [ia64-linux]
9.652349077525983e-315

$ ./ruby -ve 'p Math.gamma(4294967296).finite? '
ruby 1.9.2dev (2009-11-17 trunk 25805) [ia64-linux]
true

文字列表現に変換するときに finite? 相当のチェックをしている様子だが、これがうまく機能していない。
numeric.c:flo_is_finite_p, numeric.c:flo_to_s などでの挙動が異なる。

なお、 tgamma(3) を呼び出した単体の結果ではどちらも "inf" を返却している。
=end


Files

math.c.diff (425 Bytes) math.c.diff math_gamma の修正 takano32 (Mitsuhiro TAKANO), 11/18/2009 11:29 AM
math.c.diff (644 Bytes) math.c.diff takano32 (Mitsuhiro TAKANO), 11/18/2009 11:50 AM
math.c.diff (644 Bytes) math.c.diff takano32 (Mitsuhiro TAKANO), 11/18/2009 11:58 AM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0