まつもと ゆきひろです

In message "[ruby-math:00022] Re: (summary) SingleFloat, DoubleFloat < Float"
    on 00/01/12, GOTO Kentaro <gotoken / math.sci.hokudai.ac.jp> writes:

|よくよく考えたらこの意味での内部精度は要求とは関係ないですね。
|多少混乱してました。

ふむふむ。理解が進みました。ということは SingleFloat のニー
ズは途中演算を float で行いたいから「ではない」ことが明らか
になったわけですね。

となるとニーズはなにかというとやはりこれでしょうか。

|たとえば、現状では外から入力されたデータをFloatの配列に読み込ん
|だときにその値がもともと倍精度だったか単精度だったかを動的に
|知る方法がありませんが、これは特に出力の時に困ります。

つまり、「元々の精度を保存する必要がある」可能性のためと理解
できます。合ってますか?

ここまでが明らかになったとすると、次に考えるべきことは「それ
は必要なの?」という点ですね。

これについて、Rubyより経験を積んでいるはずのPythonでそういう
要求が特に起こっていないというのが疑問点になります。

また、この問いの答えがyesだったとして、それはMathematicaの精
度システムによって解決されるべきなのかという点についても少々
ひっかかるものがあります。

[ruby-dev:5776]を見るとMathematicaの精度システムは非常に面白
いですが、これって計算系を自分で実装してるんですよね、きっと。
現状のRubyはCのdoubleの計算を利用していて、これを変更する予
定は当面ありませんが(だって数式計算システムじゃないもの)、こ
の前提でMathematica的精度システムをどれだけ実現できるのかや
や疑問が残ります。

(現状のFloatとは別に)将来Mathematica的精度システムを実現する
浮動小数点数クラスの実装を阻害しない仕様というのは当然考慮に
値しますが、Rubyの浮動小数点数クラスそのものに機械精度を導入
するというのはまた別の話ではないかと。


                                まつもと ゆきひろ /:|)