えぐち@エスアンドイー です。

>>> In message [ruby-math:00183] Re: (summary) SingleFloat, DoubleFloat < Float
    On Sun, 30 Jan 2000 21:21:08 +0900, SHUDO Kazuyuki <shudoh / muraoka.info.waseda.ac.jp> said:

> 議論の本流じゃなくてごめんなさい。
> 
> えぐちさん wrote:
> 
> > でも低い精度での演算でオーバーフローが起こるか、
> > 高い精度の結果を低い精度へ丸る時にオーバーフローが生じるか
> > の差が、何らかの形で結果に影響があるかは疑問です。
> 
> 以下、C 的に書きます。
> 
> float f0, f1 として
>   1. f0 op f1
>   2. (float)((double)f0 op (double)f1)
> 
> op を四則演算とすると、1. と 2. の結果が異なることはないと思います。
> 理由は、この間紹介した
>   |  strictfp の実装
>   |  http://www.shudo.net/java-grandprix99/strictfp/
> の「3.3.2 丸め精度の設定」辺りに書きました。
> きちんと証明できてないんですが…

拝見させて頂きました。
「演算は無限精度で行い結果を丸め希望の精度を得る」
と言う場合に、doubleは「無限精度」の近似として
float に対しては十分である。 ...と言う事ですね。

そうすると、特別に float op float を Ruby で
用意しなくても、気の効いた丸め処理(多分 .prec( XXX ))
を用意すれば十分とですね。

ただ、sin() の様な複合的な演算は、過程の中途で
オーバーフローや例外が出るので、 sinf(3m) 相当の
float ライブラリを用意しないと、、Math ライブラリで対応する?

	えぐち