Unum (number format)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Vincent Lefèvre (talk | contribs) at 15:48, 27 November 2016 (Undid revision 751729387 by 137.132.180.61 (talk) incorrect change). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The unum (universal number) format is a floating point format proposed by John Gustafson as an alternative to the now ubiquitous IEEE 754 format. The proposal and justification are explained in his book The End of Error.[1]

The two defining features of the unum format (while unum 2.0 is different) are:

  • a variable-width storage format for both the significand and exponent, and
  • an u-bit, which determines whether the unum corresponds to an exact number (u=0), or an interval between consecutive exact unums (u=1). In this way, the unums cover the entire extended real number line [−∞,+∞].

For performing computation with the format, Gustafson proposes using interval arithmetic with a pair of unums, what he calls an ubound, providing the guarantee that the resulting interval contains the exact solution.

Unum implementations have been explored in Julia.[2][3][4][5] including unum 2.0 (or at least a modified version of his new proposal).[6] Recently, unum has been explored in MATLAB.[7][8]

William Kahan and John Gustafson discussed unums at the Arith23 conference[9][10][11][12] on 12 July 2016.

Critique

William Kahan cites the following issues with unums:[11][13]

  • Unum computing will not end computational errors.
  • Unum computation does not always deliver correct results.
  • The description of unums sidesteps using unum for solving calculus problems.
  • Unums are expensive in terms of time and power consumption.

Each computation in unum space is likely to produce a new data type. Even when the storage space is the same, the structure of the data value may differ.[1] This requires data allocation, deallocation, and garbage collection during unum operations. The unum data structure does not explicitly indicate the type of data within that structure requiring pointers with associated type parameters to access.

  • Unums do not provide exception information (x/0, sqrt(-1), etc.)
  • Unum computation may deliver incorrect results from the selection of an algebraically correct but numerically unstable algorithm.
  • The costs and benefits of unum over short precision floating point for problems requiring low precision are not obvious.
  • Solving differential equations and evaluating integrals with unums are not economical for useful accuracy.

See also

References

  1. ^ a b Gustafson, John L. (2016-02-04) [2015-02-05]. The End of Error: Unum Computing. Chapman & Hall / CRC Computational Science. Vol. 24 (2nd corrected printing, 1st ed.). CRC Press. ISBN 978-1-4822-3986-7. Retrieved 2016-05-30. [1] [2]
  2. ^ Byrne, Simon (2016-03-29). "Implementing Unums in Julia". Retrieved 2016-05-30.
  3. ^ "Unum arithmetic in Julia: Unums.jl". Retrieved 2016-05-30.
  4. ^ "Julia Implementation of Unums: README". Retrieved 2016-05-30.
  5. ^ "Unum (Universal Number) types and operations: Unums". Retrieved 2016-05-30.
  6. ^ https://github.com/jwmerrill/Pnums.jl
  7. ^ Ingole, Deepak; Kvasnica, Michal; De Silva, Himeshi; Gustafson, John L. "Reducing Memory Footprints in Explicit Model Predictive Control using Universal Numbers. Submitted to the IFAC World Congress 2017". Retrieved 2016-11-15.
  8. ^ Ingole, Deepak; Kvasnica, Michal; De Silva, Himeshi; Gustafson, John L. "MATLAB Prototype of unum (munum)". Retrieved 2016-11-15.
  9. ^ "Program: Special Session: The Great Debate: John Gustafson and William Kahan". Arith23: 23rd IEEE Symposium on Computer Arithmetic. Silicon Valley, USA. 2016-07-12. Archived from the original on 2016-05-30. Retrieved 2016-05-30. {{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)
  10. ^ Gustafson, John L.; Kahan, William M. (2016-07-12). The Great Debate @ARITH23: John Gustafson and William Kahan (1:34:41) (video). Retrieved 2016-07-20.
  11. ^ a b Kahan, William M. (2016-07-16) [2016-07-12]. "A Critique of John L. Gustafson's THE END of ERROR — Unum Computation and his A Radical Approach to Computation with Real Numbers" (PDF). Santa Clara, CA, USA: IEEE Symposium on Computer Arithmetic, ARITH 23. Archived from the original (PDF) on 2016-07-25. Retrieved 2016-07-25. {{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help) [3]
  12. ^ Gustafson, John L. (2016-07-12). ""The Great Debate": Unum arithmetic position paper" (PDF). Santa Clara, CA, USA: IEEE Symposium on Computer Arithmetic, ARITH 23. Retrieved 2016-07-20. [4]
  13. ^ Kahan, William M. (2016-07-15). "Prof. W. Kahan's Commentary on "THE END of ERROR — Unum Computing" by John L. Gustafson, (2015) CRC Press" (PDF). Archived from the original (PDF) on 2016-08-01. Retrieved 2016-08-01. {{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)

Further reading