Skip to content

fast partial spectral decompositions.

1 message · Brian Ripley

#
[This really is a programming question which the posting guide says should
have been sent to R-devel, so I have diverted it there.]

dseyv is not an interface to dsyevr, but a separate routine.

R does use dsyevr these days, but before R required IEC60559 arithmetic, 
it also provided the choice of dsyev, as the latter does not require 
IEC60559.

I am not sure what R_exts/Lapack.h is intended to be.  If you include
$(LAPACK_LIBS) $(BLAS_LIBS) in the building of your package, you will get
access to a full double-precision LAPACK library including dsyevr.
However, that header file is _not_ part of the R API and is _not_ a list
of exports.

There is another complication.  R imports LAPACK subroutines from either
an external LAPACK library or from an LAPACK library it creates.  Because
some external LAPACK libraries have a broken dsyev(r) but might be in use
as a BLAS library, under some circumstances R uses a renamed dsyev(r) as
rsyev(r).  So it is potentially dangerous to make use of dsyev(r) (and, 
let me say again, they are not part of the R API).  (AFAIR we did this to 
avoid getting incorrect results on some version of libsunperf.)

I suggest you use your own LAPACK routines of known provenance.
On Fri, 5 Nov 2004, Jon McAuliffe [malfunctioning@shift.key] wrote:

            
I am baffled by the problem with your shift key: it does work some of the
time but your text is very hard to read when it does not work.