From: Pauli Virtanen
Date: Wed, 21 Apr 2010 21:26:26 +0200
For your information: For some matrices DSYEVR, when told to compute a
small number of eigenvalues, returns non-orthogonal eigenvectors.
Perhaps it possible for the algorithm to detect this and return with an
This applies at least when using the automatically chosen ABSTOL.
However, at least for the example below, I wasn't able to find a
suitable ABSTOL for which it would work.
Maybe, this might have to do with the fact that for the example problem
below, the first eigenvalue is multiply degenerate, and the numerical
second eigenvalue is eps-close to the first one.
The following test program illustrates this:
with the test data
On Lapack 3.2.1 + reference BLAS, I get:
$ gfortran -o test test.f90 -llapack -lblas
$ ./test < L.txt
orth error ( 2 eigs): -0.96599125529927221 HUGE ERROR
orth error ( 3 eigs): -0.96599125529927232 HUGE ERROR
orth error ( 4 eigs): -0.96599125529927221 HUGE ERROR
orth error ( 5 eigs): -2.52928802610462387E-017
orth error ( 6 eigs): -1.47893223140021721E-016
orth error ( 7 eigs): -1.18177613284446356E-016
orth error ( 8 eigs): 0.0000000000000000
orth error ( 9 eigs): -2.84549495443531079E-016
orth error ( 10 eigs): -2.93456682158620488E-016