Detecting Floating-Point Errors via Atomic Conditions
- Daming Zou,
- Muhan Zou,
- Yiingfei Xiong,
- Zhoulai Fu,
- Lu Zhang,
- Zhendong Su
- Peking University,
- ,
- Swiss Federal Institute of Technology Zürich
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOpen access
Publication Information
Output type
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOriginal language
EnglishArticle number
60Publication milestones
- Published - 2019
Publication status
Published - 2019
Publisher
Association for Computing Machinery, United StatesPublication IDs
- Scopus: 85088917355
Host publication title
47th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2020)Abstract
This paper tackles the important, difficult problem of detecting program inputs that trigger large floating-point errors in numerical code. It introduces a novel, principled dynamic analysis that leverages the mathematically rigorously analyzed condition numbers for atomic numerical operations, which we call atomic conditions, to effectively guide the search for large floating-point errors. Compared with existing approaches, our work based on atomic conditions has several distinctive benefits: (1) it does not rely on high-precision implementations to act as approximate oracles, which are difficult to obtain in general and computationally costly; and (2) atomic conditions provide accurate, modular search guidance. These benefits in combination lead to a highly effective approach that detects more significant errors in real-world code (e.g., widely-used numerical library functions) and achieves several orders of speedups over the state-of-the-art, thus making error analysis significantly more practical. We expect the methodology and principles behind our approach to benefit other floating-point program analysis tasks such as debugging, repair and synthesis. To facilitate the reproduction of our work, we have made our implementation, evaluation data and results publicly available on GitHub at https://github.com/FP-Analysis/atomic-condition.
Publication metrics
PlumX, opens in new tab
Captures
25
Citations
40
Access to documents
Final published version, 595.56 KB
License:CC BY-NC-SA, opens in new tab
