From: matz@... (Yukihiro Matsumoto) Date: 1999-02-06T23:11:29+09:00 Subject: [ruby-dev:4780] Re: compare to NaN (Re: Re: call for finite/isnan testers) まつもと ゆきひろです In message "[ruby-dev:4760] compare to NaN (Re: Re: call for finite/isnan testers)" on 99/02/06, EGUCHI Osamu writes: |えぐち@エスアンドイー です。 | * Float::INFINITY の追加 | * Float::NaN の追加 | * NaN との大小判別例外 NaNCompareError クラスの追加 | * FLoat#infinite? の追加(Inf:正数, -Inf:負数、otherwise false) | * FLoat#nan? の追加(また x == Float::NaN は常に偽) | * FLoat#finte? の追加(Inf, -Inf or NaN:false, otherwise true) | * FreeBSD 環境での浮動小数点関連のトラップの抑止(main.c) 面白いですね.採用に関して前向きなのですが,気になる点がいく つかあります. 仕様について -INFINITYを示す定数は不要か(-Float::INFINITYで十分か) infinite?, finite?の両方が必要か Float::infinite?は真の時に正数,負数を返す仕様は妥当か このFloat::INFINITYやFloat::NaNのシステムはごとけんさんの Float抽象クラス化と衝突しないか 実装について main.cでFreeBSD対応しているが,Init_Numeric()あたりでやる べきでは? いや,そうするとRubyをlinkしたアプリケーション すべてに強制することになるか…. isinf(),isnan()の移植性をどうするか.ごとけんさんの調査待 ちか. 1.0/0.0でInfを0.0/0.0でNaNを作っているが移植性は? static double infinity, nan, zero = 0.0;のstaticはいらない んじゃない? flo_infinite_p()で+1, -1を返してるが,これはINT2FIX()でく くるべきだと思う. 数値に強い方の登場をお待ちしています. まつもと ゆきひろ /:|) p.s. 数値に強いってのと数学に強いってのはまた違うんだよな.私はどっ ちにも弱いけど.