A floating point calculation returns different results when performed in a class's *= method vs. in main(). I'm not sure if the *= method is special, but that's where it shows up. The inconsistency is triggered by particular values used in the calculation. I've seen this behavior in 3.3.3, and 3.2.3. It does not appear in 3.1. I've seen the behavior in the Debain (unstable) version of 3.3.3, as well as in a personally compiled version of 3.2.3. The resultant compiled code exhibits the inconsistency on an AthlonMP, an Athlon, and an Intel Xeon. At the end of this message is a uuencoded preprocessed program which exhibits the behavior. The code prints out the input and resultant values for the calculation as done in the *= method and in main. The resultant values should be the same, but differ. On my machines, here's the output: 1> 1582081461419629824 = 1804289383 * 1681692777 - 846930886 * 1714636915 2> 1582081461419630080 = 1804289383 * 1681692777 - 846930886 * 1714636915 1 != 2 The second value is the correct one. malaise% /usr/bin/g++ -v -save-temps -O2 std_complex_dbl.cc -o std_complex_dbl Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.3/specs Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux Thread model: posix gcc version 3.3.3 (Debian) /usr/lib/gcc-lib/i486-linux/3.3.3/cc1plus -E -D__GNUG__=3 -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3 -D_GNU_SOURCE std_complex_dbl.cc -O2 std_complex_dbl.ii ignoring nonexistent directory "/usr/i486-linux/include" #include "..." search starts here: #include <...> search starts here: /usr/include/c++/3.3 /usr/include/c++/3.3/i486-linux /usr/include/c++/3.3/backward /usr/local/include /usr/lib/gcc-lib/i486-linux/3.3.3/include /usr/include End of search list. /usr/lib/gcc-lib/i486-linux/3.3.3/cc1plus -fpreprocessed std_complex_dbl.ii -quiet -dumpbase std_complex_dbl.cc -auxbase std_complex_dbl -O2 -version -o std_complex_dbl.s GNU C++ version 3.3.3 (Debian) (i486-linux) compiled by GNU C version 3.3.3 (Debian). GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 as -V -Qy -o std_complex_dbl.o std_complex_dbl.s GNU assembler version 2.14.90.0.7 (i386-linux) using BFD version 2.14.90.0.7 20031029 Debian GNU/Linux /usr/lib/gcc-lib/i486-linux/3.3.3/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o std_complex_dbl /usr/lib/gcc-lib/i486-linux/3.3.3/../../../crt1.o /usr/lib/gcc-lib/i486-linux/3.3.3/../../../crti.o /usr/lib/gcc-lib/i486-linux/3.3.3/crtbegin.o -L/usr/lib/gcc-lib/i486-linux/3.3.3 -L/usr/lib/gcc-lib/i486-linux/3.3.3/../../.. std_complex_dbl.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc-lib/i486-linux/3.3.3/crtend.o /usr/lib/gcc-lib/i486-linux/3.3.3/../../../crtn.o begin 644 std_complex_dbl.ii.bz2 M0EIH.3%!62936:0X(/``"<I_@']0__O_____O^_?+K____I@&K]X`%]YZ+PZ M;QJKVVRWNWO4Q[=+[[W?3GVMM3L\][N>`7O?9I'VKTUOL4[SN.WUZ\N^]XT] M--!J5?=GH=V^OON\!O:^^YFSL"1(@F3)HT$-4]-/5-/*9J:--`::>H;4-&@: M`#0&C(TTT!*:"`H$GJGE3]4\4/)-#]4#U`&@:#U`:````-&@`E,BFI31Y(?J M0T`T```#)DT`T`9`#0``T-!)I)"FA,IZGJ:>J-BF1M$&$::`:```!HT:`/4T M-`")*!-2>-)/%)ZF:GHGE-#(>IIZ)IID`````]0`T>H`1(B":(R3$&D3TRII MZC(`>D!H``#0```:-&FPGM&#$C($C`@#$(@2+""D(?,@?]3Y**0%(?^B5%A+ M&%5`BQ&`Y0,!,9%7$^.-8&S\YK)L>QAA4*JP6(B(P563@Q+BL%FD]C*K%B\+ M\@DX.1(122FVS@LV8HN!C%Q*K+PYBJ*0K6*2VQ*!1!4JJI:C%;0)4ANA*@N, M+2Q_SY,-YI7?TV68A:69.C;%%KS8&.SI$!2.]K:U&S,IV7TKL:VH[;YJVZ56 M8XE=:E&(11$!-):)4*H@VE5E$MJT6(M8A66H51&(<\E#$T)U<MIF";.XJU!; M!:T5L;"C!IKW/(4.M9#^W7[V_\)O?^?WYCIB<0)%_GGG#[TQWT>Q04+$!@+` M]L$'HQ$IA(R55*LC((AB>AS3TG%K>AZD^IZ>:],@_IJ;41>&M415LO>[R]ZG M$S!G-"9*%=[6G,85KJP^;9MB^3.<8Q64V16,/E`*WJM!P#*\_OG.=H[8SQE! MD\%B.^";0_((`UK=N`;9)E8;O[-R>UZU6F8B(0O.O:C?^',:J'TI_UH]^:-" M1>7YB6>,[+N=`Z-W-3X\+C\TL,VN&U:.&]:]3B#247I(TQC+CQIYR8B4D<1) M+C@TE;A3RG,#%H@ZBU*4F5A?80[<-443OOWY,X)H\059OL/1X[#8U`]3<QYV M9F)B#:0^`XYJF+%!,NQA4I<S2.VVR>A=F"BQG4SB1-H#ZR&SPA082;,+/`)@ M;Z@JAED!*TLF8<M0(:WNC"YG;HTB12C+:4K2;-1T!#>;H>Z>V`'("W4):0D+ M)Q4HVP,A-=_2@H=U:)2Q@L1@@%"B"Q9%(E@10V)L`>,DD+0D-TM1:900OE7> M[_?REQTN""1BBU;QF26E(U;-VUO0/VA\G8I'Z2(\KUTP89(<H&UTEPU8I'ED M&Q-H<(0'>`_@D#(=@XU.1'$!R]"!<%N"F;:9`"0(9H[>::)RP!U@<92VVVVR M&L)S828R1YC:[&4TX9A[<@.8=X04Y9<$-3"!(+O$U(%1W@5DBQ'Q_G?!G;'F M&@H-$*=Z7.BPQ)HF&"A?`&&B`0"&%YALS.D<&@[&+$DX=(IB`8P,FX@CM?/- MRD$.0U"+F`;F$4*B(04(R[Q23(*E"EK4^(8O-M71II=2[K[6H:I@%S!-8)I! M9ECK42JKCB98TUF01G&F'*.('C.<WDXH@0\1<L;8;$,43#)!JDV#:8A`X0SV M([AZ]*+*.5G#KC<(;M'Y=-C<<?8HO<]B"X1"L8S<@V67$&H14;#259M1!)3% M)@<:4D2S"4RQ)/JF+'C[:C:8\#U3U3I\5`FKC@L(-5*6J6`3W#JG$D5Y'N0$ M[4$$[L%M1T'`P8T80X^UH;;53S"2*>P@`I0,)"2!!8>A"E3Q<I??8!YM<T:- MF.](",A/0]M//;%?:U\7894;_7Z1$ZW?V#,+5>;95=G324-!N5T[E>@N6O+A M(3<.N<]EI7KW?W&>69)BE420U$H<<@<>$/ZF5B>FVSU_-B3<*:Q"&&AI#RZ\ MN=L=Y<QC#3<YKI*?,/'B.M5-.\1"%"'."(CD\Q*'(X1$NZ<THAT[MQVW7CUC M6,[@C+'(WRC&1-X8=M^CPGEWN7293')JB]B8R;(B728F*2SD<NSV=;OF]>LS MCK@=H"3GC(&*J04@(J2*15@L!9@D#`$D$%AE("B,8C&"B]AA&`X)<FL1H1_' MLY:)%TZ>3/9#34.4J>8IG=W]>RY3=U*X7E0+$,P:Y,YL_@[W'9>U=@9@6_Q, MN9Q"&#)4F+6(VN@PTYZO7D;B(PW$L7&57F!2?I@)EIADWDF1SGS9%&SS;,+O M:C226O=FC1/'`8<(.:&/*W)@$5JV@%TQ!N$BA(^X1J22-Y;KS/&:V?'C!UG0 M,1:\8JFHM+33*IIR2Y)D!#33J710!K&YIBJ(:'=#\('Y*G):&(A8=$"DY@8D M!H<5`(#!!L1M8C(HFWY(A!O(0E!#$Z.?M<LM[:]@BXXPYZ>M12(8=Y(<Z1=M M-F("AZZ$GE46,Y9<$Y]Z:*F&1^)E[67>"F2K;9=4<BE?09F]>5T8)@EA`W"" M%`U+#H"+J:F+!F&B+7*B9(QS\<M&A9PM4GB23J<CD<]`0?[E`ZJI=]_7:Q\@ MAM$N::57:A5,ZXY\0V70\H7%S-H&D/(00:%TRS,:QOG=5-R$Z$BH<W,S8V+? MG(&!V9"JN(T[6^,WY<+8FUB$$=&F=5>2[/F)3PBG"`YPZO>SG3%E`[I-?)3X M*=U?$$XP4G4C!GQVX(8-=KJ9\,E[NU!J8-YQ^BVOQ8*'OBR#;8Y)(7C\KH:\ M^G7LE[?(FH[4I.J4R0!-GM-"@@=F2,H`S`$QOXKFDTB8^!9SO5'+N6XGS/Q8 M756:HIE6)DH04N3>BKU>'BX749,MMMJ,94/JT$*B771TDW3+!Y^Y.;1?&%GO M?Q;IW[/+<]SNTSJ9Z3VZOJ5:'B3%&TT<KP,3-)7=+CVTW'GM0DN*]]#H15#; M>F0(\A"2]>YA.7;M)B",W:"LW7DYV7%[)V5Z9S*>0XD<RN9^)(3?H-0U.1P^ M9IMI1VT`T=_POP_O>3_F@%W(VU(0ES1S,R3YIP$Q#T8!GH^JGEY:^NSE_"W! M<Q30A`B$(E%(1A&=FE\8@/?B)^ZHL10,IK[\FRR]07L?]4/W?NN.-2<M-GV4 M&4?:8GW!=/9=8T%`/&E)2NU\X$0[X-YY\0S;E"Z(-4PW#S?$/D_7^";*.R?# MR<[Z_N2*=8"0UF7G6\O#\;V4H05L)P"]]+!2BP+N;"RYX@221(CQDDD5_:*- M>855!5)`9354-5=P0,-P[")D#D*'4#N[X3HA.H&2>ZJ",)WA#")!M!1`8"-5 M$8*()_7R9D^5Z^WD\B[SY>5I[/=HG(Z/\=&5]N[&T-`JQ3]<G6@?TM">ZDU# M9"3<)5D8E(JJ"@"K!6,#K>KJLP>E][JZ[A).7*E8/I_3PA@.A6"D%B,D&(*( MJ6`R5B!(*JJC(R"EEI(,@4"U0141@Q6"%*%@H(R2??^X>(DGB](ROG?;PMNT M_4)-PBCC\]&+?<IN7W`'6AB*=Y:0`]EGAP-EGRF_,:T[^<**NR[LN?<%,-'U MX1>_H:AV23I=ETKIB[LS!RJI'K_KQ$U,BL\4\RW,P.#'XPFJ9%'@LTV-N2"" M\+BXDAX]UE=,&#("0A(`_5JUC/1UASRZ21\(N4B&Y).VY2?O*&YYZ';.\+<: MVKY1ZP%O^"L<$[B+HZP_03#"SSJ8U4#;I.?'!,UNKL%L"0(I94FC9W3EW8'A MTH<H`\!%2@YTY<X;VX*4+UH/J>PM"(9-<^VB$(Q@,^KHN4-$/*Y^.\"H=OPG MS#@9E)J0QY7$X&L!,Q4*B8=BDR<<OJT^7'!$'=0ZWNT[C=YM&HN^,QG+EB^% M&+'7MF^MMK?+\M+G''IXC8CH)#)"0T&UMAP9<I@XEW7?:Z"0605:O9LI2,[% M!O!KMUP5!P>XJN(O)S0&#UMD%[*$/!(OSA-(-J9=9_MI6<&=#T]V[&VB6:<V MTD`T!,IR@GB`4B*:&C%.A-`X[Q/5CCH:`NJ!V$,^<,$#G)M#!/LU`.4J]&VQ M'O`G/,XIXH'Q)MMRDEZ+NI;W=>EIK@Q"PA/O3H@>6'B#.SDX@'>(U0&)@'_' MQ#?9-:U?=A<$!DO!%7X+G!3"[%&92M=@7(73`8'4Y80K<8D@0D![00U0T-:1 M*";ITD9%6!R7_!,#AZ<X;`K)$7:=.$M1;(>#%3I'NU8H<X^7;??S`"*&"0OF M1@6=AW21]&(\8',&2,:]B!Z)SB`==@DD0:5*H!8T$0H2+?;1#6K1:'UNC8&8 M-$'SC0)9!H1@06HC20(4L.+Y=-9#?P\86V:IHD$,(S!U3>Y)PQ)@AMJ14(`4 MX[N$18E,D1=#!!%/K`&KMLT<BDU0L^@M;BB7C8Q:\\QH6V&QML*P.*,JL+<% MQ#4Z>C749Z2O"<A#&$PX.#G_KYM8NII"48@<*O%V&&9Z5M2[Q(Y"9TM1,A(N ML;E@+AUQ"6Y9V@1!BJJTG%`ISR@D1%"#$(N_/<SFVX5-H`AL]4XP??-D7WJF M$%Q+'</F`4W,!E;@9!1XT!I*#GTV+K5.;$F(D^3Y8B=T%RFHH>/^GT>;J<R/ M#J@=4OLV%]P9C2C10)(#),'D(C`+"N(AEFJD*VBOIXY992TH],-L"!.@GAA! M156%A*,FU%Y$#,:,1$!L,T6HLB6E*(:#J4:DYZR:9`TPW>'=PU_O*H\:M3AW M2ZO-E6N;:R45%K/3.J3HLF)306>T6J1NWR\>*7<WO(.]Y#!1@5CX220LV.Q- MXZ(60N[OOBX6PA&$)1"I`*#`&#T^F;"/Q^2:XQGI>TQC%[*',AK>9;*C-Y.! M/<=P^_CZ*J1-I.K8=&6^<L47KG1J0.B4Z7($.!5%R^?B9#VMU2[V-"5C`2XP MHM<J0VC6PAU%\RHFT$J%]6RM/*.@0801-*R!B2`2K#8`9`8QMZ3ZCC%.I=Z2 M=^M!R5E-O67!@9M.J6<X\'+[((/K/*R:P44^PWB`00#9#@UC]EAWQ(<Q#%FG MP%#5`GQYM@`^C\JH1/?TSZ_?MU310]/D?7]@G)!8*;'<]3Z:=TAO9;B55=": MR_:B+J,RAY,30XND!<:3'P/F^)"JHZEUDM!.H,`C`']2`!443$5:BX\"2222 M'02>U!)R$)P#W21$$8I&,!%+`K`\1U$@=A#7?X5,IL`^HW!-E1AN?'YP]\HD M".^]%V%*FX:4NBA,AF@UHBOL@]]V>:9V^L;D`S($<I1<]POW[DHCP"G2!WP= ME(XZG#L4>1ZE?764O<0I`T(0U'7PC/49+]5V]MQ*@./M5)6,<P0E(6IY!V+1 M%Y>7@&DS<=U%H-BA`$V*MXYGN$.L)&&\4T$TVNK3-EF3:T#N:.S@4NF;#9JA MYYF0R$CB00($11^^&[O&3)2$A"CBBG=4*HJHUIT#`Z;RO0.Z[=418=!*H[HR M+4`LOD84/@@LT")",<`F!+$6`A"9-"%HF:`;N26>X<L`#!,$1O%"@%+\!1'= M8W12FBL,$3<!T'%B&$!FWAX^VS"HW>#Q.N60825*&PJFXSF1"-/5@@:L#8NI M%B$F2Y\5#".9%)I4(8;&(.=%(#>B%)2JAX]>7?SNY/E7EV>'P(PA\V07WKP" M;[!R0T(&EU4LD,B8QW!`+U.<Y+S1AYA!V/--MYW^X!2O%6_P,+JY(*0&&G*; M)H@N1!`X06;+'E1O&@IJH@+J:93A2H@=8A&*('/QR[M7E73IU7+<7&Z)X^.S MS(8]!!<$`Y)%K4H;UI#0L#,DK5]UKE#FB+LCX.VLT,;S&^TF2RK*\K1.VVE% MBU!(!0(F_F5'+:Y`"5P&!RN:3M9N":`@Y%SR7(MIO)-D!<>U!/$!T#8Z!T!= M'A"*0A((C("<W`'H(!:IE=>2`%P]YAH-GPQJ:'(])YWN74)FB%W+:8M1I.?S MTID.'TB!RV6'=TZX),C8]EP$)JL@::UPW%!>%XVM&._BI^;;BW><QU=\E M026;]SL")EG+DEC::U.=9".+5N$BD@A($A@!8*&$Z<NQJX#KZ>FK4@0:NAH6 MZ5QWT!@$A+@._7LREDTDJI/6YQF>*(N,68FBGH#Y((2*P33X+A(I#!.,XF@Z ML8?>T]8\48)3P9L$JKE+@`EJ15`'#IX0S,`X`-8&T@]'QL@0*FD4V8D-U!+% ME)T,5%IPZP,8<2Q8L)$H>I@=N&(FJ3MLT#%%B,"8.SB8&$(PM%C1@A2]TAE! MF00E$"QB"PJ`4&2%N.,#!5L6E$+!I;12C6C5"E&2@PE@TL;("#$DHQFOC8&" M[40DELDM6P1D11!'([1D#41`01@P;0'N]&@:W5V,,,VC;W>8FP.9*`VRNVVP M6'@6X(9FGE0R3!M!#$>B:JDP6$`VHH3G,PUS6A7('9#II"24N=4<H%EH//P\ MBT$415!(QB8$@QDDG,;J2&$"E"E).@>?(4-%Q$,G(YY!0(Z;!(Y2O.8H&DA7 MX&>ZU!@JS:VXI5`;5(<_73=@I>`0H!#KH$0!-9L,#8"-4>>`;,*`8OA\Z=JI MX$]EJ*'?CE"I!%A\UUE@P54061)X9.SL2(>U.J@,<:$!OH`-\2$J=:$5^>U` MQ;-85BJ[!,115FX&2$B8]Q(.JP[C1(30EG5'('%H$&@+<IE=:YE1V[41=P': MKK0(N94=^!.<@<R/2/!X@873VMHF^!Y45?691%5DC)WKMO4453KA)AS$`.=@ M*=&'?.N2LLZH;CQ`9+#Q@;EOM@Z8,D^%4H0AQ5U!#S0L3$4V)%134/A5#)53 A4MW@<*HY.V$`D!D$D!_J$B<^#8213_Q=R13A0D*0X(/` ` end
In fact neither is correct (well really both are as for rounding errors which can happen and does). The correct answer is 1582081461419629901. But really this is a non-bug as you are dealing with FP and x86 where different precision can happen. This is a dup of bug 323. *** This bug has been marked as a duplicate of 323 ***