Skip navigation.

Universal Numbers Presentation to Linux Users of Victoria, May 3rd, 2016

Due to underlow and overflow, computers suffer rounding errors. These errors are highly significant, computers make them constantly and with great speed. Sometimes those errors cost millions of dollars, or directly lead to a tragic loss of life. Many of these errors are caused by the way that computers store numbers. The use of scientific notation, as implemented by IEEE floating point standards, is not only imprecise, but also requires too many bits - which is costly in power, time, and money.

Universal numbers (unums), developed by John Gustafson, is offered as a superset of IEEE types (754 and 1788); just as floats are a superset of integers, unums are a superset of floats. With the addition of a ubit, they avoid error by giving bounds on answers when they can't provide an accurate number. They do not have underflow or overflow issues and therefore do not suffer from rounding issues. Unums incorporate many of the ideas of intervals, but without the complexity, pessimistic expanding bounds, and also provide exactness. Further, unums in their complete form, offer variable exponent and fraction sizes.

There are currently no known mathematical problems where unums have provided an incorrect answer. Prototype implementations are available for in Mathematica, Julia, and Python. The real challenge will be to put unums in hardware.