>>>>> rdiaz writes:
> Dear All,
> Under Debian GNU/Linux La.svd (with method = "dgesdd") sometimes
gives the
> error
> "Error in La.svd(data, nu = 0, nv = min(nrow, ncol), method =
"dgesdd") :
> LAPACK routine DGESDD gave error code -12"
> It seems not to depend on the data per se, but on the relationship between
> numbers of rows and columns.
> For example, if the number of columns is 100, La.svd will fail when
> the number of rows is 56, but not if it is 55 or 57. It will not fail
> if we use "dgesvd". If the number of columns is 51, La.svd fails
when
> the number of rows is between 29 and 50 if we use "dgesdd".
> This happens if I use the latest deb packages (and thus ATLAS,
> etc). It does not happen if I build R in this same machine with
> "--without-blas" (where make check reports no errors). In case it
> matters, the bug does not show up in a different machine with Windwos
> 2000 and the Rblas.dll linked against ATLAS provided in
> http://cran.r-project.org/bin/windows/contrib/ATLAS/P4).
> I understand this is probably related to the issues mentioned in
> R-admin about LAPACK 3.0 and some of the issues recently discussed in
> this list by M. Burger, D. Bates and D. Eddelbuettel. Are there any
> workarounds (besides not using ATLAS at all?).
> Ramón
> ********************************
> An example of failure:
>> ## ncol = 100
>> nrow <- 56
>> ncol <- 100
>> data <- matrix(1:(nrow * ncol), ncol = ncol)
>> ## you get the errors if you use any other data
>> ## such as data <- matrix(rnorm(nrow * ncol), ncol = ncol)
>> svd(data) ## error
>> La.svd(data, nu = 0,
> nv = min(nrow, ncol), method = "dgesdd") ## error
>> La.svd(data, nu = 0,
> nv = min(nrow, ncol), method = "dgesvd") ## OK
>> ##ncol = 51; it fails with nrow in [29, 50]
> *************************
Confirmed on Debian GNU/Linux testing with atlas2-base-dev for both the
current 1.7.0 debs and 1.8.0 built from scratch using --with-lapack:
hornik@mithrandir:~/tmp$ ldd /usr/local/lib/R/modules/lapack.so
libR.so => not found
liblapack.so.2 => /usr/lib/atlas/liblapack.so.2 (0x40013000)
-k