diff options
author | langou <langou@users.noreply.github.com> | 2009-12-16 01:51:40 +0000 |
---|---|---|
committer | langou <langou@users.noreply.github.com> | 2009-12-16 01:51:40 +0000 |
commit | ecf41ea0c0ac83c20b0f4268bc4ca1e4b3ff9663 (patch) | |
tree | c567032b88624794141dc9d81e75d1965bbfc0ae /SRC/dsyevr.f | |
parent | be91663bbc3e38d7debd10ea3dda660f85ff69fe (diff) | |
download | lapack-ecf41ea0c0ac83c20b0f4268bc4ca1e4b3ff9663.tar.gz lapack-ecf41ea0c0ac83c20b0f4268bc4ca1e4b3ff9663.tar.bz2 lapack-ecf41ea0c0ac83c20b0f4268bc4ca1e4b3ff9663.zip |
Correct a bug found by Ashutosh Mahajan from Mathematics and Computer Science Division of Argonne National Labs.
Email sent on Fri, 11 Dec 2009 14:51:07 to lapack@cs.utk.edu.
Subject: [Lapack] bug in dsyevr.f when N = 1
when dsyevr is called with N=1, then it returns without setting up ISUPPZ values.
331: IF( N.EQ.1 ) THEN
...
342: IF( WANTZ )
343: $ Z( 1, 1 ) = ONE
344: RETURN
345: END IF
It should rather do
IF( WANTZ )
Z( 1, 1 ) = ONE
ISUPPZ(1) = 1
ISUPPZ(2) = 1
END IF
Diffstat (limited to 'SRC/dsyevr.f')
-rw-r--r-- | SRC/dsyevr.f | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/SRC/dsyevr.f b/SRC/dsyevr.f index 954c1a03..a5247679 100644 --- a/SRC/dsyevr.f +++ b/SRC/dsyevr.f @@ -339,8 +339,11 @@ W( 1 ) = A( 1, 1 ) END IF END IF - IF( WANTZ ) - $ Z( 1, 1 ) = ONE + IF( WANTZ ) THEN + Z( 1, 1 ) = ONE + ISUPPZ( 1 ) = 1 + ISUPPZ( 2 ) = 1 + END IF RETURN END IF * |