原です。

|ごとけんです

|# 原先生と呼ばせて下さい ^^;;

いや。:-)

|ところで、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)

ですかね。