Has the Decades-Old Floating Point Error Problem Been Solved? (insidehpc.com)
overheardinpdx quotes HPCwire:
Wednesday a company called Bounded Floating Point announced a "breakthrough patent in processor design, which allows representation of real numbers accurate to the last digit for the first time in computer history. This bounded floating point system is a game changer for the computing industry, particularly for computationally intensive functions such as weather prediction, GPS, and autonomous vehicles," said the inventor, Alan Jorgensen, PhD. "By using this system, it is possible to guarantee that the display of floating point values is accurate to plus or minus one in the last digit..."
The innovative bounded floating point system computes two limits (or bounds) that contain the represented real number. These bounds are carried through successive calculations. When the calculated result is no longer sufficiently accurate the result is so marked, as are all further calculations made using that value. It is fail-safe and performs in real time.
Jorgensen is described as a cyber bounty hunter and part time instructor at the University of Nevada, Las Vegas teaching computer science to non-computer science students. In November he received US Patent number 9,817,662 -- "Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof." But in a followup, HPCwire reports: After this article was published, a number of readers raised concerns about the originality of Jorgensen's techniques, noting the existence of prior art going back years. Specifically, there is precedent in John Gustafson's work on unums and interval arithmetic both at Sun and in his 2015 book, The End of Error, which was published 19 months before Jorgensen's patent application was filed. We regret the omission of this information from the original article.
The innovative bounded floating point system computes two limits (or bounds) that contain the represented real number. These bounds are carried through successive calculations. When the calculated result is no longer sufficiently accurate the result is so marked, as are all further calculations made using that value. It is fail-safe and performs in real time.
Jorgensen is described as a cyber bounty hunter and part time instructor at the University of Nevada, Las Vegas teaching computer science to non-computer science students. In November he received US Patent number 9,817,662 -- "Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof." But in a followup, HPCwire reports: After this article was published, a number of readers raised concerns about the originality of Jorgensen's techniques, noting the existence of prior art going back years. Specifically, there is precedent in John Gustafson's work on unums and interval arithmetic both at Sun and in his 2015 book, The End of Error, which was published 19 months before Jorgensen's patent application was filed. We regret the omission of this information from the original article.
So, what is the last digit of Pi?
the "bounds" also have the same issue, it's making the problem smaller but not eliminating it
For those of you too lazy to read the summary, their method is that instead of using one floating point value, they use two and say the real answer is between those two. If the two floats are consistent when rounded to the requested precision, it declares the value correct. If they differ, it gives an accuracy error.
So, for only twice the work and a little ovehead on top, this process can tell you when to switch to a high precision fixed-point model instead of relying on the floating point approximations.
Depends how fast it is.
It's patented, and will be used to extort money from any company that chooses to implement it. It'll never reach any mass adoption.
As mentioned in the summary, this sounds no different from the age old interval arithmetic. The reason interval arithmetic never took off is that for the vast majority of problems where error is actually a problem, the bounds on the error become so large as to be worthless. To fix this you still need to employ those specialist numerical programmers, so this doesn't actually get you anywhere.
Represent them as a ratio! That way it will be *perfect*. ... If we could represent them lovelessly without using full-blows formulas, they wouldn’t be irrational numbers!
Of course this doesn't help with irrational numbers. But neither does this, or any other solution,
Then again, I'm a fan of calculating with formulas (aka higher-order functions).
> any company that chooses to implement it
This patent relates CPU design, for CPUs used in critical applications involving lots of floating point operations. So by "any company" you mean "AMD and Intel".
> It'll never reach any mass adoption.
Right, neither Intel nor AMD would EVER license any patents for use in their processors (eyeroll).
- There are some numeric decimal types which allow a perfect precision like the
- This approach doesn't seem to try to avoid the default problems as the aforementioned types, but just to warn about potential inaccuracies. According to the linked article:
The innovative bounded floating point system computes two limits (or bounds) that contain the represented real number. These bounds are carried through successive calculations. When the calculated result is no longer sufficiently accurate the result is so marked, as are all further calculations made using that value.
- Any floating-point-type error is certainly programmer's fault as far as being aware about these limitations is part of the basic knowledge which someone working with big decimal values should posses. So, avoiding problems like the one referred by the quote below these lines doesn't require a programming structure re-definition, just a competent developer.
the most notorious floating point error was the Patriot missile failure in Saudi Arabia...
Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
Idiocracy. This is really disquieting...
Just another wannabe patent troll?
The perversions of the US patent system are truly astounding.
Also sounds very much like they re-invented Interval Arithmetic, which was discovered originally around 1950 and has been available in numeric packages for a long time. And, to top it off, the title is lying: Interval Arithmetic does not give you an accurate representation. It just makes sure you always know the maximum error.
Pathetic.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Right, neither Intel nor AMD would EVER license any patents for use in their processors (eyeroll).
Haha, he probably doesn't know Intel licensed x86 to Cyrix so they would not fall under monopoly regulations.
Earlier prior art, https://en.m.wikipedia.org/wik...
Patents, implementations etc. Not that there isn’t room for innovation as well as popularization.
Standards efforts (IFIP, IEEE) are ongoing. Yearly conferences in reliable computing, so both the original article and most likely the patent itself gloss over engineer-decades (if not centuries) of work.
And get perfect numbers for everything but irrational numbers, for which there is no easy precise solution anyway.
Would probably be faster too, since the ratios could be two integers.
what does "MOUNT TAPE U1439 ON B3, NO RING" mean?
is the answer who gets the last slice of Pi?
Some drink at the fountain of knowledge. Others just gargle.
In the 1950s, when the public was first becoming aware of computers, computers were considered to be large calculators. They could do math. They could be used by the IRS to compute your taxes or by the military to analyze sensor inputs and guide missiles. Few people could envision a future where computers could manipulate strings, images, sounds and communicate in the many ways that we now enjoy.
But today we have all those unimaginable benefits but one: They can't really do math well. Oh, the irony!
...omphaloskepsis often...
There's a major difference between "solving floating point error" and "solving the detection of floating point error"
And the second one has been solved for quite some time.
The first one is highly dependent on how accurate your original data is, and is likely never to be solved because of that.
It's called called continued fraction arithmetic.
0 error. Or at the very least only as much error as you allow.
This is totally theoretical. There is no implementation on silicon.
Until someone does this on a chip it's meaningless, and as others have pointed out, the solution isn't new.
It was well-known when IEEE 754 was developed in the early 80s, and is the reason that directed rounding modes are included in the standard (published 1985).
The big problem is that naÃve implementations grossly overestimate errors and thereby produce useless results.
Suppose you have a variable A with value x±e. The value of A-A is exactly zero, but a simplistic subtraction would compute a lower bound of (x-e)-(x+e), an upper bound of (x+e)-(x-e), and say the result is 0±2e. But if you have a different value B, not derived from A, which coincidentally happens to have the same value x, then 0±2e is the correct difference.
Maybe they have a new way to address this problem, but interval arithmetic is not new
a new round of litigation by a new patent troll! or perhaps it's an old patent troll with a new toy!
"to the last digit." Cool. I'd like a representation of pi, please.
There's this perl5 module that actually solved this exactly quite some time ago - no compromise at all, but as Damian Conway says, we suck at marketing - if you need a bigrat to solve your problem. Perl 6 (which should have a different name and many now call Rakudo) - has this as a built-in. Rational numbers are kept exact all the way through calculations, period, if built from...rational numbers in the first place (won't help with pi or sqrt 2 of course). One of the best conference presentations ever given about anything happens to cover this - skip past the boring intros. Computer scientists will get the dry humor in say "the Alan Machine" reference. https://www.youtube.com/watch?...
Why guess when you can know? Measure!
It's called fixed point and / or BCD.
The original article has a comment by someone who developed the method and released it openly.
From what little i've read it certainly seems to be the case.
He specifies the hardware algorithms that can utilize this new representation directly, track the error amount and flag violations with little addition of work. This is not just a representation patent. It is a patent on the algorithms to utilize the representation efficiently.
(a) The first example of this (decades before Gustafsson's unums) is interval arithmetic.
(b) A trivial counter-example is any kind of Newton-Rapson iteration to calculate the value of a given function: Even though the NR iteration for sqrt(x) or sqrt(1/x) both have quadratic convergence, i.e. the number of correct digits double on each iteration, any kind of interval arithmetic will tell you that the error instead grows to infinite levels.
I.e. the claimed benefits are totally bogus except for really trivial calculations, and for those the error bounds are equally trivial.
Full disclosure: I am currently a member of the 2018 ieee754 floating point revision working group, so you could claim that I am biased here due to having spent a year or two working in the subject area.
Terje
"almost all programming can be viewed as an exercise in caching"
People tend to forget that.
putting the 'B' in LGBTQ+
We used to use a lot of fixed point math that you could configure to get the range and resolution needed.
It's amazing how well optimized these systems were. Much of the expensive math and rational number problems were invisible because of the internal data representations being carefully planned.
There was a dll generated at build time that provided information to properly convert the internal representation to engineering units. It was very interesting doing the conversions
Divide 63,000,000 by foo, then add bar times 0.015625 and divide the result by pi and you get RPM!
Apparently people also forget this when they spell the word accuracy. X^D
The innovative bounded floating point system computes two limits (or bounds) that contain the represented real number. These bounds are carried through successive calculations. When the calculated result is no longer sufficiently accurate the result is so marked, as are all further calculations made using that value.
This sounds like interval arithmetic.. A.K.A. using a vectorized format for numbers that carries forward an upper and lower bound through each operation, and I wrote a Matlab datatype for that in college, but others are published in the subject already, so this is not an innovation.
I would also point out that including two limit bounds increases the size storage costs, and the complexity/number of basic elements that will be required for computation.
Alexander Peter Kowalski just likes to show the world he is a retard.
That is why he posts stuff like that just to make sure any new readers know what kind of stupid he has to offer.
He also frequently doesn't claim his work so that it won't be directly associated with him.
It doesn't change the fact that Alexander Peter Kowalski is a retard.
Don't forget the ARM CPUs out there!
Self-importance and self-indulgence is the root of ALL evil.
Yes, but does it also perform speculative execution? If so, do not want!
ARM isn't used for serious floating point work. Very much the wrong tool for the job.
Irrational numbers always bothered me anyway. Now, if we could get rid of imaginary numbers, that would really be something!
Damn, I didn't know the guy from Ministry was into computer science!