## Section: New Results

Keywords : floating-point arithmetic, fused multiply-and-add, formal proof, PVS.

### Properties and Proofs on Floating-Point Arithmetic

Participants : S. Boldo, N. Brisebarre, M. Daumas, G. Melquiond, J.-M. Muller.

#### Functions Computable with a Fused Multiply-and-Add Instruction

The fused multiply-and-add instruction (
`fma` ) that is available on some current processors such as the Power PC or the Itanium eases some calculations.

N. Brisebarre and J.-M. Muller have shown that the
`fma` instruction can often be used for performing correctly-rounded multiplication by a constant
Cthat is not exactly representable in floating-point arithmetic. They give methods for checking whether, for a given value of
Cand a given floating-point format, this algorithm returns a correctly rounded result for any
x
[29] . These results have been presented at ARITH17. The authors are currently working on an extended and improved
version of
[29] . They prove that if a larger precision (one additional bit does suffice) than the target precision is available
then the methods developed in
[29] become simpler and faster.

S. Boldo and J.-M. Muller have given examples of some floating-point functions (such as u l p ( x) or N e x t a f t e r ( x, y) ), or some useful tests, that are easily computable using a fused-mac. They have also proved that the error of a fused-mac instruction is exactly representable as the sum of two floating-point numbers and given an algorithm that computes that error [28] .

#### Formalization and Proved Results in Floating-Point Arithmetic Using PVS

During and after her stay at the National Institute for Aerospace (NIA, Hampton, VA) between February and April 2005, S. Boldo has been working on floating-point arithmetic properties in PVS. This collaboration was initiated by M. Daumas who worked out its funding and its scientific framework. This work is both a part of the former Coq formalization (see § 5.11 ) and a new result about polynomial evaluation that is formally proved to be faithful on mild assumptions (met for example when computing elementary functions) [49] . All the developments are part of the NASA Langley PVS Libraries (see § 5.12 ).

#### Double Rounding

Double-rounding consists in a first rounding in an intermediate extended precision and then in a second rounding in the working precision [56] . The natural question is then of the accuracy and correctness of the final result. S. Boldo and G. Melquiond proved an efficient algorithm [27] for the double rounding to give the correct rounding to the nearest value assuming the first rounding is to odd. As this rounding is unusual and this property is surprising, we formally proved this property using the Coq automatic proof checker.