From: jzakiya Date: 2009-12-19T00:55:05+09:00 Subject: Re: Math errors On Dec 18, 4:52 am, "Dasson, Raghav" wrote: > jzakiya wrote: > > (-3)**3 => -27 > > > (-27)**(1/3.0)  give NaN instead of -3 > > > All odd roots (1/3,1/5,1/7 etc) of negative numbers should give > > negative root values, as above, but ruby (in irb) gives NaN (not a > > number), even when I require 'complex' . > > > Is this considered an error in Ruby? > > I guess, you are right. THIS IS A 'MATH ERROR' in Ruby. > > The ** method is not able to handle negative numbers raised to Floating points (that are not Integers)   This behavior was shown in ruby ree 1.8.6, 1.8.6, 1.8.7, 1.9.1 -27**1/3.0 => -9.0 -27 ** 1/3.0 => -9.0 -27 ** (1/3.0) => -3.0 -27**(1/3.0) => -3.0 (-27)**(1/3.0) => NaN (-27) ** (1/3.0) => NaN OK, the first two expression are evaluated as (-27**1)/3 => -9 The second two are correct (what I expected). But the last two, WHY??