Search papers, labs, and topics across Lattice.
FPScan combines abstract interpretation and constraint solving to formally detect catastrophic cancellation and absorption anomalies in floating-point programs. Identifying these specific failure modes is critical because standard static analyzers focus on general error bounding, frequently missing local operations where rounding errors drastically diverge from real-number semantics. Evaluated across the FPBench suite, the tool successfully identifies precision-destroying numerical traps while maintaining competitive analysis times and soundness against existing verification baselines.
Silent numerical bugs like catastrophic cancellation can quietly corrupt training pipelines and custom kernels, but FPScan exposes them automatically by compiling magnitude-aware error propagation directly into first-order SMT queries.
Writing error-free floating-point programs is a challenging task, especially for programmers who lack a strong background in numerical analysis and rounding-error propagation. State-of-the-art techniques typically aim to bound such errors using static or dynamic analysis. However, only a few tools explicitly address critical floating-point pitfalls such as absorption and catastrophic cancellation. These anomalies represent situations in which rounding errors are significantly amplified, causing the semantics of the finite-precision computation to deviate substantially from the real-number semantics. In this article, we present FPScan, a novel tool to formally define and detect both catastrophic cancellation and absorption in floating-point programs. Our approach starts with a custom static analyzer based on abstract interpretation to infer the order of magnitude of all program variables. This magnitude information is then used to build a set of first-order constraints that model error propagation and numerical precision within the program. Finally, we employ an off-the-shelf SMT solver to determine whether the program exhibits any of these critical numerical pitfalls. Experiments were conducted on FPBench, a well-known benchmark suite of floating-point programs, to evaluate the effectiveness of our tool. We also present a comparison with state-of-the-art tools regarding soundness and analysis time.