pi - log(exp(pi*1i)) / 1i
# reported below: [1] 4.440892e-16+0i # R1.6.2 and S-Plus 6.1 both gave 0+oi
Mod(pi - log(exp(pi*1i)) / 1i)
# reported below: 4.440892e-16 # R1.6.2 and S-Plus 6.1 both gave 0
.Machine$double.eps
# Same as reported: 2.220446e-16
Mod(pi - log(exp(pi*1i)) / 1i) < .Machine$double.eps
# reported below: [1] FALSE # R1.6.2 and S-Plus 6.1 both gave T
hth. spencer graves
Jeff Lewis wrote:
-----Original Message-----
From: Peter Dalgaard BSA [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 24, 2003 1:20 PM
To: Jeff Lewis
Cc: [EMAIL PROTECTED]
Subject: Re: [R] R-1.7.1 regression test failure on alphaev68-dec-osf5.1
"Jeff Lewis" <[EMAIL PROTECTED]> writes:
I'm attempting to compile and install R version 1.7.1 for
my statistical
geneticists. It seems to compile correctly -- that is, it compiles
without errors -- but the regression test is failing in the
following
manner:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
## log stopifnot(all.equal(log(1:10), log(1:10, exp(1)))) stopifnot(all.equal(log10(30), log(30, 10))) stopifnot(all.equal(log2(2^pi), 2^log2(pi))) stopifnot(Mod(pi - log(exp(pi*1i)) / 1i) < .Machine$double.eps)
Error: Mod(pi - log(exp(pi * (0+1i)))/(0+1i)) <
.Machine$double.eps is
not TRUE Execution halted =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
I'm compiling on Tru64UNIX 5.1A using DECs C and Fortran
compilers and
perl 5.6.0. I found the above error in a file named 'reg-tests-1.Rout.fail'. Any help you can give me would be most appreciated.
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?
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help