summaryrefslogtreecommitdiff
path: root/TESTING/EIG/zcsdts.f
diff options
context:
space:
mode:
authorjulie <julielangou@users.noreply.github.com>2011-09-23 15:26:46 +0000
committerjulie <julielangou@users.noreply.github.com>2011-09-23 15:26:46 +0000
commit46e1b19474b5150ce94f35cc0ec52e08c729985c (patch)
treeccd79fe74a19119405a263aac3a5a775d62999a0 /TESTING/EIG/zcsdts.f
parent839c47632cfc6e05e4dfca4c18ecfa093f53fbfc (diff)
downloadlapack-46e1b19474b5150ce94f35cc0ec52e08c729985c.tar.gz
lapack-46e1b19474b5150ce94f35cc0ec52e08c729985c.tar.bz2
lapack-46e1b19474b5150ce94f35cc0ec52e08c729985c.zip
Commit patch sent by Sven.
Patch was based on 3.3.0, so required a little bit of merging. Thank you Sven for the corrections. Julie JL TESTING/EIG zerrgg.f Declare ILO, IHI SRC --- I have corrected all the following warnings and errors: c/d/s/zsysv.f, Unused external reference ILAENV >JL OK c/d/s/zsysv.f, Unused local variable NB >JL ALREADY CORRECTED sgsvj0.f, Unused intrinsic AMIN1 > JL OK d/sorbdb.f, Unused intrinsic MIN > JL OK sorcsd.f, Unused intrinsic SIN sorcsd.f, Unused intrinsic COS > JL OK MERGE cpoequb.f, Unused intrinsic AIMAG cpoequb.f, Unused intrinsic REAL cpoequb.f, Unused local variable ZDUM zgeequb.f, REAL --> DBLE > JL OK sorcsd.f, line 330: Inconsistent data type REAL (previously INTEGER) for argument 14 in reference to SORBDB sorcsd.f, line 340: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGQR sorcsd.f, line 345: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGQR sorcsd.f, line 356: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGLQ sorcsd.f, line 363: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGLQ sorcsd.f, line 369: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGLQ sorcsd.f, line 374: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGLQ sorcsd.f, line 385: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGQR sorcsd.f, line 392: Inconsistent data type REAL (previously INTEGER) for argument 4 in reference to SORGQR sorcsd.f, line 399: Inconsistent data type REAL (previously INTEGER) for argument 9 in reference to SBBCSD > JL OK MERGE ila(s/d/c/z)lr.f In the WHILE loop, at about line 59 I inserted IF (I.EQ.0) THEN EXIT END IF since, otherwise when I = 0, A(0,J) is referenced. > JL OK TESTING/MATGEN -------------- s/dlatm7.f line 187: I replaced IF( N.GT.1 ) THEN by IF( N.GT.1 .AND. RANK.GT.1 ) THEN Otherwise I get a division by zero. > JL OK s/dlaror.f I moved: INFO = 0 from line 125 to line 121 in front of IF( N.EQ.0 .OR. M.EQ.0 ) $ RETURN otherwise INFO is not defined on return when N or M are zero. Similar change for c/zlaror.f > JL OK TESTING/LIN ----------- s/derrsy.f In calls to S/DSYTRI2: I replaced IW by IW(1) since the dummy argument (LWORK) is a scalar. > JL OK c/zerrrfp.f I made ALPHA and BETA REAL/DOUBLE and introduced COMPLEX/COMPLEX*16 CALPHA since calls to C/ZHFRK need real alpha and beta. In calls to CTFSM, I then replaced ALPHA with CALPHA. In cerrrfp.f, I replaced 1.0D0 with 1.0E0 (not strictly necessary, but cleaner). > JL OK dpot06.f Removed the unused declaration of LSAME > JL OK d/zdrvac.f Removed the unused declaration of LSAME > JL OK MERGE s/d/c/z/ckcsd.f Removed the unused declarations of S/D/C/ZLANGE, SIN and COS > JL OK c/zgennd.f Removed the unused variable OUT > JL already DONE Corrected the following warnings and errors: dchksy.f, Unused local variable MYWORK > JL already DONE ddrvgbx.f, line 792: Different number of arguments from the first call of DGBT02 > JL OK cdrvgbx.f, line 726: Inconsistent data type REAL (previously COMPLEX) for argument 4 in reference to CLASET cdrvgbx.f, line 728: Inconsistent data type REAL (previously COMPLEX) for argument 4 in reference to CLASET cdrvgbx.f, line 780: Inconsistent data type REAL (previously COMPLEX) for argument 10 in reference to CGBT01 cdrvgbx.f, line 794: Different number of arguments from the first call of CGBT02 > JL OK zdrvgbx.f, line 726: Inconsistent data type DOUBLE PRECISION (previously COMPLEX(KIND(0d0))) for argument 4 in reference to ZLASET zdrvgbx.f, line 728: Inconsistent data type DOUBLE PRECISION (previously COMPLEX(KIND(0d0))) for argument 4 in reference to ZLASET zdrvgbx.f, line 780: Inconsistent data type DOUBLE PRECISION (previously COMPLEX(KIND(0d0))) for argument 10 in reference to ZGBT01 zdrvgbx.f, line 794: Different number of arguments from the first call of ZGBT02 > JL OK TESTING/EIG ----------- s/d/c/zchkee.f I inserted CALL XLAENV( 12, 1 ) at line 1208, since IPARMS(ISPEC) with ISPEC = 12 needs to be set. (I think I had to do this with them all, certainly with zchkee.f) > JL OK zchkee.f cchkee.f c/zchkee.f In line 2316, the 15th argument of C/ZCKCSD should be real, not complex, so I replaced A(1,7) by RWORK. > JL OK c/zcsdts.f In calls to C/ZHERK I have replaced ONE by REALONE as arguments 5 and 8 should be real. > JL OK s/d/c/zcsdts.f Division by zero occurs at line 155 in computing EPS when M = 0, so I have modified EPS2 = MAX( ULP, CLANGE( '1', M, M, WORK, LDX, RWORK ) / REAL( M ) ) to IF (M.GT.0) THEN EPS2 = MAX( ULP, $ CLANGE( '1', M, M, WORK, LDX, RWORK ) / REAL( M ) ) ELSE EPS2 = ULP END IF > JL OK SRC/VARIANTS/lu/CR ------------------ s/d/c/zgetrf Removed the unused intrinsic MOD > JL OK
Diffstat (limited to 'TESTING/EIG/zcsdts.f')
-rw-r--r--TESTING/EIG/zcsdts.f28
1 files changed, 16 insertions, 12 deletions
diff --git a/TESTING/EIG/zcsdts.f b/TESTING/EIG/zcsdts.f
index 3436d9ef..2aa7c448 100644
--- a/TESTING/EIG/zcsdts.f
+++ b/TESTING/EIG/zcsdts.f
@@ -150,10 +150,14 @@
ULP = DLAMCH( 'Precision' )
ULPINV = REALONE / ULP
CALL ZLASET( 'Full', M, M, ZERO, ONE, WORK, LDX )
- CALL ZHERK( 'Upper', 'Conjugate transpose', M, M, -ONE, X, LDX,
- $ ONE, WORK, LDX )
- EPS2 = MAX( ULP,
- $ ZLANGE( '1', M, M, WORK, LDX, RWORK ) / REAL( M ) )
+ CALL ZHERK( 'Upper', 'Conjugate transpose', M, M, -REALONE,
+ $ X, LDX, REALONE, WORK, LDX )
+ IF (M.GT.0) THEN
+ EPS2 = MAX( ULP,
+ $ ZLANGE( '1', M, M, WORK, LDX, RWORK ) / DBLE( M ) )
+ ELSE
+ EPS2 = ULP
+ END IF
R = MIN( P, M-P, Q, M-Q )
*
* Copy the matrix X to the array XF.
@@ -252,8 +256,8 @@
* Compute I - U1'*U1
*
CALL ZLASET( 'Full', P, P, ZERO, ONE, WORK, LDU1 )
- CALL ZHERK( 'Upper', 'Conjugate transpose', P, P, -ONE, U1, LDU1,
- $ ONE, WORK, LDU1 )
+ CALL ZHERK( 'Upper', 'Conjugate transpose', P, P, -REALONE,
+ $ U1, LDU1, REALONE, WORK, LDU1 )
*
* Compute norm( I - U'*U ) / ( MAX(1,P) * ULP ) .
*
@@ -263,8 +267,8 @@
* Compute I - U2'*U2
*
CALL ZLASET( 'Full', M-P, M-P, ZERO, ONE, WORK, LDU2 )
- CALL ZHERK( 'Upper', 'Conjugate transpose', M-P, M-P, -ONE, U2,
- $ LDU2, ONE, WORK, LDU2 )
+ CALL ZHERK( 'Upper', 'Conjugate transpose', M-P, M-P, -REALONE,
+ $ U2, LDU2, REALONE, WORK, LDU2 )
*
* Compute norm( I - U2'*U2 ) / ( MAX(1,M-P) * ULP ) .
*
@@ -274,8 +278,8 @@
* Compute I - V1T*V1T'
*
CALL ZLASET( 'Full', Q, Q, ZERO, ONE, WORK, LDV1T )
- CALL ZHERK( 'Upper', 'No transpose', Q, Q, -ONE, V1T, LDV1T, ONE,
- $ WORK, LDV1T )
+ CALL ZHERK( 'Upper', 'No transpose', Q, Q, -REALONE,
+ $ V1T, LDV1T, REALONE, WORK, LDV1T )
*
* Compute norm( I - V1T*V1T' ) / ( MAX(1,Q) * ULP ) .
*
@@ -285,8 +289,8 @@
* Compute I - V2T*V2T'
*
CALL ZLASET( 'Full', M-Q, M-Q, ZERO, ONE, WORK, LDV2T )
- CALL ZHERK( 'Upper', 'No transpose', M-Q, M-Q, -ONE, V2T, LDV2T,
- $ ONE, WORK, LDV2T )
+ CALL ZHERK( 'Upper', 'No transpose', M-Q, M-Q, -REALONE,
+ $ V2T, LDV2T, REALONE, WORK, LDV2T )
*
* Compute norm( I - V2T*V2T' ) / ( MAX(1,M-Q) * ULP ) .
*