[Rd] eigen returns NAs from a real matrix
Martin Maechler
maechler at stat.math.ethz.ch
Mon Mar 19 11:48:39 CET 2007
>>>>> "BDR" == Prof Brian Ripley <ripley at stats.ox.ac.uk>
>>>>> on Sun, 18 Mar 2007 06:51:58 +0000 (GMT) writes:
BDR> On Sat, 17 Mar 2007, Spencer Graves wrote:
>> Hi, All:
>> Attached please find a symmetric, indefinite matrix for which
>> 'eigen(...)$vectors' included NAs:
>>> load("eigenBug.Rdata")
>>> sum(is.na(eigen(eigenBug)$vectors))
>> [1] 5670
>>> sessioninfo()
>> Error: could not find function "sessioninfo"
>>> sessionInfo()
>> R version 2.4.1 (2006-12-18)
>> i386-pc-mingw32
>>
>> locale:
>> LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
>> States.1252;LC_MONETARY=English_United
>> States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
>>
>> attached base packages:
>> [1] "stats" "graphics" "grDevices" "utils" "datasets" "methods" [7]
>> "base"
>> Using EISPACK does NOT return NAs: > sum(is.na(eigen(eigenBug,
>> EISPACK=TRUE)$vectors))
>> [1] 0
>>
>>
>> I traced the problem to the following line in 'eigen':
>> z <- if (!complex.x)
>> .Call("La_rs", x, only.values, PACKAGE = "base")
>>
>>
>> Comments?
BDR> Nothing appeared as an attachment.
it was a zip file which is not among the allowed ones
(.tar.gz / *.tgz would work).
Spencer has also contacted me in private,
so you now can use something like :
F <- tempfile()
download.file("ftp://stat.ethz.ch/U/maechler/R/eigenBug.Rdata", F)
load(F)
str(eigenBug)# tons of dinames; get rid of them:
M <- unname(eigenBug)
sum(is.na(eigen(M)$vectors))
# 0 (for MM, on Linux); '5670' for Spencer
sum(is.na(eigen(M, EISPACK=TRUE)$vectors))
# 0
## Guess about what kind of BLAS/Lapack I'm using :
file.info(list.files(R.home("lib"), full=TRUE))[,1:3]
## size isdir mode
## ....64-linux-inst/lib/libRblas.so 422558 FALSE 755
## ....64-linux-inst/lib/libRlapack.so 3144596 FALSE 755
I.e. I don't get any NA's
which shows to me that the bug is most probably in the Lapack -
Version that Spencer's version of R is linked against.
Martin Maechler, ETH Zurich
More information about the R-devel
mailing list