In message "[ruby-math:00265] Re: Infinity(was Polynomial.rb and floating point exception)"
    on 00/04/20, "K.Kodama" <kdm / kobe-kosen.ac.jp> writes:
>[問い] 不定値との比較 <=> や
>       ∞<=>∞ の扱いはどうしましょうか?
>      -1,0,1 を返すっていうのは, 結構つらいものがあります.

この件はむかしえぐちさん議論しましたね…確か NaN を返すのが
良いということになったと思います。

ただ、Mathematica と同じようにInfinity には Directed (実) と 
Undirected (虚) があるので、必ずしも Comparable とは限らない
気がします。複素無限大は<=> を削除した方が良いでしょう。ただ
複素無限大は Complex のインスタンスのような気もしますね…

>これで, (1) と (2) はまあ良いとして,
>勝手に InfinityClass なんて作りましたが,
>(3) の Float で出る Inf や NaN との整合性をどうとりましょうか?
>うまくこれを拾って, InfinityClass の方に持ってゆけるか?

Float の Inf と NaN はどう頑張っても整合しないので、もしやる
なら IEEE754_NaN IEEE754_Inf といった InfinityClass の定数を
持つのがいいと思います。この件はむかし石塚さんと議論したので
探してみて下さい。

それとクラス名は InfinityClass より NaNClass とかいうクラス
にした方がいい気がします。無限大は数でないが、数でないものは
無限大とは限らないので。どちらかと言うと Inf と NaN をまとめ
ない方が良いような気もします。というか、NaN は計算をとめない
ために IEEE754 で定義されたプラグマティックな概念なので、整
数などに馴染むかどうかは不明です。

-- gotoken