Skip to main content

Extending the Precision

  • Chapter
  • First Online:
  • 2655 Accesses

Abstract

Though satisfactory in most situations, the fixed-precision floating-point formats that are available in hardware or software in our computers may sometimes prove insufficient. There are reasonably rare cases when the binary64/decimal64 or binary128/decimal128 floating-point numbers of the IEEE 754 standard are too crude as approximations of the real numbers. Also, at the time of writing these lines, the binary128 and decimal128 formats are very seldom implemented in hardware.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    To our knowledge, the only commercially significant platform that has supported binary128 in hardware for the last decade has been the IBM z Systems [387].

  2. 2.

    Such as 2Sum (Algorithm 4.4, page 108), Fast2Sum (Algorithm 4.3, page 104), Dekker product (Algorithm 4.10, page 116), and 2MultFMA (Algorithm 4.8, page 112).

  3. 3.

    Of course, when we write x h + x , the addition symbol corresponds to the exact, mathematical addition.

  4. 4.

    BLAS is an acronym for Basic Linear Algebra Subroutines.

  5. 5.

    QD is available at http://crd-legacy.lbl.gov/~dhbailey/mpdist/.

  6. 6.

    CAMPARY is available at http://homepages.laas.fr/mmjoldes/campary/.

  7. 7.

    By the way, “correct rounding” is not clearly defined for double-words: Does this mean that we get the double-word closest to the exact value, or that we get the 2p-digit number closest to the exact value (if the underlying arithmetic is of precision p)? This can be quite different. For instance, in radix-2, precision-p arithmetic, the double-word closest to a = 2p + 2p + 2p−1 is a itself, whereas the precision-2p number closest to a is 2p + 2p+1.

  8. 8.

    Note that even if the general idea remains the same, the notion of overlap slightly changes depending on the authors!

  9. 9.

    CRlibm was developed by the Arénaire/AriC team of CNRS, INRIA, UCBL and ENS Lyon, France. It is available at https://gforge.inria.fr/scm/browser.php?group_id=5929&extra=crlibm.

  10. 10.

    INTLAB is the Matlab toolbox for self-validating algorithms; it is available at http://www.ti3.tu-harburg.de/rump/intlab/.

  11. 11.

    Magma is available at http://magma.maths.usyd.edu.au/magma/.

  12. 12.

    NTL is a library for performing number theory, available at http://www.shoup.net/ntl/.

  13. 13.

    ARPREC is available at http://crd-legacy.lbl.gov/~dhbailey/mpdist/.

  14. 14.

    GNU MP is available at https://gmplib.org/.

  15. 15.

    MPFR is available at http://www.mpfr.org/.

  16. 16.

    The minimum precision was initially chosen as 2 because the ties-to-even rule was not defined for precision 1 in IEEE 754. But since this case can occur in conversions to character strings, a complete definition has been proposed for the 2018 revision (see Section 3.1.2.1), and the minimum precision could be changed to 1 in MPFR, even though the context is different (there are no formats with 1-bit precision in IEEE 754).

  17. 17.

    Application Binary Interface, which specifies the sizes of the scalar types, in particular.

  18. 18.

    Fused multiply-subtract.

  19. 19.

    Some linkers will include only unresolved symbols seen so far in the command line, and the requisite GMP symbols are known only after -lmpfr has been taken into account.

  20. 20.

    This is how functions with a variable number of arguments are usually designed in C.

  21. 21.

    This can easily be detected dynamically, and one can choose to stop the iterations when this is no longer true, as the enclosing interval gets too wide to provide any interesting information.

  22. 22.

    The results are actually correctly rounded, so that even more precision may be needed, but the issue mainly comes from the accuracy requirement, and the future support for faithful arithmetic will not avoid it.

  23. 23.

    Arb is available at http://arblib.org/.

  24. 24.

    GNU MPC is available at http://www.multiprecision.org/mpc/.

  25. 25.

    MPFI is available at https://gforge.inria.fr/projects/mpfi/.

  26. 26.

    iRRAM is available at http://irram.uni-trier.de/.

References

  1. D. H. Bailey. Some background on Kanada’s recent pi calculation. Technical report, Lawrence Berkeley National Laboratory, 2003. Available at http://crd.lbl.gov/~dhbailey/dhbpapers/dhb-kanada.pdf.

  2. D. H. Bailey, R. Barrio, and J. M. Borwein. High precision computation: Mathematical physics and dynamics. Applied Mathematics and Computation, 218:10106–10121, 2012.

    Article  MathSciNet  Google Scholar 

  3. D. H. Bailey and J. M. Borwein. Experimental mathematics: examples, methods and implications. Notices of the AMS, 52(5):502–514, 2005.

    MathSciNet  MATH  Google Scholar 

  4. D. H. Bailey, J. M. Borwein, P. B. Borwein, and S. Plouffe. The quest for pi. Mathematical Intelligencer, 19(1):50–57, 1997.

    Article  MathSciNet  Google Scholar 

  5. D. H. Bailey, Y. Hida, X. S. Li, and B. Thompson. ARPREC: an arbitrary precision computation package. Technical report, Lawrence Berkeley National Laboratory, 2002. Available at http://crd.lbl.gov/~dhbailey/dhbpapers/arprec.pdf.

  6. D. J. Bernstein. Multidigit multiplication for mathematicians. Available at https://cr.yp.to/papers/m3.pdf, 2001.

  7. S. Boldo, M. Joldeş, J.-M. Muller, and V. Popescu. Formal verification of a floating-point expansion renormalization algorithm. In 8th International Conference on Interactive Theorem Proving (ITP), Brasilia, Brazil, 2017.

    Chapter  Google Scholar 

  8. J. Borwein and D. H. Bailey. Mathematics by Experiment: Plausible Reasoning in the 21st Century. A. K. Peters, Natick, MA, 2004.

    Google Scholar 

  9. W. Bosma, J. Cannon, and C. Playoust. The Magma algebra system. I. The user language. Journal of Symbolic Computation, 24(3–4):235–265, 1997.

    Article  MathSciNet  Google Scholar 

  10. R. P. Brent. A FORTRAN multiple-precision arithmetic package. ACM Transactions on Mathematical Software, 4(1):57–70, 1978.

    Article  Google Scholar 

  11. R. P. Brent and P. Zimmermann. Modern Computer Arithmetic. Cambridge University Press, 2011.

    Google Scholar 

  12. K. Briggs. The doubledouble library, 1998. Available at http://www.boutell.com/fracster-src/doubledouble/doubledouble.html.

  13. C. Daramy-Loirat, D. Defour, F. de Dinechin, M. Gallet, N. Gast, C. Q. Lauter, and J.-M. Muller. CR-LIBM, a library of correctly-rounded elementary functions in double-precision. Technical report, LIP Laboratory, Arenaire team, December 2006. Available at https://hal-ens-lyon.archives-ouvertes.fr/ensl-01529804.

  14. M. Daumas and C. Finot. Division of floating point expansions with an application to the computation of a determinant. Journal of Universal Computer Science, 5(6):323–338, 1999.

    MATH  Google Scholar 

  15. F. de Dinechin, A. V. Ershov, and N. Gast. Towards the post-ultimate libm. In 17th IEEE Symposium on Computer Arithmetic (ARITH-17), pages 288–295, 2005.

    Google Scholar 

  16. F. de Dinechin, C. Q. Lauter, and J.-M. Muller. Fast and correctly rounded logarithms in double-precision. Theoretical Informatics and Applications, 41:85–102, 2007.

    Article  MathSciNet  Google Scholar 

  17. T. J. Dekker. A floating-point technique for extending the available precision. Numerische Mathematik, 18(3):224–242, 1971.

    Article  MathSciNet  Google Scholar 

  18. M. D. Ercegovac and T. Lang. Division and Square Root: Digit-Recurrence Algorithms and Implementations. Kluwer Academic Publishers, Boston, MA, 1994.

    MATH  Google Scholar 

  19. L. Fousse, G. Hanrot, V. Lefèvre, P. Pélissier, and P. Zimmermann. MPFR: A multiple-precision binary floating-point library with correct rounding. ACM Transactions on Mathematical Software, 33(2), 2007. 15 pages. Available at http://www.mpfr.org/.

    Article  Google Scholar 

  20. M. Fürer. Faster integer multiplication. In 39th Annual ACM Symposium on Theory of Computing (STOC), pages 57–66, June 2007.

    Google Scholar 

  21. P. Gaudry, A. Kruppa, and P. Zimmermann. A GMP-based implementation of Schönhage-Strassen’s large integer multiplication algorithm. In International Symposium on Symbolic and Algebraic Computation (ISSAC), pages 167–174, Waterloo, ON, Canada, 2007.

    Google Scholar 

  22. T. Granlund. The GNU multiple precision arithmetic library, release 6.1.2. Accessible electronically at https://gmplib.org/, September 2016.

  23. G. Hanrot, V. Lefèvre, P. Pélissier, P. Théveny, and P. Zimmermann. The MPFR library, version 3.1.5, 2016. Available at http://www.mpfr.org/mpfr-3.1.5/.

  24. G. Hanrot and P. Zimmermann. A long note on Mulders’ short product. Journal of Symbolic Computation, 37(3):391–401, 2004.

    Article  MathSciNet  Google Scholar 

  25. D. Harvey, J. van der Hoeven, and G. Lecerf. Even faster integer multiplication. Journal of Complexity, 36:1–30, 2016.

    Article  MathSciNet  Google Scholar 

  26. Y. Hida, X. S. Li, and D. H. Bailey. Algorithms for quad-double precision floating-point arithmetic. In 15th IEEE Symposium on Computer Arithmetic (ARITH-15), pages 155–162, June 2001.

    Google Scholar 

  27. Y. Hida, X. S. Li, and D. H. Bailey. C++/fortran-90 double-double and quad-double package, release 2.3.17, March 2012. Accessible electronically at http://crd-legacy.lbl.gov/~dhbailey/mpdist/.

  28. IEEE Computer Society. IEEE Standard for Floating-Point Arithmetic. IEEE Standard 754-2008, August 2008. Available at http://ieeexplore.ieee.org/servlet/opac?punumber=4610933.

  29. F. Johansson. Arb: a C library for ball arithmetic. ACM Communications in Computer Algebra, 47(4):166–169, 2013.

    Google Scholar 

  30. M. Joldeş, J.-M. Muller, and V. Popescu. Tight and rigourous error bounds for basic building blocks of double-word arithmetic. ACM Transactions on Mathematical Software, 44(2), 2017.

    Article  MathSciNet  Google Scholar 

  31. M. Joldeş, J.-M. Muller, V. Popescu, and W. Tucker. CAMPARY: Cuda multiple precision arithmetic library and applications. In 5th International Congress on Mathematical Software (ICMS), July 2016.

    Google Scholar 

  32. M. Joldeş, O. Marty, J.-M. Muller, and V. Popescu. Arithmetic algorithms for extended precision using floating-point expansions. IEEE Transactions on Computers, 65(4):1197–1210, 2016.

    Article  MathSciNet  Google Scholar 

  33. A. Karatsuba and Y. Ofman. Multiplication of many-digital numbers by automatic computers. Doklady Akad. Nauk SSSR, 145:293–294, 1962. Translation in Physics-Doklady 7, 595–596, 1963.

    Google Scholar 

  34. P. Kornerup, C. Lauter, V. Lefèvre, N. Louvet, and J.-M. Muller. Computing correctly rounded integer powers in floating-point arithmetic. ACM Transactions on Mathematical Software, 37(1):4:1–4:23, 2010.

    Article  MathSciNet  Google Scholar 

  35. W. Krandick and J. R. Johnson. Efficient multiprecision floating point multiplication with optimal directional rounding. In 11th IEEE Symposium on Computer Arithmetic (ARITH-11), pages 228–233, June 1993.

    Google Scholar 

  36. M. Lange and S. M. Rump. Faithfully rounded floating-point computations. Manuscript available at http://www.ti3.tu-harburg.de/rump/, 2017.

  37. C. Q. Lauter. Basic building blocks for a triple-double intermediate format. Technical Report 2005-38, LIP, École Normale Supérieure de Lyon, September 2005.

    Google Scholar 

  38. C. Q. Lauter. Arrondi Correct de Fonctions Mathématiques. Ph.D. thesis, École Normale Supérieure de Lyon, Lyon, France, October 2008. In French, available at http://www.ens-lyon.fr/LIP/Pub/Rapports/PhD/PhD2008/PhD2008-07.pdf.

  39. V. Lefèvre. Correctly rounded arbitrary-precision floating-point summation. IEEE Transactions on Computers, 66(12):2111–2124, 2017.

    Article  MathSciNet  Google Scholar 

  40. V. Lefèvre and P. Zimmermann. Optimized binary64 and binary128 arithmetic with GNU MPFR. In 24th IEEE Symposium on Computer Arithmetic (ARITH-24), July 2017.

    Google Scholar 

  41. X. Li, J. Demmel, D. H. Bailey, G. Henry, Y. Hida, J. Iskandar, W. Kahan, A. Kapur, M. Martin, T. Tung, and D. J. Yoo. Design, implementation and testing of extended and mixed precision BLAS. Technical Report 45991, Lawrence Berkeley National Laboratory, 2000. https://publications.lbl.gov/islandora/object/ir%3A115848.

  42. X. Li, J. Demmel, D. H. Bailey, G. Henry, Y. Hida, J. Iskandar, W. Kahan, A. Kapur, M. Martin, T. Tung, and D. J. Yoo. Design, implementation and testing of extended and mixed precision BLAS. ACM Transactions on Mathematical Software, 28(2):152–205, 2002.

    Article  MathSciNet  Google Scholar 

  43. C. Lichtenau, S. Carlough, and S. M. Mueller. Quad precision floating point on the IBM z13TM. 23rd IEEE Symposium on Computer Arithmetic (ARITH-23), pages 87–94, 2016.

    Google Scholar 

  44. T. Mulders. On short multiplications and divisions. Applicable Algebra in Engineering, Communication and Computing, 11(1):69–88, 2000.

    Article  MathSciNet  Google Scholar 

  45. J.-M. Muller, V. Popescu, and P. T. P. Tang. A new multiplication algorithm for extended precision using floating-point expansions. In 23nd IEEE Symposium on Computer Arithmetic (ARITH-23), pages 39–46, July 2016.

    Google Scholar 

  46. P. Pélissier and P. Zimmermann. The DPE library. Available at http://www.loria.fr/~zimmerma/free/dpe-1.4.tar.gz.

  47. S. Pion. De la Géométrie Algorithmique au Calcul Géométrique. Ph.D. thesis, Université de Nice Sophia-Antipolis, France, November 1999. In French.

    Google Scholar 

  48. V. Popescu. Towards fast and certified multiple-precision libraries. Ph.D. thesis, Université de Lyon, 2017. Available at https://hal.archives-ouvertes.fr/tel-01534090.

  49. D. M. Priest. Algorithms for arbitrary precision floating point arithmetic. In 10th IEEE Symposium on Computer Arithmetic (ARITH-10), pages 132–143, June 1991.

    Google Scholar 

  50. D. M. Priest. On Properties of Floating-Point Arithmetics: Numerical Stability and the Cost of Accurate Computations. Ph.D. thesis, University of California at Berkeley, 1992.

    Google Scholar 

  51. S. M. Rump. Ultimately fast accurate summation. SIAM Journal on Scientific Computing, 31(5):3466–3502, 2009.

    Article  MathSciNet  Google Scholar 

  52. S. M. Rump, T. Ogita, and S. Oishi. Accurate floating-point summation part I: Faithful rounding. SIAM Journal on Scientific Computing, 31(1):189–224, 2008.

    Article  MathSciNet  Google Scholar 

  53. E. Salamin. Computation of π using arithmetic-geometric mean. Mathematics of Computation, 30:565–570, 1976.

    MathSciNet  MATH  Google Scholar 

  54. A. Schönhage. Schnelle Berechnung von Kettenbruchentwicklungen. Acta Informatica, 1:139–144, 1971. In German.

    Article  Google Scholar 

  55. A. Schönhage, A. F. W. Grotefeld, and E. Vetter. Fast algorithms: a Multitape Turing Machine Implementation. Bibliographisches Institut, Mannheim, 1994.

    Google Scholar 

  56. A. Schönhage and V. Strassen. Schnelle Multiplikation grosser Zahlen. Computing, 7:281–292, 1971. In German.

    Article  MathSciNet  Google Scholar 

  57. J. R. Shewchuk. Adaptive precision floating-point arithmetic and fast robust geometric predicates. Discrete Computational Geometry, 18:305–363, 1997.

    Article  MathSciNet  Google Scholar 

  58. V. Shoup. NTL, a library for doing number theory, version 10.5.0. http://shoup.net/ntl/, 2017.

  59. A. L. Toom. The complexity of a scheme of functional elements realizing the multiplication of integers. Soviet Mathematics Doklady, 3:714–716, 1963.

    MATH  Google Scholar 

  60. D. Zuras. More on squaring and multiplying large integers. IEEE Transactions on Computers, 43(8):899–908, 1994.

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Muller, JM. et al. (2018). Extending the Precision. In: Handbook of Floating-Point Arithmetic. Birkhäuser, Cham. https://doi.org/10.1007/978-3-319-76526-6_14

Download citation

Publish with us

Policies and ethics