Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Formalization of Double-Word Arithmetic, and Comments on “Tight and Rigorous Error Bounds for Basic Building Blocks of Double-Word Arithmetic”

Published: 16 February 2022 Publication History

Abstract

Recently, a complete set of algorithms for manipulating double-word numbers (some classical, some new) was analyzed [16]. We have formally proven all the theorems given in that article, using the Coq proof assistant. The formal proof work led us to: (i) locate mistakes in some of the original paper proofs (mistakes that, however, do not hinder the validity of the algorithms), (ii) significantly improve some error bounds, and (iii) generalize some results by showing that they are still valid if we slightly change the rounding mode. The consequence is that the algorithms presented in [16] can be used with high confidence, and that some of them are even more accurate than what was believed before. This illustrates what formal proof can bring to computer arithmetic: beyond mere (yet extremely useful) verification, correction, and consolidation of already known results, it can help to find new properties. All our formal proofs are freely available.

References

[1]
Sylvie Boldo, Jacques-Henri Jourdan, Xavier Leroy, and Guillaume Melquiond. 2015. Verified compilation of floating-point computations. Journal of Automated Reasoning 54, 2 (2015), 135–163. https://doi.org/10.1007/s10817-014-9317-x
[2]
Sylvie Boldo, Catherine Lelay, and Guillaume Melquiond. 2016. Formalization of real analysis: A survey of proof assistants and libraries. Mathematical Structures in Computer Science 26, 7 (2016), 1196–1233. Retrieved from http://hal.inria.fr/hal-00806920.
[3]
Sylvie Boldo and Guillaume Melquiond. 2011. Flocq: A unified library for proving floating-point algorithms in Coq. In Proceedings of the 20th IEEE Symposium on Computer Arithmetic, 243–252. https://doi.org/10.1109/ARITH.2011.40
[4]
Sylvie Boldo and Guillaume Melquiond. 2017. Computer Arithmetic and Formal Proofs. ISTE Press – Elsevier.
[5]
Tim Coe and Ping Tak Peter Tang. 1995. It takes six ones to reach a flaw. In Proceedings of the 12th IEEE Symposium on Computer Arithmetic, 140–146. https://doi.org/10.1109/ARITH.1995.465365
[6]
Marc Daumas, Laurence Rideau, and Laurent Théry. 2001. A generic library of floating-point numbers and its application to exact computing. In Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics, 169–184.
[7]
Florent de Dinechin, Alexey V. Ershov, and Nicolas Gast. 2005. Towards the Post-Ultimate libm. In Proceedings of the 17th IEEE Symposium on Computer Arithmetic, 288–295. https://doi.org/10.1109/ARITH.2005.46
[8]
Theodorus J. Dekker. 1971. A floating-point technique for extending the available precision. Numerische Mathematik 18, 3 (1971), 224–242.
[9]
John Harrison. 1997. Floating-Point Verification in HOL Light: The Exponential Function. Technical Report 428. University of Cambridge Computer Laboratory.
[10]
John Harrison. 1999. A machine-checked theory of floating point arithmetic. In Proceedings of the 12th International Conference in Theorem Proving in Higher Order Logics. Y. Bertot, G. Dowek, L. Théry, A. Hirschowitz, C. Paulin (Eds.), Lecture Notes in Computer Science, Vol. 1690. Springer-Verlag, Berlin, 113–130.
[11]
Yozo Hida, Xiaoye S. Li, and David H. Bailey. 2001. Algorithms for quad-double precision floating-point arithmetic. In Proceedings of the 15th IEEE Symposium on Computer Arithmetic, 155–162. https://doi.org/10.1109/ARITH.2001.930115
[12]
Yozo Hida, Xiaoye S. Li, and David H. Bailey. 2012. C++/Fortran-90 double-double and quad-double package. Retrieved March 2, 2017 from http://crd-legacy.lbl.gov/dhbailey/mpdist/.
[13]
IEEE. 2019. IEEE standard for floating-point arithmetic. IEEE Std 754-2019 (Revision of IEEE 754-2008) (July 2019), 1–84. Retrieved December 7, 2021 from https://doi.org/10.1109/IEEESTD.2019.8766229
[14]
Konstantin Isupov. 2020. Performance data of multiple-precision scalar and vector BLAS operations on CPU and GPU. Data in Brief 30 (2020), 105506. https://doi.org/10.1016/j.dib.2020.105506
[15]
Claude-Pierre Jeannerod and Siegfried M. Rump. 2018. On relative errors of floating-point operations: Optimal bounds and applications. Mathematics of Computation 87, 310 (2018), 803–819. https://doi.org/10.1090/mcom/3234
[16]
Mioara Joldeş, Jean-Michel Muller, and Valentina Popescu. 2017. Tight and rigourous error bounds for basic building blocks of double-word arithmetic. ACM Transactions on Mathematical Software 44, 2 (2017), 27 pages. https://doi.org/10.1145/3121432
[17]
Mioara Joldeş, Jean-Michel Muller, Valentina Popescu, and Warwick Tucker. 2016. CAMPARY: Cuda multiple precision arithmetic library and applications. In Proceedings of the 5th International Congress on Mathematical Software.GM. Greuel, T. Koch, P. Paule, A. Sommese (Eds.), Lecture Notes in Computer Science, Vol. 9725, 232–240. Retrieved from https://hal.archives-ouvertes.fr/hal-01312858.
[18]
William M. Kahan. 1997. Lecture Notes on the Status of IEEE-754. (1997). Retrieved from http://www.cs.berkeley.edu/wkahan/ieee754status/IEEE754.PDF.
[19]
Donald E. Knuth. 1998. The Art of Computer Programming (3rd ed.). Vol. 2. Addison-Wesley, Reading, MA.
[20]
Xiaoye S. Li, James Demmel, David H. Bailey, Greg Henry, Yozo Hida, Jimmy Iskandar, William Kahan, Suh Y. Kang, Anil Kapur, Michael C. Martin, Brandon J. Thompson, Teresa Tung, and Daniel J. Yoo. 2002. Design, implementation and testing of extended and mixed precision BLAS. ACM Transactions on Mathematical Software 28, 2 (2002), 152–205.
[21]
Xiaoye S. Li, James Demmel, David H. Bailey, Greg Henry, Yozo Hida, Jimmy Iskandar, William Kahan, Anil Kapur, Michael C. Martin, Teresa Tung, and Daniel J. Yoo. 2000. Design, Implementation and Testing of Extended and Mixed Precision BLAS. Technical Report 45991. Lawrence Berkeley National Laboratory. Retrieved from https://www.davidhbailey.com/dhbpapers/xblas-report.pdf.
[22]
Ole Møller. 1965. Quasi double-precision in floating-point addition. BIT 5, 1 (1965), 37–50.
[23]
J. Strother Moore, Tom Lynch, and Matt Kaufmann. 1998. A mechanically checked proof of the correctness of the kernel of the AMD5K86 floating point division algorithm. IEEE Transactions on Computers 47, 9 (Sept. 1998), 913–926.
[24]
Jean-Michel Muller, Nicolas Brisebarre, Florent de Dinechin, Claude-Pierre Jeannerod, Vincent Lefèvre, Guillaume Melquiond, Nathalie Revol, Damien Stehlé, and Serge Torres. 2010. Handbook of Floating-Point Arithmetic. Birkhäuser Boston. 572 pages.
[25]
Yves Nievergelt. 2003. Scalar fused multiply-add instructions produce floating-point matrix arithmetic provably accurate to the penultimate digit. ACM Transactions on Mathematical Software 29, 1 (2003), 27–48.
[26]
Takeshi Ogita, Siegfried M. Rump, and Shin’ichi Oishi. 2005. Accurate sum and dot product. SIAM Journal on Scientific Computing 26, 6 (2005), 1955–1988. https://doi.org/10.1137/030601818
[27]
Jason Riedy and James Demmel. 2018. Augmented arithmetic operations proposed for IEEE-754 2018. In Proceedings of the 25th IEEE Symposium on Computer Arithmetic, 45–52. https://doi.org/10.1109/ARITH.2018.8464813
[28]
Jonathan R. Shewchuk. 1997. Adaptive precision floating-point arithmetic and fast robust geometric predicates. Discrete Computational Geometry 18, 3 (1997), 305–363. https://doi.org/10.1007/PL00009321

Cited By

View all
  • (2024)VCFloat2: Floating-Point Error Analysis in CoqProceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3636501.3636953(14-29)Online publication date: 9-Jan-2024
  • (2024)Useful applications of correctly-rounded operators of the form ab + cd + e2024 IEEE 31st Symposium on Computer Arithmetic (ARITH)10.1109/ARITH61463.2024.00015(32-39)Online publication date: 10-Jun-2024
  • (2023)Accurate Calculation of Euclidean Norms Using Double-word ArithmeticACM Transactions on Mathematical Software10.1145/356867249:1(1-34)Online publication date: 21-Mar-2023
  • Show More Cited By

Index Terms

  1. Formalization of Double-Word Arithmetic, and Comments on “Tight and Rigorous Error Bounds for Basic Building Blocks of Double-Word Arithmetic”

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Transactions on Mathematical Software
      ACM Transactions on Mathematical Software  Volume 48, Issue 1
      March 2022
      320 pages
      ISSN:0098-3500
      EISSN:1557-7295
      DOI:10.1145/3505199
      Issue’s Table of Contents

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 16 February 2022
      Accepted: 01 August 2021
      Revised: 01 May 2021
      Received: 01 October 2020
      Published in TOMS Volume 48, Issue 1

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Floating-point arithmetic
      2. double-word arithmetic
      3. double-double arithmetic
      4. formalization
      5. proof assistant
      6. Coq

      Qualifiers

      • Research-article
      • Refereed

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)67
      • Downloads (Last 6 weeks)4
      Reflects downloads up to 01 Sep 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)VCFloat2: Floating-Point Error Analysis in CoqProceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3636501.3636953(14-29)Online publication date: 9-Jan-2024
      • (2024)Useful applications of correctly-rounded operators of the form ab + cd + e2024 IEEE 31st Symposium on Computer Arithmetic (ARITH)10.1109/ARITH61463.2024.00015(32-39)Online publication date: 10-Jun-2024
      • (2023)Accurate Calculation of Euclidean Norms Using Double-word ArithmeticACM Transactions on Mathematical Software10.1145/356867249:1(1-34)Online publication date: 21-Mar-2023
      • (2023)SCR-LIBM: A Correctly Rounded Elementary Function Library in Double-PrecisionInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819402350067534:04(675-703)Online publication date: 7-Dec-2023

      View Options

      Get Access

      Login options

      Full Access

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Full Text

      View this article in Full Text.

      Full Text

      HTML Format

      View this article in HTML Format.

      HTML Format

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media