[Date Index] [Thread Index] [Author Index]
Re: Zero does not equal zero et al.
I think that the criticisms of numerical computation in Mathematica that seems to pop up from time to time in this newsgroup are mostly due to the attempt in Mathematica to guess at what the user might want done, and sometimes guessing wrong. The straightforward advice often giving in numerical computation books is that floating-point numbers should not be tested for equality except in unusual circumstances, and that relative error abs((x1-x2)/x1) < epsilon [x1 not zero] or absolute error abs(x1-x2) < epsilon should be used instead. If Mathematica had simply followed this advice, and otherwise implemented the fastest possible arbitrary-precision arithmetic then there would be another set of criticisms, but they could be answered by saying "we did it as fast as we know how" "you can build slower stuff that keeps track of error on top of this" "if you want to understand what is going on, look in any of the standard books. E.g. see IEEE binary standard or radix-independent standard arithmetic." instead we see mathematica experts explaining "we did this elaborate thing that you might not understand" "if you want to understand it, read MathSource because it is unique to Mathematica" "it's slow, but if you want to use a standard model, you can do so by making it even slower". The solution though may be simply not to use Mathematica, rather than trying to change Mathematica. RJF