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.
- E. T. Barr, T. Vo, V. Le, and Z. Su. Automatic detection of floating-point exceptions. In POPL, pages 549–560, 2013. Google Scholar
Digital Library
- F. Benz, A. Hildebrandt, and S. Hack. A dynamic program analysis to find floating-point accuracy problems. In PLDI, pages 453–462, 2012. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- E. Darulova and V. Kuncak. Sound compilation of reals. In POPL, pages 235–248, 2014. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- D. Goldberg. What every computer scientist should know about floating point arithmetic. ACM Computing Surveys, 23 (1):5–48, 1991. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- L. Haller, A. Griggio, M. Brain, and D. Kroening. Deciding floating-point logic with systematic abstraction. In FMCAD, pages 131–140, 2012.Google Scholar
- J. Harrison. Floating-point verification in HOL Light: the exponential function. Formal Methods in System Design, 16 (3):271–305, 2000. Google Scholar
Digital Library
- J. Harrison. Formal verification of floating point trigonometric functions. In FMCAD, pages 217–233, 2000. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Miné. Abstract domains for bit-level machine integer and floating-point operations. In ATx/WInG, pages 55–70, 2012.Google Scholar
- S. Misailovic, D. M. Roy, and M. C. Rinard. Probabilistically accurate program transformations. In SAS, pages 316–333, 2011. Google Scholar
Digital Library
- D. Monniaux. The pitfalls of verifying floating-point computations. ACM Transactions on Programming Languages and Systems, 30(3):12:1–12:41, 2008. Google Scholar
Digital Library
- G. C. Necula and S. Gulwani. Randomized algorithms for program analysis and verification. In CAV, page 1, 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- E. Schkufza, R. Sharma, and A. Aiken. Stochastic optimization of floating-point programs using tunable precision. In PLDI, pages 53–64, 2014. Google Scholar
Digital Library
- 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 Scholar
Cross Ref
Index Terms
Verifying bit-manipulations of floating-point
Recommendations
Verifying bit-manipulations of floating-point
PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and ImplementationReasoning 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 ...
A Combined Decimal and Binary Floating-Point Multiplier
ASAP '09: Proceedings of the 2009 20th IEEE International Conference on Application-specific Systems, Architectures and ProcessorsIn this paper, we describe the first hardware design of a combined binary and decimal floating-point multiplier, based on specifications in the IEEE 754-2008 Floating-point Standard. The multiplier design operates on either (1) 64-bit binary encoded ...
A Decimal Floating-Point Divider Using Newton---Raphson Iteration
Increasing chip densities and transistor counts provide more room for designers to add functionality for important application domains into future microprocessors. As a result of rapid growth in financial, commercial, and Internet-based applications, ...







Comments