ごとけんです

In message "[ruby-math:00150] Re: LA with Ruby"
    on 00/01/28, Yukihiro Matsumoto <matz / netlab.co.jp> writes:

>|ary1 = [[0.1s, 0.2s],[0.3s, 0.4s]]
>|ary2 = [[0.1s, 0.2d],[0.3s, 0.4s]]
>|
>|m1 = Matrix[*ary1]
>|m2 = Matrix[*ary2]
>
>そういう使い方をするんですか? LAPACKを知らないんで。

場合によりけりです。LAPACK自体は色々な行列を作るサブルーチン
が細かく分けられてます。そういう低レベルなインターフェイスが
ユーザに提供されていることはもちろん大切ですが、それだけとい
うのは変数に型が無いので特にうれしうないですね。

>その場合、要素の型を全部スキャンして一番精度の高い型のMatrix
>を生成するとかいうようなことをするんでしょうか?

ぼくならそうします。

>精度を指定しなければ double になるだけなんでそれなりにやって
>ると思うんですが。やはり経験と知識なしではとんちんかんな答え
>しかできないんだろうか? とんちんかんでないかどうかさえ判断
>できない X-<

でもデフォルトがfloatな人ってのもいるんですよ。色々なケース
があるんで一概に言えませんです。強いていえば、Bignum がある
んだからいいだろうといわれてるような気分かも。もちろんそんな
にパフォーマンスが違うわけではないけど、少なくとも型の無い言
語だと把握が面倒ですね。Hungarian notation とか使うかも。

>|# しかし、どうしてそんなに float が嫌われるのだろう…double
>|# と全然違うモノなのに
>
>私が「全然違う」ということがあまり理解できてないせいだと思い
>ます。

まぁ僕自身はUNIXでCな人なのでdoubleがありゃいいじゃんという
考え方があるのは実はとてもよく分かるんですけどね。LAPACKの
C++版とかNetCDFとか読んでたら段々と数値世界の感性が分かった
ような気がしてきたというところです。

-- gotoken