I think that there is a problem in Fortran-style (and Common Lisp-style, which is where I come from) imaginaries and zeros, in that typically the complex numbers which can be decomposed into two reals must have the two reals of the same type: for instance, at least in CL, if you have \sqrt{i} it must be represented as #C(0.70710677 0.70710677); 1+2i must be #C(1 2) and cannot be #C(1 2.0) or any other mixed representation.
Why does this matter? It matters because there are three values for the real part to consider along the imaginary axis: +0, -0 and really truly 0. But it's impossible to express the third concept with a floating point imaginary part in those languages with no mixed representation. I'd have to go back to my notes to dig out cases where it matters, but the basic point is that multiplying a floating point real by i twice is not the same as multiplying by -1, and that causes pain.
pure imaginaries
Date: 2006-05-31 10:29 (UTC)Why does this matter? It matters because there are three values for the real part to consider along the imaginary axis: +0, -0 and really truly 0. But it's impossible to express the third concept with a floating point imaginary part in those languages with no mixed representation. I'd have to go back to my notes to dig out cases where it matters, but the basic point is that multiplying a floating point real by i twice is not the same as multiplying by -1, and that causes pain.
Christophe