[Rd] R crash with complex matrix algebra when using EISPACK=TRUE
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Jan 2 19:11:56 CET 2006
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 at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list