Thanks for the bug report. I have added your bug report to the LAPACK
Errata file. See: http://www.netlib.org/lapack/Errata/ , bug0032. We will
try to have a look at some points.
On Mon, 29 Jun 2009, Phil DeMier wrote:
We have discovered a problem with DSYEVX. The problem occurs for certain
matrices created using a specific algorithm.
We are able to work around the problem by removing the "matrix splitting"
code in dstebz. This problem also occurs in sstebz.
DO 10 J = 2, N
TMP1 = E( J-1 )**2
!! IF( ABS( D( J )*D( J-1 ) )*ULP**2+SAFEMN.GT.TMP1 ) THEN
!! ISPLIT( NSPLIT ) = J - 1
!! NSPLIT = NSPLIT + 1
!! WORK( J-1 ) = ZERO
WORK( J-1 ) = TMP1
PIVMIN = MAX( PIVMIN, TMP1 )
!! END IF
Please see the attached test program testevx.f which demonstrates the failure.
(See attached file: testevx.f)
Output from the test:
*** Math check results for DSYT22 with N= 7 and M= 5
*** exceeded the threshold value of .10000000D+03
*** Math check: | U' A U - S | / ( |A| m ulp )
*** result was .76390963D+13
*** Math check: | I - U'U | / ( m ulp )
*** result was .15278193D+15