HPC Magazine novembre 2013 - Des outils pour calculer avec précision.
Listing 1 - Calcul de la formule de Rump en C classique.
#include <math.h> #include <stdio.h> main() { float a = 77617.; float b = 33096.; float res; res = (333.0 + 3.0/4.0)*(b*b*b*b*b*b) + (a*a)*(11.0*(a*a)*(b*b) - (b*b*b*b*b*b) - 121.0*(b*b*b*b) -2.0) + 11.0/2.0*(b*b*b*b*b*b*b*b) + a/(2.0*b); printf("res=%.14e\n",res); res=333.75*b*b*b*b*b*b+a*a*(11.0*a*a*b*b-b*b*b*b*b*b-121.0*b*b*b*b-2.0) + 5.5*b*b*b*b*b*b*b*b+a/(2.0*b); printf("res=%.14e\n",res); /* On my x86 64-bit AMD, the results are: /* in single precision: res=-2.34119289742886e+29, res=7.08931176699221e+29 /* in double precision : res=-1.18059162071741e+21, res=1.17260394005318e+00 */ }