On Jan 13, 2009, at 10:27 AM, Raphael Clancy wrote: > I think this is probably is a case of 0.0 is not really 0. After > all, as > much as I might wish it were, a float is not a real. What we really ave > is the case mentioned before, that is 0.0 is really 0 + eta, where eta > is some very small number which represents a precision error. Actually, there are both positive 0 and negative 0 representations in he IEEE spec. They are considered equal (-0.0 == +0.0). I believe that FORTRAN has both -0.0 and +0.0, too. There is no ε (epsilon) for 0.0. > Earlier, I > was thrown off by the 0.0/0.0 case, because that would really be (0 + > eta)/(0 + eta'), and since eta and eta' have similar magnitude this > value should be around 1, even though we can't know what the number s, > it certainly in a number. I'm not sure why the IEEE chose to define his > case as NaN, I think it must have been shorthand for "undefined". Read the spec. There are actually two different types of NaN -- one that indicates an indeterminate value (quiet NaN or QNaN) and one that ndicates an operation is not defined (signaling NaN or SNan). > > > As an interesting (to nerds ;-D) aside, there are several systems in > which 1/0 is infinity, but they usually depend on fancy geometrical > tricks, like making the reals occupy a circle or some more complicated > form instead of a line. So that +infinity == -infinity. That way you > can > make the function f(x)=1/x be "well" defined everywhere. I don't like > it, but, plenty of people do... > -- > Posted via http://www.ruby-forum.com/. There are similar conventions that give things like 0 raised to the 0th power is 1, but 0 raised to any non-zero power is 0. (You can try hat one in Ruby, too.) -Rob Rob Biedenharn http://agileconsultingllc.com Rob / AgileConsultingLLC.com