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
[Contact me]

www.lactamme.polytechnique.fr

CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641, École polytechnique, Institut Polytechnique de Paris, CNRS, 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]]
[Real Numbers don't exist in Computers and Floating Point Computations aren't safe. [Les Nombres Réels n'existent pas dans les Ordinateurs et les Calculs Flottants ne sont pas sûrs.]]
[N'oubliez pas de visiter Une Machine Virtuelle à Explorer l'Espace-Temps et au-delà où vous trouverez plus de 10.000 images et 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 03/10/2024 17:10:19 -CEST-)



Copyright © Jean-François COLONNA, 2003-2024.
Copyright © France Telecom R&D and CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2003-2024.