I have been looking at the "eigen" function and have reintroduced the ability to compute (right) eigenvalues and vectors for non-symmetric matrices. I've also made "eigen" complex capable. The code is based on the eispack entry points RS, RG, CH, CG (which is what S appears to use too). The problem with both the S and R implementations is that they consume huge amounts of memory. Some of this is due to purely ".Fortran" overhead, which I think I can cure. But some of the bloat is due to the inclusion of special eigenvalues-only code from eispack. The question is: Should I drop this special code and always compute both eigenvalues and eigenvectors? This would substantially reduce code size, but might increase computational cost in the case where only eigenvalues are needed. PS: For the lapack fans out there ... I looked hard at using lapack as an alternative to eispack, but it's written in a fashion which does not make its addition to R as simple as linpack and eispack. When we all have SMP desktop machines it will become more of an issue. Ross =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 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 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>>>>> Ross Ihaka writes:> I have been looking at the "eigen" function and have reintroduced the > ability to compute (right) eigenvalues and vectors for non-symmetric > matrices. I've also made "eigen" complex capable.> The code is based on the eispack entry points RS, RG, CH, CG (which is > what S appears to use too). The problem with both the S and R > implementations is that they consume huge amounts of memory. Some of > this is due to purely ".Fortran" overhead, which I think I can cure. > But some of the bloat is due to the inclusion of special eigenvalues-only > code from eispack.> The question is:> Should I drop this special code and always compute both eigenvalues > and eigenvectors? This would substantially reduce code size, but might > increase computational cost in the case where only eigenvalues are > needed.I'd say, reduce code size. -k =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 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 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Ross>Should I drop this special code and always compute both eigenvalues >and eigenvectors? This would substantially reduce code size, but might >increase computational cost in the case where only eigenvalues are >needed.I often need the eigenvalues only, but in my experience the main causes for slowness is when I start using more memory than is physically available. (My machine starts sounding like it does when I run S.) I would guess that reducing code size may be more valuable than the specialized code. Paul Gilbert =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 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 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-