-----Original Message-----
From: Peter Dalgaard BSA [mailto:p.dalgaard at biostat.ku.dk]
Sent: Tuesday, June 24, 2003 1:20 PM
To: Jeff Lewis
Cc: r-help at stat.math.ethz.ch
Subject: Re: [R] R-1.7.1 regression test failure on
alphaev68-dec-osf5.1
"Jeff Lewis" <jlewis at genomecorp.com> writes:
I'm attempting to compile and install R version 1.7.1 for
geneticists. It seems to compile correctly -- that is, it compiles
without errors -- but the regression test is failing in the
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)) <
not TRUE
Execution halted
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
I'm compiling on Tru64UNIX 5.1A using DECs C and Fortran
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 - log(exp(pi*1i)) / 1i
Mod(pi - log(exp(pi*1i)) / 1i)
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?