けいじゅ@いしつかです.

In [ruby-dev:27731] the message: "[ruby-dev:27731] Re: Matrix class is
broken without mathn", on Nov/18 02:09(JST) Shin-ichiro HARA writes:

>原です。

>>あと, Matrix#detだけでなく, Matirx#rankも同じ問題があるのですが, 
>>いくらなんでもこちらをFloatで計算しろとは言えないのではないかと?
>
>その主張は同意します。だからrationalをrequireして、Rational
>で(quoで)計算しろ、ということなんです。
>
>Float行列にしろInteger行列にしろrankを計算したい人がそもそも
>非常に少ないのでまっいっかというのもあります(^^;。元々、

(^^;;;

>Float行列のrankの値なんか信用できないので、Integer行列のrank
>を知りたい人は、rational.rbをrequireする手間は惜しくないので
>はないかと。逆に、quo式はrational.rbをrequireするだけで済む
>だけ、更に各成分Rational()しなくてはならない現行よりアドバン
>テージがある。

ですね. 

>さて、以下にInteger行列のrankを求める互除法版を載せます。
>(やはりRational との混交可です。)

>ここで提案ですが、rankもquo式にし、このrank_e(名前は改めて
>考えるとして)も取り込んで、マニュアルに
>
>  【整数行列を扱う場合の注意】
>    整数行列の階数を計算させるときは、Matrix#rank_eを使いましょ
>    う。rational.rbをrequireしている状態でMatrix#rankを使って
>    も正しい値が得られます。
>
>としたらどうでしょうか。

detの原(新)案と対象性があるので, det原(新)案が採用されるなら, これでい
いんじゃないでしょうか? 

>あ、そういえば matrix.rbのtypo見つけました。
>
>--- matrix.rb~	2005-11-17 01:10:30.000000000 +0900
>+++ matrix.rb	2005-11-17 10:57:56.000000000 +0900
>@@ -740,7 +740,7 @@ class Matrix
>           i = k
>           exists = true
>           begin
>-            if (i += 1) > a_row_size - 1
>+            if (i += 1) > a_column_size - 1
>               exists = false
>               break
>             end

ぐっ, すいません.


__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju / ishitsuka.com <<---