From: Tadayoshi Funaba Date: 2008-03-08T09:51:31+09:00 Subject: [ruby-dev:34007] Re: rational, complex and mathn 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 あと、これによって、いくつかの既知のバグが直ると思います。あたらしいバ グを入れているかもしれませんが。