“The decades-old floating point error problem has been solved,” proclaims a press release from inventor Alan Jorgensen. The computer scientist has filed for and received a patent for a “processor design, which allows representation of real numbers accurate to the last digit.” The patent (No. 9,817,662, “Apparatus for Calculating and Retaining a Bound on Error During Floating Point Operations and Methods Thereof”) was issued on November 14, 2017.
Jorgensen presents his bounded floating point system as “a game changer for the computing industry,” tackling a pernicious problem that (as he cites) has been implicated in catastrophic failures, including the 1991 Patriot missile failure, which resulted in 28 U.S. military deaths.
The inventor patented a process that addresses floating point errors by computing “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.”
Jorgensen says the method performs in real time and can operate in conjunction with existing hardware and software. Also, converting between existing standardized floating point and this new bounded floating point format can be done with simple operations, he says.
Unreported floating point errors are relevant for highly compute-intensive functions, especially where accuracy and safety are paramount, such as weather prediction, GPS, autonomous vehicles and finance. Jorgenson claims that his system guarantees accuracy of floating point values to plus or minus one in the last digit.
The invention is said to provide error information with minimal impact to performance or memory space compared with current methods. “In the current art, static error analysis requires significant mathematical analysis and cannot determine actual error in real time,” reads a section of the patent. “This work must be done by highly skilled mathematician programmers. Therefore, error analysis is only used for critical projects because of the greatly increased cost and time required. In contrast, the present invention provides error computation in real time with, at most, a small increase in computation time and a small increase in the maximum number of bits available for the significand.”
The abstract offers a few more details:
The apparatus and method for calculating and retaining a bound on error during floating point operations inserts an additional bounding field into the standard floating-point format that records the retained significant bits of the calculating with notification upon insufficient retention. The bounding field, which accounts for both rounding and cancellation errors, has two parts, the lost bits D Field and the accumulated rounding error R Field. The D Field states the number of bits in the floating point representation that are no longer meaningful. The bounds on the real value represented are determined from the truncated floating point value (first bound) and the addition of the error determined by the number of lost bits (second bound). The true, real value is absolutely contained by the first and second bounds. The allowed loss (optionally programmable) of significant bits provides a fail-safe, real-time notification of loss of significant bits.
According to Jorgensen’s LinkedIn profile, he has a PhD in Computer Science and is a part time instructor at the University of Nevada, Las Vegas (UNLV) where he teaches computer science to non-computer science students.