田中@ISASです。

  reluctantですけど納得できていないので僭越ながら...

In message: <<[ruby-math:00146] Re: LA with Ruby>>
>>> gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:

> ary1 = [[0.1s, 0.2s],[0.3s, 0.4s]]
> ary2 = [[0.1s, 0.2d],[0.3s, 0.4s]]
> 
> m1 = Matrix[*ary1]
> m2 = Matrix[*ary2]
> 
> をわざわざ
> 
> m1 = Matrix(SingleFloat)[*ary1]
> m2 = Matrix(DoubleFloat)[*ary2]
> 
> と書くのは、LAPACKを生で使うような息苦しさを感じます。つまり、
> 必要に応じて精度の制御をユーザが行えるけれど、そうでなければ
> それなりにやってくれるのがRubyでつかうメリットでは無いかしら。

前者でもリテラルで精度の制御をしていますよね。
後者と大きな違いがあるようには見えないのです。

> # しかし、どうしてそんなに float が嫌われるのだろう…double
> # と全然違うモノなのに

私は float 大好きです。
ただ、SingleFloatなしで float配列を導入しても、
十分使えるものができると思うのです。
SingleFloat導入による、これぞ!というメリットがあれば、
私も知りたいです。

また、Rubyの大半の使用目的は数値計算ではないので、
そういう場合に2種類のFloatがあるのは
かえって混乱のもとになりそうでは?
という懸念もあります。

> デフォルトがfloatな人ってのもいるんですよ。

Matrix.default_type = SingleFloat
とすると、デフォルトでSingleFloatに変換してくれるとか。

田中昌宏