From: shugo@... (Shugo Maeda) Date: 1998-03-12T20:56:07+09:00 Subject: [ruby-dev:1739] Re: infinity 前田です。 In message "[ruby-dev:1714] Re: infinity" 石塚圭樹 wrote: |1. NaNとの演算は例外. Numeric::Infinityは, 通常のrubyのモデルにしたがっ | て不定な結果は例外だから. |2. Float::Infはあくまでも(非常に大きい)有限の数と考えて, 通常のfloatと | 同じにする. | |というのでいかがでしょうか? | |># モジュールでFloat#inf?を定義ということになると、モジュールがprovide |># されているかどうかで処理を変えないといけませんね。 | |そうするとこのような判断入らなくなりますね. NaNとの演算で例外を上げる時にnan?が要ると思ったのですが、x != xで調べれば 良いでしょうか。 |Infinity + float -> Infinity |Infinity - float -> Infinity |Infinity * (float>0) -> Infinity |Infinity * 0.0 -> Exception |Infinity * (float<0) -> -Infinity |Infinity / (float>0) -> Infinity |Infinity / (0.0) -> Exception |Infinity / (float<0) -> -Infinity |Infinity > float -> true |Infinity >= float -> true | |上記はfloatとなっていますがIntegerでもだいたい同じです. float / Infinity も例外にするのが良さそうですね。 |Infinity > Infinityが微妙ですが, falseにならないと使いにくいことがあり |そうなので... Infinityのインスタンスはこの世に二つ(正と負)ということにすれば、 falseで良いような気がします。 -- 前田 修吾