Results

**1 - 3**of**3**### Generating Test Cases inside Suspicious Intervals for Floating-Point Number Programs∗

"... Programs with floating-point computations are often derived from mathematical models or designed with the semantics of the real numbers in mind. However, for a given input, the computed path with floating-point numbers may dif-fer from the path corresponding to the same computation with real numbers ..."

Abstract
- Add to MetaCart

(Show Context)
Programs with floating-point computations are often derived from mathematical models or designed with the semantics of the real numbers in mind. However, for a given input, the computed path with floating-point numbers may dif-fer from the path corresponding to the same computation with real numbers. State-of-the-art tools compute an over-approximation of the error introduced by floating-point oper-ations with respect to the same sequence of operations in an idealized semantics of real numbers. Thus, totally inappropri-ate behaviors of a program may be dreaded but the developer does not know whether these behaviors will actually occur, or not. We introduce here a new constraint-based approach that searches for input values hitting the part of the over-approximation where errors due to floating-point arithmetic would lead to inappropriate behaviors. Preliminary results of experiments on small programs with classical floating-point errors are very encouraging.

### On Numerical Error Propagation with Sensitivity

"... An emerging area of research is to automatically compute reasonably precise upper bounds on numerical errors including roundoffs. Previous approaches for this task are limited in their precision and scalability, especially in the presence of branches and loops. We argue that one reason for these lim ..."

Abstract
- Add to MetaCart

(Show Context)
An emerging area of research is to automatically compute reasonably precise upper bounds on numerical errors including roundoffs. Previous approaches for this task are limited in their precision and scalability, especially in the presence of branches and loops. We argue that one reason for these limitations is the focus of past approaches on approximating errors of individual reachable states. We propose instead a more relational and modular approach to analysis that characterizes analytically the input/output behavior of code fragments and reuses this characterization to reason about larger code fragments. We use the derivatives of the functions corresponding to program paths to capture a program’s sensitivity to input changes. To apply this approach for finite-precision code, we decouple the computation of newly introduced roundoff errors from the amplification of existing errors. This enables us to precisely and efficiently account for propagation of errors through long-running computation. Using this approach we implemented an analysis for programs containing nonlinear computation, conditionals, and loops. In the presence of loops our approach can find closed-form symbolic invariants capturing upper bounds on numerical errors, even when the error grows with the number of iterations. We evaluate our system on a number of benchmarks from embedded systems and scientific computation, showing substantial improvements in precision and scalability over the state of the art. 1.

### Generating Test Cases inside Suspicious Intervals for Floating-Point Number Programs∗

, 2015

"... number programs ..."

(Show Context)