skip to main content
article
Public Access

Verifying bit-manipulations of floating-point

Published:02 June 2016Publication History
Skip Abstract Section

Abstract

Reasoning about floating-point is difficult and becomes only more so if there is an interplay between floating-point and bit-level operations. Even though real-world floating-point libraries use implementations that have such mixed computations, no systematic technique to verify the correctness of the implementations of such computations is known. In this paper, we present the first general technique for verifying the correctness of mixed binaries, which combines abstraction, analytical optimization, and testing. The technique provides a method to compute an error bound of a given implementation with respect to its mathematical specification. We apply our technique to Intel's implementations of transcendental functions and prove formal error bounds for these widely used routines.

References

  1. E. T. Barr, T. Vo, V. Le, and Z. Su. Automatic detection of floating-point exceptions. In POPL, pages 549–560, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. F. Benz, A. Hildebrandt, and S. Hack. A dynamic program analysis to find floating-point accuracy problems. In PLDI, pages 453–462, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. H. Chen, A. Choudhary, B. de Supinski, M. DeVries, E. R. Hawkes, S. Klasky, W. K. Liao, K. L. Ma, J. Mellor-Crummey, N. Podhorszki, R. Sankaran, S. Shende, and C. S. Yoo. Terascale direct numerical simulations of turbulent combustion using S3D. Computational Science and Discovery, page 015001, 2009.Google ScholarGoogle Scholar
  4. W.-F. Chiang, G. Gopalakrishnan, Z. Rakamaric, and A. Solovyev. Efficient search for inputs causing high floatingpoint errors. In PPOPP, pages 43–52, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. Darulova and V. Kuncak. Sound compilation of reals. In POPL, pages 235–248, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Daumas and G. Melquiond. Certification of bounds on expressions involving rounded operators. ACM Transactions on Mathematical Software, 37(1):2:1–2:20, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Delmas, E. Goubault, S. Putot, J. Souyris, K. Tekkal, and F. Védrine. Towards an industrial use of FLUCTUAT on safety-critical avionics software. In FMICS, pages 53–69, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Goldberg. What every computer scientist should know about floating point arithmetic. ACM Computing Surveys, 23 (1):5–48, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. Goubault, S. Putot, P. Baufreton, and J. Gassino. Static analysis of the accuracy in control systems: Principles and experiments. In FMICS, pages 3–20, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. L. Haller, A. Griggio, M. Brain, and D. Kroening. Deciding floating-point logic with systematic abstraction. In FMCAD, pages 131–140, 2012.Google ScholarGoogle Scholar
  11. J. Harrison. Floating-point verification in HOL Light: the exponential function. Formal Methods in System Design, 16 (3):271–305, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Harrison. Formal verification of floating point trigonometric functions. In FMCAD, pages 217–233, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Harrison, T. Kubaska, S. Story, and P. T. P. Tang. The computation of transcendental functions on the IA-64 architecture. Intel Technology Journal, 4:234–251, 1999.Google ScholarGoogle Scholar
  14. K. Lakhotia, N. Tillmann, M. Harman, and J. de Halleux. FloPSy - search-based floating point constraint solving for symbolic execution. In ICTSS, pages 142–157, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Leeser, S. Mukherjee, J. Ramachandran, and T. Wahl. Make it real: Effective floating-point reasoning via exact arithmetic. In DATE, pages 1–4, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Miné. Abstract domains for bit-level machine integer and floating-point operations. In ATx/WInG, pages 55–70, 2012.Google ScholarGoogle Scholar
  17. S. Misailovic, D. M. Roy, and M. C. Rinard. Probabilistically accurate program transformations. In SAS, pages 316–333, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Monniaux. The pitfalls of verifying floating-point computations. ACM Transactions on Programming Languages and Systems, 30(3):12:1–12:41, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. G. C. Necula and S. Gulwani. Randomized algorithms for program analysis and verification. In CAV, page 1, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. P. Panchekha, A. Sanchez-Stern, J. R. Wilcox, and Z. Tatlock. Automatically improving accuracy for floating point expressions. In PLDI, pages 1–11, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Rubio-González, C. Nguyen, H. D. Nguyen, J. Demmel, W. Kahan, K. Sen, D. H. Bailey, C. Iancu, and D. Hough. Precimonious: Tuning assistant for floating-point precision. In SC, page 27, 2013.Google ScholarGoogle Scholar
  22. E. Schkufza, R. Sharma, and A. Aiken. Stochastic optimization of floating-point programs using tunable precision. In PLDI, pages 53–64, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. Solovyev, C. Jacobsen, Z. Rakamaric, and G. Gopalakrishnan. Rigorous estimation of floating-point round-off errors with symbolic taylor expansions. In FM, pages 532–550, 2015.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Verifying bit-manipulations of floating-point

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!