堀之内です。

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

なるほど、目に止まらなかったわけですね ^^;;

>> あと、SingleFloatを組み込みで持つかどうかの決着がついてないようです。

一応それはわかっておりまして、「a + 0.1.to_single じゃ長いしかっこ悪い
から a + 0.1f と出来ればいいが、それだけのために要求していいのか...」、
とうだうだ考えていました。

>> > 一方、配列が sigle ならスカラーの精度に関
>> > 係なく sigle という約束を導入出来なくもないでしょうが、あまり気
>> > 持のいいやり方とは思えません。
>> 
>> 私も最初はそう思っていたのですが、考えてみると
>> 次のようなメリットがあるようにも思います。
>> 
>> 例えば、あるときはsingle、あるときはdoubleの
>> 配列を(変数aで)受けることを想定したプログラムの中で、
>> a+0.1 を計算したいとします。
>> 
>> 精度の高い方をとる仕様のとき、単に a+0.1 と書くと、
>> single の配列は double になります。
>> 型変換をしたくなければ、
>> 精度の低い a+0.1f と書くか、
>> 配列の型によって0.1を変換する必要があります。
>> 
>> 一方、配列の精度を優先する仕様であれば、
>> これは単に a+0.1 と書けます。
>> 
>> このように、SingleFloatあるなしにかかわらず、
>> 不要な型変換を防ぐことができるという点では
>> ある程度有効な仕様ではないでしょうか。

おっしゃるとおりだと思います。ただ、やっぱり引っ掛かっているのは、その
ために本来は弱い方の型(single)を強い方の型(double)に変換するというルー
ルの例外を作っていいのだろうかということです。この点はどう思われますか。
a + 0.1 の a がsingleの配列だったら結果もシングル、singleのスカラーだっ
たら結果は double というのもちょっと、と思います。一方、a+0.1f なりの 
f を書き忘れただけで(とてもやりそう)、結果がダブルになるのもちょっと、
ですね。

堀之内 武                 horinout / kurasc.kyoto-u.ac.jp
京都大学超高層電波研究センター    611-0011 宇治市五ヶ庄