RE: [R] eigenvalues of a circulant matrix

From: Huntsinger, Reid <>
Date: Wed 04 May 2005 - 03:29:43 EST

Under Linux run "ldd" on the binary to see what shared libraries the binary has been linked against and will attempt to load. The command you run is a shell script which sets and exports LD_LIBRARY_PATH and then runs R, so to be sure first start R and execute

> system("echo $LD_LIBRARY_PATH")

and then using this value for LD_LIBRARY_PATH do

$ export LD_LIBRARY_PATH=<R's value for this> $ ldd `R RHOME`/bin/exec/R

which will list the shared libraries R will try to load to resolve links to shared libraries.

Having said that, I have tried your example on several platforms with several configurations, and I get NaNs only when R is calling the Lapack routine dsyevr (R's builtin Lapack) with an external (optimized) blas (either Goto or ATLAS's blas) but not R's builtin blas. Moreover even with the optimized blas, if I use dysev instead of dsyevr, (eigen() executes a .Call("La_rs",x,only.values,"dsyevr",PACKAGE="base"), I execute this from R with "dsyev" in place of "dsyevr") I get no NaNs.

So it looks like a problem with a blas routine used by dsyevr but not dsyev, but I have yet to confirm.

I note that your C program does not use either of these lapack routines.

Reid Huntsinger

-----Original Message-----
[] On Behalf Of Globe Trotter Sent: Tuesday, May 03, 2005 12:21 PM
To: Huntsinger, Reid; Subject: RE: [R] eigenvalues of a circulant matrix


The R was downloaded in binary form (Fedora Core 3 RPM) from a CRAN mirror. I
do not know which LAPACK it links to, but the only LAPACK on my machine is lapack-3.0-28 (RPM installation). How does one figure out which BLAS or whether
it is threaded?

Many thanks and best wishes!

> As I pointed out in my previous post, in eigen() the matrix is "inspected
> for symmetry" so symmetric=TRUE is the same as not specifying this at all.
> You could try symmetric=FALSE...
> Reid Huntsinger
> -----Original Message-----
> From:
> [] On Behalf Of Globe Trotter
> Sent: Monday, May 02, 2005 10:51 PM
> To:
> Subject: Re: [R] eigenvalues of a circulant matrix
> OK, here we go:
> I am submitting two attachments. The first is the datafile called kinv
> to
> create my circulant matrix, using the following commands:
> x<-scan("kinv")
> y<-x[c(109:1,0:108)]
> X=toeplitz(y)
> eigen(X)
> write(X,ncol=216,file="test.dat")
> reports the following columns full of NaN's: 18, 58, 194, 200. (Note that
> eigen(X,symmetric=T) makes no difference and I get the same as above).
> The second attachment contains only the eigenvectors obtained on calling a
> LAPACK routine directly (from C). The eigenvalues are essentially the same
> as
> that obtained using R. Here, I use the LAPACK-recommended double precision
> routine dspevd() routine for symmetric matrices in packed storage format.
> Note
> the absence of the NaN's....I would be happy to send my C programs to
> whoever
> is interested.
> I am using
> :~> uname -a
> Linux 2.6.11-1.14_FC3 #1 Thu Apr 7 19:23:49 EDT 2005 i686 i686 i386
> GNU/Linux
> and R.2.0.1.
> Many thanks and best wishes!
> ______________________________________________
> mailing list
> PLEASE do read the posting guide!


> Notice: This e-mail message, together with any attachment...{{dropped}}
______________________________________________ mailing list PLEASE do read the posting guide! ______________________________________________ mailing list PLEASE do read the posting guide!
Received on Wed May 04 03:35:29 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:32 EST