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  > have
> 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  the 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  > is,
> it certainly in a number. I'm not sure why the IEEE chose to define  > this
> 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  indicates 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  that one in Ruby, too.)

-Rob

Rob Biedenharn		http://agileconsultingllc.com
Rob / AgileConsultingLLC.com