Brain, Thank you very much for your help. Using gctorture I was able to produce a simple function call showing the problem.
Gm <- rbind(c(-0.3194373786, 0.2444066686, 0.0428108831, 3.221983e-02), c(0.0002071301, -0.0003282719, 0.0001211418, 5.128830e-12), c(0.0621332005, 0.0545850010, -0.2098487035, 9.313050e-02), c(0.0280936142, 0.0586642184, 0.1658310277, -2.525889e-01) ) print(Gm) temp <- eigen(Gm) print(temp) gctorture(TRUE) temp <- eigen(Gm, EISPACK = TRUE) ### # On my computer I get : ## > gctorture(TRUE) > > source("http://www.daimi.au.dk/~olefc/TEST/Gm.R") > print(Gm) [,1] [,2] [,3] [,4] [1,] -0.3194373786 0.2444066686 0.0428108831 3.221983e-02 [2,] 0.0002071301 -0.0003282719 0.0001211418 5.128830e-12 [3,] 0.0621332005 0.0545850010 -0.2098487035 9.313050e-02 [4,] 0.0280936142 0.0586642184 0.1658310277 -2.525889e-01 > > temp <- eigen(Gm) > print(temp) $values [1] -3.464342e-01+1.3161e-03i -3.464342e-01-1.3161e-03i [3] -8.933476e-02+0.0000e+00i 9.052031e-19+0.0000e+00i $vectors [,1] [,2] [,3] [1,] -0.3419128709-0.03748199i -0.3419128709+0.03748199i -0.222056433+0i [2,] 0.0003508445+0.00001921i 0.0003508445-0.00001921i 0.001421758+0i [3,] -0.4179745717+0.01301547i -0.4179745717-0.01301547i -0.664932225+0i [4,] 0.8407249376+0.00000000i 0.8407249376+0.00000000i -0.713129761+0i [,4] [1,] -0.5+0i [2,] -0.5+0i [3,] -0.5+0i [4,] -0.5+0i > temp <- eigen(Gm, EISPACK = TRUE) *** glibc detected *** free(): invalid pointer: 0x08c4e778 *** Aborted # Should I submit this as a bug report also ? Best Ole Prof Brian Ripley wrote: > Try valgrind. That is reporting use outside arrays in rg, that is the > non-complex case of eigen(). > > Otherwise, using gctorture(TRUE) will help precipitate the error. > > On Mon, 2 Jan 2006, Ole F. Christensen wrote: > >> >> Dear subscribers of R-devel >> >> I am experiencing that R crashes (further details are given below) in >> some complex matrix calculations when EISPACK=TRUE has been specified in >> eigen(). >> I discovered the behaviour some months ago just after the >> release of R-2.2.0, and it has been lying on my desk since. >> I apologise for not having nailed the problem down to a simple function >> call, but I thought I should better report the problem now >> instead of waiting. >> My hope is that someone will either spot the cause >> of the crash in a minute, or otherwise provide some help for me to >> investigate further. >> >> >> ## The code : >> >> >> source("http://www.daimi.au.dk/~olefc/TEST/fct.R") >> source("http://www.daimi.au.dk/~olefc/TEST/parm.crash.R") >> >> for(l.v in 1:4){ >> for(r.v in 1:4){ >> for(l.x in 1:4){ >> for(r.x in 1:4){ >> hvad <- >> inhomoWmat.complex(subst.ratematrix(parm.same.str.sym$Gamma[,,l.v,r.v]),subst.ratematrix(parm.same.str.sym$Gamma[,,l.x,r.x]), >> >> >> EISPACK=TRUE) >> print(c(l.v,r.v,l.x,r.x)) >> } >> } >> } >> } >> >> >> ## gives >> >> [1] 1 1 1 1 >> [1] 1 1 1 2 >> [1] 1 1 1 3 >> [1] 1 1 1 4 >> [1] 1 1 2 1 >> Segmentation fault >> >> >> >> ### whereas the code seems to work fine when EISPACK=FALSE : >> >> >> source("http://www.daimi.au.dk/~olefc/TEST/fct.R") >> source("http://www.daimi.au.dk/~olefc/TEST/parm.crash.R") >> >> for(l.v in 1:4){ >> for(r.v in 1:4){ >> for(l.x in 1:4){ >> for(r.x in 1:4){ >> hvad <- >> inhomoWmat.complex(subst.ratematrix(parm.same.str.sym$Gamma[,,l.v,r.v]),subst.ratematrix(parm.same.str.sym$Gamma[,,l.x,r.x]), >> >> >> EISPACK=FALSE) >> print(c(l.v,r.v,l.x,r.x)) >> } >> } >> } >> } >> >> ## works fine. >> >> >> ## There is some randomness in how and when the crash happens. >> ## The crash is either : >> >> Segmentation fault >> >> # >> >> *** glibc detected *** double free or corruption (!prev): 0x08aa7298 >> *** >> >> # or >> >> *** glibc detected *** free(): invalid pointer: 0x082bfd20 *** >> >> >> >> ## Seen on R-2.2-1 and R-2.2-0 . >> ## Not seen in R-2.1.1 ! >> ## I haven't investiated whether it happens on Windows also. >> >> >> ### A few details on the matrix calculations : >> The eigenvalue decomposition is done on 4 * 4 matrices where the rows >> sum to 0. >> The matrices may be on the edge of not being complex diagonalizable. >> >> >> version >> _ >> platform i686-pc-linux-gnu >> arch i686 >> os linux-gnu >> system i686, linux-gnu >> status >> major 2 >> minor 2.1 >> year 2005 >> month 12 >> day 20 >> svn rev 36812 >> language R >> >> >> Thanks in advance of any help. >> >> Ole Christensen >> >> -- >> Ole F. Christensen >> BiRC - Bioinformatics Research Center >> University of Aarhus >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel >> >> > -- Ole F. Christensen BiRC - Bioinformatics Research Center University of Aarhus ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel