田中@ISASです。

In message: [ruby-math:00174] Re: (summary) SingleFloat, DoubleFloat < Float 
>>> Takeshi Horinouchi <horinout / kurasc.kyoto-u.ac.jp> wrote:

>                array + 1.0   (ここでarrayは sigle相当の配列)
> 
> の結果が、double相当の 1.0 に合わせて double 相当になるので、嬉
> しくないと書いてたように思います。私もそれは多くの場合嬉しくない
> だろうと思うのですが、ruby-math では結局それはどうしようというこ
> とになったのでしょうか(スミマセン、だいぶ遅れてます)。

ruby-mathでは、そういう話はまだないのだと思います。
ruby-mathで startしているのは Matrix プロジェクトなんですよね。
あと、SingleFloatを組み込みで持つかどうかの決着がついてないようです。

> 一方、配列が sigle ならスカラーの精度に関
> 係なく sigle という約束を導入出来なくもないでしょうが、あまり気
> 持のいいやり方とは思えません。

私も最初はそう思っていたのですが、考えてみると
次のようなメリットがあるようにも思います。

例えば、あるときはsingle、あるときはdoubleの
配列を(変数aで)受けることを想定したプログラムの中で、
a+0.1 を計算したいとします。

精度の高い方をとる仕様のとき、単に a+0.1 と書くと、
single の配列は double になります。
型変換をしたくなければ、
精度の低い a+0.1f と書くか、
配列の型によって0.1を変換する必要があります。

一方、配列の精度を優先する仕様であれば、
これは単に a+0.1 と書けます。

このように、SingleFloatあるなしにかかわらず、
不要な型変換を防ぐことができるという点では
ある程度有効な仕様ではないでしょうか。

田中昌宏