原です。 |ごとけんです |# 原先生と呼ばせて下さい ^^;; いや。:-) |ところで、Complex#** を考えるとき、 |数学的な定義によると、まず、exp の逆関数として |log を定義し、 | | z**w = exp(w log(z)) | |で与えられます。ここで、 log は無限個の値を持つ |多価関数なので、 z**w も無限個の値を持つことに |なります。で、一つの値(主値)を決めるんですが、 |この範囲はどんなライブラリに準拠するのが自然なん |でしょうか? |FORTRAN あたりで標準化されてればそれに合わせるのが |よいと思います。 | |なお僕が自然だと思うのは、log(z) の虚部 arg(z) を |libm の atan2(x,y) の範囲に合わせるとゆー、 |いまの complex.rb の仕様(?)と同じモノです。 |が、この atan2 の範囲は標準化されてるのでしょうか? |# IEEE の浮動点小数演算の規格の解説がどっか行ってしまった ;_; 私も IEEE の事はしらないんですけど、やっぱり atan2 に合わせる んでしょうね。 log(x + yi) = log(x^2 + y^2)/2 + i atan2(y,x) ですかね。