Re: Temporal database - no end date
Date: 20 Jan 2007 11:29:13 -0800
Message-ID: <1169321353.897424.143130_at_m58g2000cwm.googlegroups.com>
Thank you, sir!
A point I had forgotten is that floating point math involves a "range" concept -- usualy called a delta or floating point error. The FP number is are NOT assumed to be a point on the the number line but a "vague fog" whose delta changes within a computation. Example: generate a lot of FP numbers and add them in the order generated ; add them again after sorting them in ascending order; then in descending order; put them ABS() sorted order (so that all the smaller positive and negative values are together). The results will all be slightly different, the last method is the most accurate. It gets worse with multiplication, division, trig functions, log & exp, etc.
The old scientific FORTRAN compilers came in two flavors -- one was a fast compiler with good error messages for development work and the other was the optimizer that would re-arrange the math. There was various test suites, like the Gibson Mix, that were used to validate and compare performance of the floating point math. There was no IEEE standard back then.
There is a story about the Navy testing the IBM and Univac FORTRANs. The test mix was a long series of functions and their inverses that would cancel out and return zero plus or minus the delta (which is what they really wanted to see). The IBM compiler takes it time and the executable produces a good answer. The Univac compiler takes a really long time, but the executable is a few lines of machine code that always prints zero. The Univac compiler kept things in a symbolic form, did the algebra, found all the inverses and cancelled them out before it even attempted to use floating point values.
Symbolic manipulations are the way that computers get around continuum problems, not by forcing a weak model of the data into the system. Received on Sat Jan 20 2007 - 20:29:13 CET