Skip to main content

A Generic Library for Floating-Point Numbers and Its Application to Exact Computing

  • Conference paper
  • First Online:
Book cover Theorem Proving in Higher Order Logics (TPHOLs 2001)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2152))

Included in the following conference series:

Abstract

In this paper we present a general library to reason about floating-point numbers within the Coq system. Most of the results of the library are proved for an arbitrary floating-point format and an arbitrary base. A special emphasis has been put on proving properties for exact computing, i.e. computing without rounding errors.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. David H. Bailey, Robert Krasny, and Richard Pelz. Multiple precision, multiple processor vortex sheet roll-up computation. In Proceedings of the Sixth SIAM Conference on Parallel Processing for Scientific Computing, pages 52–56, Philadelphia, Pennsylvania, 1993.

    Google Scholar 

  2. Geoff Barrett. Formal Methods Applied to a Floating-Point Number System. IEEE Transactions on Software Engineering, 15(5):611–621, 1989.

    Article  Google Scholar 

  3. Yves Bertot, Gilles Dowek, André Hirschowitz, Christine Paulin, and Laurent Théry, editors. Theorem Proving in Higher Order Logics: 12th International Conference, TPHOLs’99, number 1690 in LNCS, Nice, France, September 1999. Springer-Verlag.

    MATH  Google Scholar 

  4. Gerd Bohlender, Wolfgang Walter, Peter Kornerup, and David W. Matula. Semantics for exact floating point operations. In Peter Kornerup and David W. Matula, editors, Proceedings of the 10th Symposium on Computer Arithmetic, pages 22–26, Grenoble, France, 1991. IEEE Computer Society Press.

    Google Scholar 

  5. C. Burnikel, R. Fleischer, K. Mehlhorn, and S. Schirra. Efficient exact geometric computation made easy. In Proceedings of the 15th Annual ACM Symposium on Computational Geometry, pages 341–350, Miami, Florida, 1999.

    Google Scholar 

  6. William J. Cody. Static and dynamic numerical characteristics of floating point arithmetic. IEEE Transactions on Computers, 22(6):598–601, 1973.

    Article  MATH  Google Scholar 

  7. William J. Cody, Richard Karpinski, et al. A proposed radix and word-length independent standard for floating point arithmetic. IEEE Micro, 4(4):86–100, 1984.

    Article  Google Scholar 

  8. Marc Daumas. Multiplications of floating point expansions. In Israel Koren and Peter Kornerup, editors, Proceedings of the 14th Symposium on Computer Arithmetic, pages 250–257, Adelaide, Australia, 1999.

    Google Scholar 

  9. Marc Daumas and Claire 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 

  10. Marc Daumas and Philippe Langlois. Additive symmetric: the non-negative case. Theoretical Computer Science, 2002.

    Google Scholar 

  11. T. J. Dekker. A Floating-Point Technique for Extending the Available Precision. Numerische Mathematik, 18(03):224–242, 1971.

    Article  MATH  MathSciNet  Google Scholar 

  12. Jean-Christophe Filliâtre. Proof of Imperative Programs in Type Theory. In International Workshop, TYPES’ 98, Kloster Irsee, Germany, number 1657 in LNCS. Springer-Verlag, March 1998.

    Google Scholar 

  13. David Goldberg. What every computer scientist should know about floating point arithmetic. ACM Computing Surveys, 23(1):5–47, 1991.

    Article  Google Scholar 

  14. Michael J. C. Gordon and Thomas F. Melham. Introduction to HOL: a theorem proving environment for higher-order logic. Cambridge University Press, 1993.

    Google Scholar 

  15. Tobjörn Granlund. The GNU multiple precision arithmetic library, 2000. Version 3.1.

    Google Scholar 

  16. John Harrison. A Machine-Checked Theory of Floating Point Arithmetic. In Gilles Dowek, André Hirschowitz, Christine Paulin, and Laurent Théry, editors. Theorem Proving in Higher Order Logics: 12th International Conference, TPHOLs’99, number 1690 in LNCS, Nice, France, September 1999. Springer-Verlag. Bertot et al. [3]}, pages 113–130.

    Chapter  Google Scholar 

  17. Nicholas J. Higham. Accuracy and stability of numerical algorithms. SIAM, 1996.

    Google Scholar 

  18. Gérard Huet, Gilles Kahn, and Christine Paulin-Mohring. The Coq Proof Assistant: A Tutorial: Version 6.1. Technical Report 204, INRIA, 1997.

    Google Scholar 

  19. V. Karamcheti, C. Li, I. Pechtchanski, and Chee Yap. A core library for robust numeric and geometric computation. In Proceedings of the 15th Annual ACM Symposium on Computational Geometry, pages 351–359, Miami, Florida, 1999.

    Google Scholar 

  20. Richard Karpinski. PARANOIA: a floating-point benchmark. Byte, 10(2):223–235, 1985.

    Google Scholar 

  21. Matt Kaufmann, Panagiotis Manolios, and J Strother Moore. Computer-Aided Reasoning: An Approach. advances in formal methods. Kluwer Academic Publishers, 2000.

    Google Scholar 

  22. Donald E. Knuth. The art of computer programming: Seminumerical Algorithms. Addison Wesley, 1973. Second edition.

    Google Scholar 

  23. Michael A. Malcolm. Algorithms to reveal properties of floating-Point Arithmetic. Communications of the ACM, 15(11):949–951, 1972.

    Article  Google Scholar 

  24. Micaela Mayero. The Three Gap Theorem: Specification and Proof in Coq. Technical Report 3848, INRIA, 1999.

    Google Scholar 

  25. Paul S. Miner. Defining the IEEE-854 floating-point standard in pvs. Technical Memorandum 110167, NASA, Langley Research Center, 1995.

    Google Scholar 

  26. Ole Møller. Note on quasi double-precision. BIT, 5(4):251–255, 1965.

    Article  Google Scholar 

  27. Ole Møller. Quasi double-precision in floating point addition. BIT, 5(1):37–50, 1965.

    Article  MATH  Google Scholar 

  28. Douglas M. Priest. On Properties of Floating Point Arithmetics: Numerical Stability and the Cost of Accurate. Phd, U.C. Berkeley, 1993.

    Google Scholar 

  29. John F. Reiser and Donald E. Knuth. Evading the drift in floating point addition. Information Processing Letter, 3(3):84–87, 1975.

    Article  MATH  Google Scholar 

  30. John M. Rushby, Natajaran Shankar, and Mandayam Srivas. PVS: Combining specification, proof checking, and model checking. In CAV’ 96, volume 1102 of LNCS. Springer-Verlag, July 1996.

    Google Scholar 

  31. David M. Russinoff. A Mechanically Checked Proof of IEEE Compliance of the AMD K5 Floating-Point Square Root Microcode. Formal Methods in System Design, 14(1):75–125, January 1999.

    Google Scholar 

  32. Jonathan Richard Shewchuk. Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates. Discrete & Computational Geometry, 18(03):305–363, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  33. Mike J. Spivey. Understanding Z: A Specification Language and its Formal Semantics. Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1988.

    Google Scholar 

  34. Pat H. Sterbenz. Floating point computation. Prentice Hall, 1974.

    Google Scholar 

  35. David Stevenson et al. An american national standard: IEEE standard for binary floating point arithmetic. ACM SIGPLAN Notices, 22(2):9–25, 1987.

    Google Scholar 

  36. Markus Wenzel. A Generic Interpretative Approach to Readable Formal Proof Documents. In Gilles Dowek, André Hirschowitz, Christine Paulin, and Laurent Théry, editors. Theorem Proving in Higher Order Logics: 12th International Conference, TPHOLs’99, number 1690 in LNCS, Nice, France, September 1999. Springer-Verlag. Bertot et al. [3]}, pages 167–184.

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Daumas, M., Rideau, L., Théry, L. (2001). A Generic Library for Floating-Point Numbers and Its Application to Exact Computing. In: Boulton, R.J., Jackson, P.B. (eds) Theorem Proving in Higher Order Logics. TPHOLs 2001. Lecture Notes in Computer Science, vol 2152. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44755-5_13

Download citation

  • DOI: https://doi.org/10.1007/3-540-44755-5_13

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42525-0

  • Online ISBN: 978-3-540-44755-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics