>From: keiju / rational.com (石塚圭樹)
>Subject: [ruby-math:00686] Re: complex#/ problem

> 実装はこんな感じですね. divmodしてmodが0でなかったらrationalで返す. そん
> なに悪くないかなとも思っていますが... Matrixの方はきついかも...
> 
>   def / (other)
>     if other.kind_of?(Complex)
>       self*other.conjugate/other.abs2
>     elsif Complex.real_number?(other)
>       if other.kind_of?(Integer) and @real.kind_of?(Integer)
> 	re, re_mode = @real.divmod(other)
> 	re += Rational(re_mode, other) if re_mode != 0
>       else
> 	re = @real/other
>       end
>       if other.kind_of?(Integer) and @imag.kind_of?(Integer)
> 	im, im_mode = @imag.divmod(other)
> 	im += Rational(im_mode, other) if im_mode != 0
>       else
> 	im = @imag/other
>       end
>       Complex(re, im)
>     else
>       x, y = other.coerce(self)
>       x/y
>     end
>   end

これに、other が Integer の Complex の場合の処理も
加わるんですよね。

田中昌宏