rational と complex を 1.9 に組みこむ作業をしました。

rational に関連した主な変更点

{NilClass,Integer,Float}#to_r の追加。
Precision の Rational 対応。
quo の定義変更。
Fixnum、Bignum の ** の定義変更。
Numeric#{numerator,denominator} の追加。
reduce の廃止。

new、new! はプライベートとして存在する。
lib/rational.rb というファイルは残す。

complex に関連した主な変更点

{NilClass,Integer,Float}#to_c の追加。
Numeric#{real,image,imag,im} の追加。
Numeric#{angle,arg,polar,conjugate,conj} の追加。

new、new! はプライベートとして存在する。
lib/complex.rb というファイルは残す。

石塚版では、complex.rb で Math の関数を再定義しています。このあたりを
どうすべきかは決めかねます。今のところ complex.rb にほぼそのまま残して
あります。単に利用者向けに用意されているだけでなく、complex の実装にも
必要なのですが、今現在は、これに依存しないように独立したコードを持つよ
うにしています。

最終的には、Math を変更することになるかもしれませんが、その場合は、お
そらく mathn.rb のコードもつかうことになると思います。そうなると、
mathn.rb の / の再定義と Unify の定義、Prime の定義は残るでしょうが、
rational.rb、complex.rb、mathn.rb の殆どが ruby 本体に吸収される形にな
ると思います。

http://www.funaba.org/archive/r19ratcomp.diff.gz
http://www.funaba.org/archive/r19ratcomp-test.tar.gz

あと、これによって、いくつかの既知のバグが直ると思います。あたらしいバ
グを入れているかもしれませんが。