Necessary and sufficient conditions for exact floating point operations

Abstract

Studying floating point arithmetic, authors have shown that the implemented operations (addition, subtraction, multiplication, division and square root) can compute a result and an exact correcting term using the same format as the inputs. Following a path initiated in 1965, all the authors supposed that neither underflow nor overflow occurred in the process. Overflow is not critical as some kind of exception is triggered by such an event that creates remanent non numeric quantities. Underflow may be fatal to the process as it returns wrong numeric values with little warning. Our new necessary and sufficient conditions guarantee that the exact floating point operations are correct when the result is a number. We also present properties when precise rounding is not available in hardware and faithful rounding alone is performed such as using some digital signal processing circuit. We have validated our proofs against the Coq automatic proof checker. Our development has raised many questions, some of them were expected while other ones were very surprising.L’étude de l’arithmétique à virgule flottante a amené certains auteurs à démontrer que les opérations implantées (addition, soustraction, multiplication, division, racine carrée) peuvent calculer un résultat et un terme exact de correction en utilisant le même format que les entrées. Depuis 1965, tous les auteurs ont supposé qu’aucun dépassement de capacité vers l’infiniment petit ou vers l’infiniment grand ne se produisait. L’infiniment grand n’est pas dangereux car un évènement de ce type produit une exception associée à des quantités non numériques persistantes (NaN). L’infiniment petit peut être fatal au processus dans la mesure où il produit des résultat numériques faux avec peu d’avertissement. Nos nouvelles conditions nécessaires et suffisantes assurent que les opérations exactes à virgule flottante sont correctes quand le résultat est un nombre. Nous présentons aussi des résultats dans le cas où un arrondi précis n’est pas disponible en matériel et l’on effectue uniquement un arrondi fidèle comme c’est le cas lorsqu’on utilise certains circuits de traitement numérique du signal. Nous avons validé nos preuves grâce à l’assistant de preuve Coq. Notre développement a posé de nombreuses questions, nous nous attendions à certaines alors que d’autres nous ont surprises

    Similar works