Perte de l'Associativité de la Multiplication





                    (3.10 * 2.30) * 1.50 = 10.695000 = 0x412B1EB8
                                                ####            #

est différent de :



                    3.10 * (2.30 * 1.50) = 10.694999 = 0x412B1EB7
                                                ####            #



Les calculs sont effectués en simple précision (c'est-à-dire sur 32 bits et ce afin de simplifier l'édition hexa-décimale des résultats ci-dessous) sur un PC Linux à l'aide du programme suivant (où la fonction 'MUL' est destinée à forcer l'ordre des multiplications) :



                    float     MUL(x,y)
                    float     x,y;
                              {
                              return(x*y);
                              }

main() { float A=3.1,B=2.3,C=1.5; float X,Y;
X=MUL(MUL(A,B),C); Y=MUL(A,MUL(B,C));
printf("\n (%f x %f) x %f = %f\n",A,B,C,X); printf("\n %f x (%f x %f) = %f\n",A,B,C,Y); }



Voici, au passage, un exemple de résultats obtenus en double précision (c'est-à-dire sur 64 bits) :



                    (3.11 * 2.30) * 1.50 = 10.729500000000000 = 0x402575810624DD2F
                                                 ############                    #

est différent de :



                    3.11 * (2.30 * 1.50) = 10.729499999999998 = 0x402575810624DD2E
                                                 ############                    #












Jean-François COLONNA

www.lactamme.polytechnique.fr

jean-francois.colonna@polytechnique.edu
CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641, Ecole Polytechnique, CNRS, 91128 Palaiseau Cedex, France
france telecom, France Telecom R&D

[Site Map, Help and Search [Plan du Site, Aide et Recherche]]
[The Y2K Bug [Le bug de l'an 2000]]
[Do you believe that Real Numbers exist for a computer and that floating point computations are safe ? [Croyez-vous que les Nombres Réels existent dans un ordinateur et que les calculs flottants sont sûrs ?]]
[N'oubliez pas de visiter Une Machine Virtuelle à Explorer l'Espace-Temps et au-delà où vous trouverez plusieurs milliers d'images et d'animations à la frontière de l'Art et de la Science]
(Site WWW CMAP28 : cette page a été créée le 17/10/2003 et mise à jour le 06/11/2021 10:37:42 -CET-)



Copyright © Jean-François Colonna, 2003-2021.
Copyright © France Telecom R&D and CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2003-2021.