Eiffel: Inferring Input Ranges of Significant Floating-point Errors via Polynomial Extrapolation

Abstract

Existing search heuristics used to find input values that result in significant floating-point (FP) errors or small ranges that cover them are accompanied by severe constraints, complicating their implementation and restricting their general applicability. This paper introduces an error analysis tool called Eiffel to infer error-inducing input ranges instead of searching them. Given an FP expression with its domain D , Eiffel first constructs an error data set by sampling values across a smaller domain R and assembles these data into clusters. If more than two clusters are formed, Eiffel derives polynomial curves that best fit the bound coordinates of the error-inducing ranges in R , extrapolating them to infer all target ranges of D and reporting the maximal error. Otherwise, Eiffel simply returns the largest error across R . Experimental results show that Eiffel exhibits a broader applicability than Atomu and S3 FP by successfully detecting the errors of all 70 considered benchmarks while the two baselines only report errors for part of them. By taking as input the inferred ranges of Eiffel, Herbie obtains an average accuracy improvement of 3.35 bits and up to 53.3 bits.

Publication
In Proceedings of the 38th IEEE/ACM International Conference on Automated Software Engineering