I just tried this with both R 1.6.2 and S-Plus 6.1 under Windows 2000: I got the same .Machine$double.eps as reported below, but I did NOT get the problem:

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

Reply via email to