On Thu, Sep 18, 2008 at 5:22 PM, Maciej Stachowiak <[EMAIL PROTECTED]> wrote:
> > On Sep 18, 2008, at 5:13 PM, Mark S. Miller wrote: > > On Thu, Sep 18, 2008 at 4:52 PM, Brendan Eich <[EMAIL PROTECTED]> wrote: > >> -0 and 0 are not the same "given floating point number". 1/-0 vs. 1/0 and >> Math.atan2(-0,0) vs. 0,0 are but two examples. >> > > Yes, I understand their operational difference. Whether that difference > means they are not the same number depends on how you define "number". I > would have defined "representing the same number" by correspondence to the > reals. YMMV. > > > But the mathematical behavior of floating point numbers is not the same as > that of the reals. Not just because of -0. See < > http://docs.sun.com/source/806-3568/ncg_goldberg.html> > > Floating point numbers are a useful rough approximation of the reals for > many practical calculations, but treating them as if they were in fact a > subset of the reals is not mathematically sound. > Long long ago I actually had read that document carefully, and I had also looked at I think the [Brown 1981] which it cites. (But the doc has no bibliography. Anyone have a pointer?) My memory of the theory of floating point is that the numbers are exact but the operations are approximate. * A given finite floating point value exactly represents a given real number. * The subset of real numbers which are exactly representable in a given format are its "representable numbers". * The standards require various well behaved properties like: Let Tr = B2R(Xb) +r B2R(Yb) // Tr stands for True sum as a real number If representable(Tr) then Tr ===r B2R(Xb +b Yb) Else (greatest representable number <r Tr) <r B2R(Xb +b Yb) <r (smallest representable number >r Tr) Since we have many people on this list much more expert on this than I, if the above summary is mistaken, I'm sure someone will correct. -- Cheers, --MarkM
_______________________________________________ Es-discuss mailing list Es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss