  Roundoff errors cannot be avoided when implementing numerical programs with
finite precision. The ability to reason about rounding is especially important
if one wants to explore a range of potential representations, for instance for
FPGAs or custom hardware implementations. This problem becomes challenging when
the program does not employ solely linear operations, and non-linearities are
inherent to many interesting computational problems in real-world applications.
  Existing solutions to reasoning possibly lead to either inaccurate bounds or
high analysis time in the presence of nonlinear correlations between variables.
Furthermore, while it is easy to implement a straightforward method such as
interval arithmetic, sophisticated techniques are less straightforward to
implement in a formal setting. Thus there is a need for methods which output
certificates that can be formally validated inside a proof assistant.
  We present a framework to provide upper bounds on absolute roundoff errors of
floating-point nonlinear programs. This framework is based on optimization
techniques employing semidefinite programming and sums of squares certificates,
which can be checked inside the Coq theorem prover to provide formal roundoff
error bounds for polynomial programs. Our tool covers a wide range of nonlinear
programs, including polynomials and transcendental operations as well as
conditional statements. We illustrate the efficiency and precision of this tool
on non-trivial programs coming from biology, optimization and space control.
Our tool produces more accurate error bounds for 23% of all programs and yields
better performance in 66% of all programs.
