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.