From: Tanaka Akira Date: 2008-05-09T02:46:03+09:00 Subject: [ruby-dev:34622] Complex(-4.0,0.0)**(Complex(1.0/2,0.0)) with mathn 1.8 で mathn を使って -4 ** (1/2) を (Float で) 計算すると NaN になるんですがそういうものでしょうか。 % ./ruby -rmathn -ve 'p Complex(-4.0,0.0)**(Complex(1.0/2,0.0))' ruby 1.8.7 (2008-05-07 patchlevel 5000) [i686-linux] /home/akr/ruby/18/lib/ruby/1.8/rational.rb:442: warning: method redefined; discarding old numerator /home/akr/ruby/18/lib/ruby/1.8/rational.rb:449: warning: method redefined; discarding old denominator /home/akr/ruby/18/lib/ruby/1.8/rational.rb:470: warning: method redefined; discarding old gcd /home/akr/ruby/18/lib/ruby/1.8/rational.rb:489: warning: method redefined; discarding old lcm /home/akr/ruby/18/lib/ruby/1.8/mathn.rb:110: warning: discarding old / /home/akr/ruby/18/lib/ruby/1.8/mathn.rb:114: warning: discarding old / /home/akr/ruby/18/lib/ruby/1.8/mathn.rb:120: warning: method redefined; discarding old inspect /home/akr/ruby/18/lib/ruby/1.8/mathn.rb:233: warning: method redefined; discarding old sqrt NaN mathn じゃなくて complex なら NaN にはなりません。 % ./ruby -rcomplex -ve 'p Complex(-4.0,0.0)**(Complex(1.0/2,0.0))' ruby 1.8.7 (2008-05-07 patchlevel 5000) [i686-linux] Complex(1.22460635382238e-16, 2.0) -- [田中 哲][たなか あきら][Tanaka Akira]