"Jeff Lewis" <[EMAIL PROTECTED]> writes: > > Well, it seems to be an accuracy issue, so the first question would be > > what the values on both sides of the equality are (just start up R and > > enter the expressions on te command line). You might have > > > > 1) Completely wrong results in complex arithmetic > > 2) Slightly less than optimal accuracy > > 3) An underestimated .Machine$double.eps > > > > Case 2) seems most likely, but case 3) has been observed with buggy > > compilers that optimize calculations where they shouldn't. > > > > Thanks for the quick response. The two sides of the equality are > definately different. Here's what I'm seeing > > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > pi > [1] 3.141593 > > > 1i > [1] 0+1i > > > pi*1i > [1] 0+3.141593i > > > exp(pi*1i) > [1] -1+1.224647e-16i > > > log(exp(pi*1i)) > [1] 0+3.141593i > > > log(exp(pi*1i)) / 1i > > [1] 3.141593+0i > > > pi - log(exp(pi*1i)) / 1i > [1] 4.440892e-16+0i > > > Mod(pi - log(exp(pi*1i)) / 1i) > [1] 4.440892e-16 > > > .Machine$double.eps > [1] 2.220446e-16 > > > Mod(pi - log(exp(pi*1i)) / 1i) < .Machine$double.eps > [1] FALSE > > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > I get the same thing from R 1.6.2, which I compiled about six months > ago. Is there anything I can/should do to fix this?
Not really. It seems that your platform just has slightly less accurate complex log/exp routines than the most common ones (Linux and Sparc/Solaris both give exact zero). Probably the check is simply overly stringent. You might want to change the check to say ... < 3*.Machine$double.eps or so and rerun, to check whether the rest of the checks pass. -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help