[R] R-1.7.1 regression test failure on alphaev68-dec-osf5.1
Jeff Lewis
jlewis at genomecorp.com
Tue Jun 24 20:42:00 CEST 2003
> -----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
> 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?
More information about the R-help
mailing list