Has the Decades-Old Floating Point Error Problem been Solved?

Alan Jorgensen from Bounded Floating Point (BFP)

Today 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.”

As we’ve talked about here on insideHPC, error in floating point operations has been known since the beginning of the computer age and can be catastrophic. According to BFP, the most notorious floating point error was the Patriot missile failure in Saudi Arabia, when a Patriot missile failed to destroy a Scud missile. As a result, 28 U.S. military people were killed. This occurred when the conversion of 100 hours in tenths of a second (3600000) to floating point introduced an undetectable error resulting in the missile guidance software incorrectly locating the scud missile.

All general‐purpose computers, including smart phones, have hardware or software implementations of mathematical operations on floating point numbers. In most cases floating point numbers, and the operations on them, introduce an error which is undetected and can accumulate, even catastrophically, over a sequence of operations. Performing complex mathematical computations requires myriad floating point operations, each of which is likely to make the result less accurate without use of this new system.

How does it work? – 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. It can operate in conjunction with existing hardware and software. Conversions between existing standardized floating point and this new bounded floating point format are simple operations.

The company was issued US Patent number 9,817,662 for the invention as of November 14, 2017.

About the Inventor:

Alan Jorgensen is a software testing engineer, professor, and cyber bounty hunter who has been concerned with the error in floating point calculations since 1975 while testing processor architecture. After extensive research and tests, he successfully developed a system that solved the decades‐old problem.

Sign up for our insideHPC Newsletter

Comments

  1. Absolutely amazing that the US Patent Office would grant a patent for an idea I first publicly presented in 2013, and published in a very well-received book (The End of Error: Unum Arithmetic) in February 2015. All three forms of unum arithmetic are open source and free of patent restrictions (MIT Open Source license). For Jorgensen to claim to be the inventor of this concept is pretty outrageous.

    • Steve Casselman says

      I have to agree with Dr Gustafson. Im my opinion Mr Jorgensen’s “patent” is worthless.

    • Rishi Khan says

      Have you notified the uspto patent officer? Also, EFF fights a lot of these battles. They may be able to assist.

  2. robin hammond says

    Agreed. These techniques have been used in software for quite some time – tracking maximal error and recalculating if needs be. I don’t even recall the first time I used one.

  3. Matthew Tedder says

    Chances are, he didn’t know. I also have my own weird solution. The problem is that I had to invent a fundamentally different method of representing linear values. Each digit is a binary “greater than half” or “less than half”. Arithmetic is very easy… I have a competitor to machine learning perceptors that I tried to develop this for.. but so far, I am using base-10 integers–assuming a “0.” on the left. I am only trying to represent something similar to probabilities… from 0 to 0.99999 (as many digits as we have). So there is no need for the”0.” and my notation can save bytes. These are “intensities” from proprioceptors and otherwise “confidences” (in correlation). The higher precision the numbers that can be represented, the finer the details that can be recognized amid features. This is particularly useful for ratio’d details–finding novel features between given features.

  4. Glauco Masotti says

    I would like to thank Prof. Jorgensen for having cited my work in his patent as a background of his invention.
    My original work dates back to 1991!
    In Jan 2012 I published on arxiv the paper that is cited: https://arxiv.org/abs/1201.5975, which is a revision of the previous work, taking into account the reception that followed and subsequent developments.
    To say the truth, although this is a decade-old and painful problem, it has not received a great attention by researchers in the field, perhaps because of the false conviction that there is little to do with it and that we just have to get along with it, and after all the great majority of computational problems are not so critical, so that emphasis so far has been placed in speed of computation, neglecting robustness and accuracy.
    Therefore I cannot count a lot of citations, so that I am glad of this one, even if in negative terms.
    However I don’t think that Prof. Jorgensen’s judgment of my work is fair!
    I understand that in a patent one has to emphasize the merit of what is proposed while placing in a bad light other alternatives, but it would be great to be fair also in this circumstances.
    In his patent he liquidates my work with a few words: “This technique increases required storage space, adds computation time and does not provide bounds for the error.”
    Also if this is literally true it is not that bad as one may think just reading this few words.
    Well, there is no free meal in this world, if we have additional information we need space for it, right? This is true also for the invention at hand: “The present invention makes a slight decrease in the maximum number of bits available for the significand for real number representation in order to accommodate space for error information”.
    A time penalty also exists: “the present invention provides error computation in real time with, at most, a small increase in computation time”.
    Therefore, as far as space and time are concerned, the situation seems to me not much different from the method that I proposed long time ago, because if it’s true that a software implementation of my method would certainly slow down computations significantly, this should not be true for a specialized hardware implementation, but this is not quantifiable, because no study on this subject has been carried out.
    Finally, regarding error bounds, it is true that my method doesn’t provide error bounds, however it can ensure computations within given error bounds! Which, in my opinion, is what really matters.
    In my method, when an ill conditioned problem is detected precision is automatically extended as much as required in order to respect given error bounds. It is not clear instead what we do here once a loss in precision is detected.
    However this is no more my business and I don’t have time the go into the details of the patent.
    To conclude, I wish to Prof. Jorgensen all the best and success with his patent, I would appreciate however if he would recognize that my method is not that bad, but it’s just another ways of doing things with its cons but also its pros.