diff options
author | julie <julielangou@users.noreply.github.com> | 2012-04-25 05:14:31 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2012-04-25 05:14:31 +0000 |
commit | 88d8de0d4f4248fdb0d600daed31522f30a2313a (patch) | |
tree | 542c3f97381f8f3e32d9a5d177ed400ed99704d9 /SRC/dsyevd.f | |
parent | f5cdededb32ba1e5cbff702d1b028d76605d9e51 (diff) | |
download | lapack-88d8de0d4f4248fdb0d600daed31522f30a2313a.tar.gz lapack-88d8de0d4f4248fdb0d600daed31522f30a2313a.tar.bz2 lapack-88d8de0d4f4248fdb0d600daed31522f30a2313a.zip |
Fix small problem detected by user Yao Toa. sent to the LAPACK mailing list on April 23th 2012
It seems that this one has been around forever
============
hi.
i found a subtle difference between dsyevd.f and ssyevd.f when using lapack 3.4.1.
dsyevd updates LOPT after calling dsytrd and dlacpy. but those codes are not visible in ssyevd.f, cheevd.f and zheevd.f.
pls refer to line 329, 344 in dsyevd.f.
i wonder whether those codes are necessary, because dsyevd has precalculated LOPT with at least 1+6*N+2*N**2.
if those codes must be there, why not for ssyevd?
thanks in advance.
Yao Tao
Diffstat (limited to 'SRC/dsyevd.f')
-rw-r--r-- | SRC/dsyevd.f | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/SRC/dsyevd.f b/SRC/dsyevd.f index ccb02ad5..7d39a331 100644 --- a/SRC/dsyevd.f +++ b/SRC/dsyevd.f @@ -326,7 +326,6 @@ * CALL DSYTRD( UPLO, N, A, LDA, W, WORK( INDE ), WORK( INDTAU ), $ WORK( INDWRK ), LLWORK, IINFO ) - LOPT = 2*N + WORK( INDWRK ) * * For eigenvalues only, call DSTERF. For eigenvectors, first call * DSTEDC to generate the eigenvector matrix, WORK(INDWRK), of the @@ -341,7 +340,6 @@ CALL DORMTR( 'L', UPLO, 'N', N, N, A, LDA, WORK( INDTAU ), $ WORK( INDWRK ), N, WORK( INDWK2 ), LLWRK2, IINFO ) CALL DLACPY( 'A', N, N, WORK( INDWRK ), N, A, LDA ) - LOPT = MAX( LOPT, 1+6*N+2*N**2 ) END IF * * If matrix was scaled, then rescale eigenvalues appropriately. |