Efficient generation of error-inducing floating-point inputs via symbolic execution
Hui Guo, Cindy Rubio-González
Abstract
Floating point is widely used in software to emulate arithmetic over reals. Unfortunately, floating point leads to rounding errors that propagate and accumulate during execution. Generating inputs to maximize the numerical error is critical when evaluating the accuracy of floating-point code. In this paper, we formulate the problem of generating high error-inducing floating-point inputs as a code coverage maximization problem solved using symbolic execution. Specifically, we define inaccuracy checks to detect large precision loss and cancellation. We inject these checks at strategic program locations to construct specialized branches that, when covered by a given input, are likely to lead to large errors in the result. We apply symbolic execution to generate inputs that exercise these specialized branches, and describe optimizations that make our approach practical. We implement a tool named FPGen and present an evaluation on 21 numerical programs including matrix computation and statistics libraries. We show that FPGen exposes errors for 20 of these programs and triggers errors that are, on average, over 2 orders of magnitude larger than the state of the art.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 25fb8e71-6e28-4236-adcc-c01df263b514Cited by top-tier papers9
- Predoo: precision testing of deep learning operatorsXufan Zhang, Ning Sun, Chunrong Fang, Jiawei Liu et al.ISSTA 2021 · 52 citations
- Parallel shadow execution to accelerate the debugging of numerical errorsSangeeta Chowdhary, Santosh NagarakatteFSE 2021 · 21 citations
- HeteroFuzz: fuzz testing to detect platform dependent divergence for heterogeneous applicationsQian Zhang, Jiyuan Wang, Miryung KimFSE 2021 · 16 citations
- pLiner: isolating lines of floating-point code for compiler-induced variabilityHui Guo, Ignacio Laguna, Cindy Rubio-GonzálezSC 2020 · 15 citations
- Finding Inputs that Trigger Floating-Point Exceptions in GPUs via Bayesian OptimizationIgnacio Laguna, Ganesh GopalakrishnanSC 2022 · 10 citations
Related papers
- FPCC: Detecting Floating-Point Errors via Chain ConditionsXin Yi, Hengbiao Yu, Liqian Chen, Xiaoguang Mao et al.OOPSLA 2024 · 7 citations
- Mathematically-Guided Detection of Floating-Point ErrorsYoushuai Tan, Zhanwei Zhang, Haonan Zhang, Lianyu Zheng et al.ISSTA 2026
- FPBOXer: Efficient Input-Generation for Targeting Floating-Point Exceptions in GPU ProgramsAnh Tran, Ignacio Laguna, Ganesh GopalakrishnanHPDC 2024 · 3 citations
- Design and Evaluation of GPU-FPX: A Low-Overhead tool for Floating-Point Exception Detection in NVIDIA GPUsXinyi Li, Ignacio Laguna, Bo Fang, Katarzyna Swirydowicz et al.HPDC 2023 · 12 citations
- Lightweight Concolic Testing via Path-Condition Synthesis for Deep Learning LibrariesSehoon Kim, Yonghyeon Kim, Dahyeon Park, Yuseok Jeon et al.ICSE 2025 · 5 citations
