In message <199803100359.MAA08628.keiju / cupmail0.rational.com> keiju / rational.com (Keiju ISHITSUKA) writes: > > どうせなら Numeric.... と思ったら Complex < Numeric だった. それじゃ > > 実数で.... と思ったら実は ruby には実数の Bignum は無かった (^^; > > 実数のBignumってBigなFloatのことですよね? 出してから正確な表現を思い出しました. 実数の抽象クラス.... というか, 「実数」というクラスです. > > 謎の定義を与えると謎のバグに悩まされそうな. 少なくとも +0|-0 を無限 > > 小の意味で使うのだとすると -0 = 0 = +0 では「いけません」よね? > > ですね... やはりNanなんでしょうね... そこが「考え方」というはなしなわけで, > >> むりせずNanかなあ... Nanが一番強い数になるのが気に入りませんが... > > > > 考え方でしょうね. IEEE の浮動小数点数表現での無限大/無限小/非数値を > > 表すのなら Float の定数であるべきで, NaN も存在するべきでしょう. 多 > > 分. 存在しているからにはそれを使っていることもあり得るわけで. こうつながってくる, と. 「不定な計算結果を与える演算は全て例外をあげ る」でもモデルとしては問題ないわけで. # IEEE の浮動小数点数表現では正負の無限大, 正負の 0, 非数字(NaN)が # 規定されているから, 「Float が IEEE の浮動小数点数表現である」のな # ら Float の定数として存在すべきだろう, という話. > NaNの存在はよいとしても, 無限大/無限小がFloatになるというのが納得いか > ないですよねえ... 例えば, Bigfloatの様なものを誰かが作ったとして, その > 結果が無限大とかになるとFloatになるのは... > > 無限大/無限小はある意味で精度が無限にあるわけですから, Floatとは別クラ > スにした方が良いと思うのですが... で, こっちが Real クラスでも用意して.... という話の方になるわけです. 無限大を表すクラスを作るとしても, やっぱりこちらのサブクラスになるで しょう. # 複素数の大小関係や, 無限大/無限小なぞ考えたくないし. ましてや # Array や String と関係づけるのなんて不可能だし (^^; > あ, でも, Floatの表現できる範囲を越えると無限大/小になってしまうんでし > たよね? そうすると精度が無限にあるわけではないくて, Floatとしての無限 > 大なんですね... こちらはあくまでも IEEE にこだわった場合ですよね. # たぶん Float で表現できる範囲を超えても無限大/無限小になることはな # いと思いますが. オーバフローするだけですね > > # NaN については学部の時の先生が「数値表現といっているのに数値じゃな > > # いものが入っているなんて, 気持ち悪い」といってましたが (^^; > > その気持ちは非常に良く分かります(^^;;; 学会に出席して提案者に会うたびに「お前の方法はどこかで採用されたのか」 とか, 「やっぱり採用されないだろう, こっちの方が優れているんだ」とか いじめられる, とも言ってました (^^; =========================================================================== 柳川 @ 情報システム学研究科 . 電気通信大学 katze / yuba.is.uec.ac.jp March 10, 1998 He knows most who speaks least.