Generating and Certifying Accuracy Properties of Floating-Point Programs
Génération et certification de propriétés de précision de calculs effectués par des programmes en virgule flottante
Résumé
Numerical programs make use of the floating-point representation of numbers to perform computations that ideally should be done on mathematical real numbers. The floating-point representation induces approximations on the computations ultimately performed. The accuracy property of such a numerical program is expressed as a mathematical formula about the difference between the computed result and the ideal computation. In this work, we bound this difference by a formula involving the assumed precision of the input of the programs, together with the accuracy properties of the auxiliary mathematical functions that are called as basic blocks. Obtaining such an accuracy property needs a high expertise in floating-point computer arithmetic. We propose a methodology that is able to automatically generate such form of accuracy formulas from a given input program. Moreover the generated formulas are certified correct with a high level of confidence, thanks to the automated construction of formal proofs of their validity. Our methodology is implemented and experimented on several examples involving approximations of elementary functions such as sine, cosine, exponential and logarithm.
Les programmes numériques utilisent la représentation en virgule flottante des nombres pour effectuer des calculs qui devraient idéalement être effectués sur des nombres réels mathématiques. La représentation en virgule flottante induit des approximations sur les calculs réalisés. La propriété de précision d’un tel programme numérique est exprimée sous la forme d’une formule mathématique portant sur la différence entre le résultat calculé et le calcul idéal. Dans ce travail, nous bornons cette différence par une formule dépendant de la précision supposée des entrées du programme, ainsi que les propriétés de précision des fonctions mathématiques auxiliaires appelées comme blocs de base. L’obtention d’une telle propriété de précision nécessite une grande expertise en arithmétique à virgule flottante. Nous proposons une méthodologie capable de générer automatiquement, à partir de programmes utilisateurs, des formules exprimant leur degré de précision. De plus, les formules générées sont certifiées correctes avec un niveau de confiance élevé, grâce à la construction automatisée de preuves formelles de leur validité. Notre méthodologie est mise en œuvre et expérimentée sur plusieurs exemples impliquant des approximations de fonctions élémentaires telles que le sinus, le cosinus, l’exponentielle et le logarithme.
Origine | Fichiers produits par l'(les) auteur(s) |
---|---|
Licence |