"Schwab,Wilhelm K" <bsch...@anest.ufl.edu>
> Floating point is not always what it seems.  

Hence my comment that IEEE floats get "the wrong answer fast".  I have used 
interval math, continued fractions, and linear fractional transforms (a.k.a. 
exact reals).  I agree that each representation has its challenges.

Let's talk for a second about integers.

 0 = (0+0i)   --> true
 1 = (1+0i)   --> true
 0 < 1           --> true
 (0+0i) < (1+0i)  --> ?? which answer here gives me the least surprise ??

To put it another way

(A = a)  --> true
(B = b)  --> true
(A < B) --> true
(a < b)  --> ?? what do you expect to see here ??

> By extension, I argue that 
> computer-represented complex numbers are not always what they seem, only
> more so.  

Agreements: computers don't do math well.  Computers approximate math.  We 
would prefer to get the best approximations possible and be told when we are 
in deep waters.

There are math systems (e.g. using interval arithmetic) which either complain 
that they can't come up with a sensible answer (all the bits are roundoff 
error) or go back and recompute with higher precision numeric representations 
in order to get X digits of correct precision.  

I am _not_ proposing to make Pharo into such a system.


> Intuition resulting from lots of exposure to mathematicians suggests that
> they consider this non-trivial but well-known.

I don't consider "What Every Computer Scientist Should Know About 
Floating-Point Arithmetic" trivial -- especially for us non-mathematician 
users of numbers. [ http://docs.sun.com/source/806-3568/ncg_goldberg.html ]

> If I am reading this correctly, defining $< is making a promise we can't
> keep, or perhaps we simply should not try.

Again, I am using unit tests as a fixed point.  

I want "if A=a and B=b and A<B then a<b" to work as I expect.  I consider 
anything else to be deeply broken.


> If you can find something that claims to produce a sensible ordering of
> complex numbers, please post a reference.  For now, my sense is that such a
> thing cannot exist.

I posted what I consider a sensible ordering which unit tests the property I 
care about.  It happens to be a total ordering (not that I really care).

I can certainly remove Complex>>< from the code, but I deeply dislike breaking 
basic logic on integers.  I would prefer to have something more meaningful 
than "mathematicians can't agree on a theoretical ordering of complex 
numbers, so practical logic must fail".

Do you really not believe that (0+0i) = 0 ??  Why, such numbers must be 
imaginary!!    ;^)

-KenD

_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to