けいじゅ@日本ラショナルソフトウェアです.

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上で計算し
ようかと思うようになりました.

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

Rationalに変換する理由は, Floatに変換するとのとは違い情報量が減ることは
ないからです. また, Matrix#detのように結果としてIntegerならそのまま
Integerにすることもできるからです. 

皆さんの意見がお聞きしたいのですが, いかがでしょう?

# Matrixはもうちょっと考えるところがありますので, もしかしたら変るかも知
# れませんが...
__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju / rational.com <<---