From: Kenta Murata Date: 2011-06-14T11:57:26+09:00 Subject: [ruby-dev:43797] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか むらたです。 On Tuesday, June 14, 2011 at 8:45 AM, Tadayoshi Funaba wrote: > > complex.rb をロードすると Math が CMath 相当に置き換わりますから、 > > Math を置き換える際に frexp, ldexp, hypot を定義することで対応可能かと思います。 > > > > そういう事ですよね? > > そうではありません。CMath 単体で、です。実際、複素数用の関数を定義して > いるのではなく、複素数にもつかえるように拡張したものを提供しようとして > いますよね。 私は、これらの関数について以下のように解釈し、CMath からの削除を提案しました。 (1) frexp と ldexp は2を底とする浮動小数点数表現に対する関数なので、表現から中立である複素数に対して無意味である。 (2) hypot(x, y) は sqrt(x**2 + y**2) という定義があるので、再定義することで複素数に拡張可能だけど無意味ではないか? Math と CMath が同時に存在している場合、つまり cmath.rb のみを require した場合、 上記3関数は Math のものを使用できるため、CMath で定義される必要は無いはずです。 現在、CMath に定義されている上記3関数は複素数に対して使用できません。 ふなばさんは、frexp, ldexp, hypot の3関数について、 CMath 単体でどのように定義されるべきだとお考えですか? -- Kenta Murata Sent with Sparrow