Authors: Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot
Addresses: Université de Perpignan, Laboratory of Mathematics and Physics, LAMPS, 52 Avenue Paul Alduy, 66860 Perpignan, France ' Université de Perpignan, Laboratory of Mathematics and Physics, LAMPS, 52 Avenue Paul Alduy, 66860 Perpignan, France ' ENSTA ParisTech, U2IS, Université Paris-Saclay, 828 bd des Maréchaux, Palaiseau, 91762, France
Abstract: Over the last decade, guaranteeing the accuracy of computations relying on the IEEE754 floating-point arithmetic has become increasingly complex. Failures, caused by small or large perturbations due to round-off errors, have been registered. To cope with this issue, we have developed a tool which corrects these errors by automatically transforming programs in a source to source manner. Our transformation, relying on static analysis by abstract abstraction, operates on pieces of code with assignments, conditionals and loops. By transforming programs, we can significantly optimise the numerical accuracy of computations by minimising the error relatively to the exact result. In this article, we present two important desirable side-effects of our transformation. Firstly, we show that our transformed programs, executed in single precision, may compete with not transformed codes executed in double precision. Secondly, we show that optimising the numerical accuracy of programs accelerates the convergence of numerical iterative methods. Both of these properties of our transformation are of great interest for numerical software.
Keywords: program transformation; floating-point numbers; IEEE754 standard; data-types format optimisation; convergence acceleration.
International Journal of Intelligent Engineering Informatics, 2018 Vol.6 No.1/2, pp.115 - 145
Received: 18 Nov 2016
Accepted: 16 Aug 2017
Published online: 02 Apr 2018 *