[R] make check-all failed on SLES8 for x86_64

Peter Dalgaard p.dalgaard at biostat.ku.dk
Tue Dec 14 20:02:42 CET 2004


"Liaw, Andy" <andy_liaw at merck.com> writes:

> Hi all,
> 
> I've only now noticed that on our Opteron boxes running Suse Enterprise
> Server 8 that R-2.0.1 did not pass make chek-all.  It bombed in
> tests/lapack.R at:
> 
> > eigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) {
>     V <- E$vect
>     lam <- E$values
>     stopifnot(abs(A %*% V - V %*% diag(lam)) < Eps,  .... [TRUNCATED] 
> 
> > Ceigenok <- function(A, E, Eps = 1000 * .Machine$double.eps) {
>     V <- E$vect
>     lam <- E$values
>     stopifnot(Mod(A %*% V - V %*% diag(lam)) < Eps, .... [TRUNCATED] 
> 
> > sm <- cbind(1, 3:1, 1:3)
> 
> > eigenok(sm, eigen(sm))
> Error: abs(A %*% V - V %*% diag(lam)) < Eps is not TRUE
> 
> This is using:
> ~/R-2.0.1> gcc -v
> Reading specs from /opt/gcc33/lib64/gcc-lib/x86_64-suse-linux/3.3/specs
> Configured with: ../configure --enable-threads=posix --prefix=/opt/gcc33
> --with-local-prefix=/usr/local --infodir=/opt/gcc33/share/info
> --mandir=/opt/gcc33/share/man --libdir=/opt/gcc33/lib64
> --enable-languages=c,c++,f77,objc,java,ada --disable-checking
> --enable-libgcj --with-gxx-include-dir=/opt/gcc33/include/g++
> --with-slibdir=/lib64 --with-system-zlib --enable-shared
> --enable-__cxa_atexit x86_64-suse-linux
> Thread model: posix
> gcc version 3.3 20030312 (prerelease) (SuSE Linux)
> 
> compiled with the following setting:
> 
> R is now configured for x86_64-unknown-linux-gnu
> 
>   Source directory:          .
>   Installation directory:    /usr/local
> 
>   C compiler:                gcc  -g -O2
>   C++ compiler:              g++  -g -O2
>   Fortran compiler:          g77  -g -O2
> 
>   Interfaces supported:      X11, tcltk
>   External libraries:        readline
>   Additional capabilities:   PNG, JPEG
>   Options enabled:           R profiling
> 
>   Recommended packages:      yes
> 
> Actually, I've only noticed this when the samething happens on a RH-based
> box (same hardware), using:
> $ gcc -v
> Reading specs from /usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/specs
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --enable-shared --enable-threads=posix
> --disable-checking --with-system-zlib --enable-__cxa_atexit
> --enable-languages=c,c++,objc,java,f77 --host=x86_64-redhat-linux
> Thread model: posix
> gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-24)
> 
> I'd very much appreciate any pointers!

Hmm. Not the first time we see eigen() in that role... First thing to
check is of course whether it is a case of "Eps too low" or true
miscomputation. For the record, it is not happening for me with SuSE
9.1 on Opteron:

> sm <- cbind(1, 3:1, 1:3)
> A <- sm
> E <- eigen(sm)
> V <- E$vect
> lam <- E$values
> abs(A %*% V - V %*% diag(lam))
             [,1]         [,2]         [,3]
[1,] 0.000000e+00 1.110223e-16 3.354246e-16
[2,] 2.220446e-15 8.326673e-17 2.712063e-16
[3,] 8.881784e-16 0.000000e+00 3.267174e-16
> .Machine$double.eps
[1] 2.220446e-16

pd at linux:~> gcc -v
Reading specs from /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/specs
Configured with: ../configure --enable-threads=posix --prefix=/usr
--with-local-prefix=/usr/local --infodir=/usr/share/info
--mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada
--disable-checking --libdir=/usr/lib64 --enable-libgcj
--with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib64
--with-system-zlib --enable-shared --enable-__cxa_atexit
x86_64-suse-linux
Thread model: posix
gcc version 3.3.3 (SuSE Linux)


Compile settings similar to yours, except that I have -O3.

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907




More information about the R-help mailing list