ごとけんです

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

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

あってます。

>もしこれが正しいのだとすると、たとえば現状の Float にhookを
>施した SingleFloat というサブクラスを作ることでも対応できた
>りするんでしょうか?
>
>つまり、構造は全く一緒で SingleFloat のオブジェクトは float
>から作られたことを明示するということ。もちろん、hookは適宜追
>加する必要はあるでしょうが。

クラス階層に対する要求としては、「直観的に条件分岐が書けるよ
うに kind_of? で精度が分類できること」で十分ですがFloatの抽
象クラス化というあとから出て来た話には、たとえば拡張倍精度の
位置づけが明確になるという利点があるので同時に採用してもらい
たい。その意味で現状のFloatはdoubleであるという今のままに 
hook をするのは好ましくないような気がします。

それとMathematicaの精度といったのはやや言いすぎでしたが、本
質はオブジェクト自身が自分の精度を知っていることにあります。
Precision システムは大雑把ながら SingleFloat のように従来の 
Float と異なる精度の実数を相互に取り扱うためのプロトコルとし
て作ってあります。

-- gotoken