From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2005-11-14T11:59:14+09:00 Subject: [ruby-dev:27700] Re: Matrix class is broken without mathn けいじゅ@いしつかです. In [ruby-dev:27691] the message: "[ruby-dev:27691] Re: Matrix class is broken without mathn", on Nov/12 17:28(JST) Shin-ichiro HARA writes: >原です。 >確かに整数行列を扱っていて「detが0かどうか」を問題にしているような >コードで誤動作する可能性がありますね。 ですね. 可能性と言うよりも危険性と言いたいですが... >でも、quoを使った方が現状よりは(クレームの頻度の点で)かなりまし >じゃないですかね。実際にdetを計算したいのはFloatの行列が多いらしい >し。 ましなのは理解しますが, Rationalをrequireするよりましな理由がわかりま せんが? det計算中Rationalをrequireする場合, すべてがIntegerの場合, 結果は必ずInitegerになり, 行列中1要素でもFloatが入っている場合, 結果は必ずFloatになり, Rational になることはありません. ですので, (内部の計算がどうなっているかは別として), それぞれのクラスに 応じた自然な結果が出ることが必ず保証できます. あと, パフォーマンスのことを気にするなら, 最初っから要素はFloatにすべ きだと思います. あと, Matrix#detだけでなく, Matirx#rankも同じ問題があるのですが, いく らなんでもこちらをFloatで計算しろとは言えないのではないかと? __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---