原(信)です。

>けいじゅ@日本ラショナルソフトウェアです.
>
>Matrix#detやMatrix#inverseの時に気が付くべきでしたが, Complex#/でも同様
>の問題があることに気が付きました.
>
>irb(main):001:0> 1 / Complex(1,1)
>Complex(0, -1)
>irb(main):002:0> Rational(1)/Complex(1,1)
>Complex(Rational(1, 2), Rational(-1, 2))
>
>で, こういうのって非常に分りにくいバグの元ですので, complex.rbと
>matrix.rbはrational.rbをrequireし, Inetgerの除算などはRational上で計算し
>ようかと思うようになりました.

やっぱりこれって Int/Int -> Rational と連動するんじゃないかなあ。

># 昔, Matrixの問題のときに原さんが提案したと思いますが.

反対したんじゃなかったけ?(^^;

>  また, Matrix#detのように結果としてIntegerならそのまま
>Integerにすることもできるからです. 

そういう事が自然な感じでできるなら、悪くないのかも。