Perte de l'Associativité de l'Addition





                    (1.10 + 3.30) + 5.50 = 9.900000 = 0x411E6666
                                                  #            #

est différent de :



                    1.10 + (3.30 + 5.50) = 9.900001 = 0x411E6667
                                                  #            #



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 'ADD' est destinée à forcer l'ordre des additions) :



                    float     ADD(x,y)
                    float     x,y;
                              {
                              return(x+y);
                              }

main() { float A=1.1,B=3.3,C=5.5; float X,Y;
X=ADD(ADD(A,B),C); Y=ADD(A,ADD(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) :



                    (1.11 + 3.33) + 5.50 = 9.940000000000001 = 0x4023E147AE147AE2
                                                           #                    #

est différent de :



                    1.11 + (3.33 + 5.50) = 9.940000000000000 = 0x4023E147AE147AE1
                                                           #                    #












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 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 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 10/17/2003 et mise à jour le 14/11/2023 17:56:14 -CET-)



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