まつもと ゆきひろです

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

|返事が遅くなってすみません。

構いません。私に付き合ってもらってるわけですから。
ゆっくりやりましょう。

|In message "[ruby-math:00045] Re: (summary) SingleFloat, DoubleFloat < Float"
|    on 00/01/14, Yukihiro Matsumoto <matz / netlab.co.jp> writes:

|>  * float op float と double op double で結果に違いがない
|
|これなんですけど、どうもあんまりよくないようです。実例がまだ
|見つかりませんが、IEEE754をみると一旦精度を上げて計算するこ
|とはそのあとで丸めをすることになるので良くないとされています。

そうなんですか? でもfloatはdoubleに格上げしてから計算するの
がCの規格ですよね。つまり、Cでプログラムする限りfloatを使っ
ても「IEEE754をみると一旦精度を上げて計算することはそのあと
で丸めをすることになるので良くない」ことが必ず起きるのではな
いですか?

SingleFloatクラスをFORTRANなりで実装するというのは意義がある
のかもしれませんが、それだと標準組み込みには出来そうにないで
すねえ。

|えーっとあくまで私見ですがまつもとさんのおっしゃるように数の
|場合はプロトコルが階層的に構築されいるのis-aは自然です。問題
|は実装が共有できないということですが、他の場合と異なり、実装
|はされていないがインターフェイスはスーパークラスで性格づけら
|れているというのが実情でしょう。Integerのばあいは、他のクラ
|スのようにわりと詳しくわけてあるのですが実際はFixnumもBignum
|も同じ気分で使いますね。この辺はMix-inともまたちがうルールが
|あると思います。

この辺はもうちょっと突き詰めてみたいです。

|それから、前に戻すと動的な言語でどうするかという話がありまし
|たが、浮動小数点数の規格でもディスティネーションの型と演算結
|果の型は独立に定義される概念で、指針が与えられているので結果
|をどうするかという問題は改めて考える必要は無いです。

この文章はちょっと分かりませんでした。動的型の言語ではディス
ティネーションの型というものが存在しないので演算結果の型をそ
のまま用いれば良いと言う意味ですかね。

|僕も田中さんと同じような印象しか持ってないのですが、少なくと
|もプロトタイピングには猛烈に不便です。いつぞや日本のPythonの
|リストで整数に型があるのがいいかどうかって話がありましたが、
|数値計算の場合は呼ぶ関数自体が違うのでその辺の検証や労力の見
|積りがやりにくいです。

ふうむ、「a+0.5 は 0.5 をfloatに変換すれば」と思っていたんで
すが、精度の点からは望ましくないものなんでしょうか。

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