R-alpha: eigen

Thomas Lumley thomas@biostat.washington.edu
Mon, 11 Aug 1997 10:12:49 -0700 (PDT)


eigen is behaving very strangely in my copy of patch 3 (solaris 2.5.1). 
The calls to .Fortran are returning absolute rubbish and are also mutating
things that shouldn't be mutated. 

example:
> eigen(matrix(c(1,0,0,1),2))  
debug: z <- .Fortran("rs", n, n, x, values = vals, only.values == FALSE, 
        vectors = x, vals, vals, ierr = integer(1))
Browse[1]> x
     [,1] [,2]
[1,]    1    0
[2,]    0    1
Browse[1]> 
debug: if (z$ierr) stop(paste("rs returned code ", z$ierr, " in eigen"))
Browse[1]> dim(x)
[1] -1076060379  -977277476
Browse[1]> dim(z$vectors)
[1] -1076060379  -977277476
Browse[1]> dim(x)<-c(2,2)
Browse[1]> dim(x)
[1] 2 2
Browse[1]> dim(z$vectors)
[1] 2 2
Browse[1]> z$vectors
          [,1]       [,2]
[1,] 0.8506508 -0.4472136
[2,] 0.5257311  0.7236068

Not only are these clearly not the eigenvectors of the identity, but the
.Fortran routine shouldn't even have access to x.

The problems turn out to be related: when separate objects are supplied
for each argument the function works properly, ie
        z <- .Fortran("rs", n, n, x, values = vals, only.values ==  FALSE, 
		vectors = 0 * x, vals * 0, vals * 0, ierr = integer(1))

Somehow the arguments to .Fortran aren't getting properly copied.


Thomas Lumley
-----------------------------------------------------+------
Biostatistics		: "Never attribute to malice what  :
Uni of Washington	:  can be adequately explained by  :
Box 357232		:  incompetence" - Hanlon's Razor  :
Seattle WA 98195-7232	:				   :
------------------------------------------------------------

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-