diff options
author | igor175 <igor175@8a072113-8704-0410-8d35-dd094bca7971> | 2011-12-27 05:25:02 +0000 |
---|---|---|
committer | igor175 <igor175@8a072113-8704-0410-8d35-dd094bca7971> | 2011-12-27 05:25:02 +0000 |
commit | 6e221d7beca9ef060ec81ec5b0fc8558c4c47164 (patch) | |
tree | 4a580625f13549c573605b49b172b22dc7c62a72 | |
parent | 611b774a50b0de00c6bd41ad1a42614cb078359c (diff) | |
download | lapack-6e221d7beca9ef060ec81ec5b0fc8558c4c47164.tar.gz lapack-6e221d7beca9ef060ec81ec5b0fc8558c4c47164.tar.bz2 lapack-6e221d7beca9ef060ec81ec5b0fc8558c4c47164.zip |
added a special block diagonal matrix type to tests for COMPLEX*16 symmetric indefinite factorization routines with rook pivoting
-rw-r--r-- | TESTING/LIN/zchkaa.f | 4 | ||||
-rw-r--r-- | TESTING/LIN/zchksy.f | 1 | ||||
-rw-r--r-- | TESTING/LIN/zchksy_rook.f | 163 | ||||
-rw-r--r-- | TESTING/ztest.in | 2 |
4 files changed, 91 insertions, 79 deletions
diff --git a/TESTING/LIN/zchkaa.f b/TESTING/LIN/zchkaa.f index 5d1fa1a2..fefe5c25 100644 --- a/TESTING/LIN/zchkaa.f +++ b/TESTING/LIN/zchkaa.f @@ -52,7 +52,7 @@ *> ZHE 10 List types on next line if 0 < NTYPES < 10 *> ZHP 10 List types on next line if 0 < NTYPES < 10 *> ZSY 11 List types on next line if 0 < NTYPES < 11 -*> ZSR 10 List types on next line if 0 < NTYPES < 10 +*> ZSR 11 List types on next line if 0 < NTYPES < 11 *> ZSP 11 List types on next line if 0 < NTYPES < 11 *> ZTR 18 List types on next line if 0 < NTYPES < 18 *> ZTP 18 List types on next line if 0 < NTYPES < 18 @@ -691,7 +691,7 @@ * SR: symmetric indefinite matrices with Rook pivoting, * with rook (bounded Bunch-Kaufman) pivoting algorithm * - NTYPES = 10 + NTYPES = 11 CALL ALAREQ( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT ) * IF( TSTCHK ) THEN diff --git a/TESTING/LIN/zchksy.f b/TESTING/LIN/zchksy.f index cd9068e6..d622599b 100644 --- a/TESTING/LIN/zchksy.f +++ b/TESTING/LIN/zchksy.f @@ -394,6 +394,7 @@ * code for the 2 x 2 blocks. * CALL ZLATSY( UPLO, N, A, LDA, ISEED ) +* END IF * * Do for each value of NB in NBVAL diff --git a/TESTING/LIN/zchksy_rook.f b/TESTING/LIN/zchksy_rook.f index 966a6d84..cf802ab8 100644 --- a/TESTING/LIN/zchksy_rook.f +++ b/TESTING/LIN/zchksy_rook.f @@ -204,7 +204,7 @@ COMPLEX*16 CZERO PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ) ) INTEGER NTYPES - PARAMETER ( NTYPES = 10 ) + PARAMETER ( NTYPES = 11 ) INTEGER NTESTS PARAMETER ( NTESTS = 7 ) * .. @@ -231,8 +231,8 @@ * .. * .. External Subroutines .. EXTERNAL ALAERH, ALAHD, ALASUM, ZERRSY, ZGEEVX, ZGET04, - $ ZLACPY, ZLARHS, ZLATB4, ZLATMS, ZSYT02, ZSYT03, - $ ZSYCON_ROOK, ZSYT01_ROOK, ZSYTRF_ROOK, + $ ZLACPY, ZLARHS, ZLATB4, ZLATMS, ZLATSY,ZSYT02, + $ ZSYT03, ZSYCON_ROOK, ZSYT01_ROOK, ZSYTRF_ROOK, $ ZSYTRI_ROOK, ZSYTRS_ROOK, XLAENV * .. * .. Intrinsic Functions .. @@ -317,101 +317,112 @@ DO 250 IUPLO = 1, 2 UPLO = UPLOS( IUPLO ) * -* Begin generate the test matrix A. + IF( IMAT.NE.NTYPES ) THEN * -* Set up parameters with ZLATB4 for the matrix generator -* based on the type of matrix to be generated. +* Begin generate the test matrix A. * - CALL ZLATB4( MATPATH, IMAT, N, N, TYPE, KL, KU, ANORM, - $ MODE, CNDNUM, DIST ) +* Set up parameters with ZLATB4 for the matrix generator +* based on the type of matrix to be generated. * -* Generate a matrix with ZLATMS. + CALL ZLATB4( MATPATH, IMAT, N, N, TYPE, KL, KU, ANORM, + $ MODE, CNDNUM, DIST ) * - SRNAMT = 'ZLATMS' - CALL ZLATMS( N, N, DIST, ISEED, TYPE, RWORK, MODE, - $ CNDNUM, ANORM, KL, KU, UPLO, A, LDA, WORK, - $ INFO ) +* Generate a matrix with ZLATMS. * -* Check error code from ZLATMS and handle error. + SRNAMT = 'ZLATMS' + CALL ZLATMS( N, N, DIST, ISEED, TYPE, RWORK, MODE, + $ CNDNUM, ANORM, KL, KU, UPLO, A, LDA, + $ WORK, INFO ) * - IF( INFO.NE.0 ) THEN - CALL ALAERH( PATH, 'ZLATMS', INFO, 0, UPLO, N, N, -1, - $ -1, -1, IMAT, NFAIL, NERRS, NOUT ) +* Check error code from ZLATMS and handle error. * -* Skip all tests for this generated matrix -* - GO TO 250 - END IF + IF( INFO.NE.0 ) THEN + CALL ALAERH( PATH, 'ZLATMS', INFO, 0, UPLO, N, N, + $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) * -* For matrix types 3-6, zero one or more rows and -* columns of the matrix to test that INFO is returned -* correctly. +* Skip all tests for this generated matrix * - IF( ZEROT ) THEN - IF( IMAT.EQ.3 ) THEN - IZERO = 1 - ELSE IF( IMAT.EQ.4 ) THEN - IZERO = N - ELSE - IZERO = N / 2 + 1 + GO TO 250 END IF * - IF( IMAT.LT.6 ) THEN -* -* Set row and column IZERO to zero. +* For matrix types 3-6, zero one or more rows and +* columns of the matrix to test that INFO is returned +* correctly. * - IF( IUPLO.EQ.1 ) THEN - IOFF = ( IZERO-1 )*LDA - DO 20 I = 1, IZERO - 1 - A( IOFF+I ) = CZERO - 20 CONTINUE - IOFF = IOFF + IZERO - DO 30 I = IZERO, N - A( IOFF ) = CZERO - IOFF = IOFF + LDA - 30 CONTINUE + IF( ZEROT ) THEN + IF( IMAT.EQ.3 ) THEN + IZERO = 1 + ELSE IF( IMAT.EQ.4 ) THEN + IZERO = N ELSE - IOFF = IZERO - DO 40 I = 1, IZERO - 1 - A( IOFF ) = CZERO - IOFF = IOFF + LDA - 40 CONTINUE - IOFF = IOFF - IZERO - DO 50 I = IZERO, N - A( IOFF+I ) = CZERO - 50 CONTINUE + IZERO = N / 2 + 1 END IF - ELSE - IOFF = 0 - IF( IUPLO.EQ.1 ) THEN * -* Set the first IZERO rows and columns to zero. + IF( IMAT.LT.6 ) THEN * - DO 70 J = 1, N - I2 = MIN( J, IZERO ) - DO 60 I = 1, I2 - A( IOFF+I ) = CZERO - 60 CONTINUE - IOFF = IOFF + LDA - 70 CONTINUE - ELSE -* -* Set the last IZERO rows and columns to zero. +* Set row and column IZERO to zero. * - DO 90 J = 1, N - I1 = MAX( J, IZERO ) - DO 80 I = I1, N + IF( IUPLO.EQ.1 ) THEN + IOFF = ( IZERO-1 )*LDA + DO 20 I = 1, IZERO - 1 A( IOFF+I ) = CZERO - 80 CONTINUE - IOFF = IOFF + LDA - 90 CONTINUE + 20 CONTINUE + IOFF = IOFF + IZERO + DO 30 I = IZERO, N + A( IOFF ) = CZERO + IOFF = IOFF + LDA + 30 CONTINUE + ELSE + IOFF = IZERO + DO 40 I = 1, IZERO - 1 + A( IOFF ) = CZERO + IOFF = IOFF + LDA + 40 CONTINUE + IOFF = IOFF - IZERO + DO 50 I = IZERO, N + A( IOFF+I ) = CZERO + 50 CONTINUE + END IF + ELSE + IOFF = 0 + IF( IUPLO.EQ.1 ) THEN +* +* Set the first IZERO rows and columns to zero. +* + DO 70 J = 1, N + I2 = MIN( J, IZERO ) + DO 60 I = 1, I2 + A( IOFF+I ) = CZERO + 60 CONTINUE + IOFF = IOFF + LDA + 70 CONTINUE + ELSE +* +* Set the last IZERO rows and columns to zero. +* + DO 90 J = 1, N + I1 = MAX( J, IZERO ) + DO 80 I = I1, N + A( IOFF+I ) = CZERO + 80 CONTINUE + IOFF = IOFF + LDA + 90 CONTINUE + END IF END IF + ELSE + IZERO = 0 END IF +* +* End generate the test matrix A. +* ELSE - IZERO = 0 - END IF * -* End generate the test matrix A. +* Use a special block diagonal matrix to test alternate +* code for the 2 x 2 blocks. +* + CALL ZLATSY( UPLO, N, A, LDA, ISEED ) +* + END IF * * Do for each value of NB in NBVAL * diff --git a/TESTING/ztest.in b/TESTING/ztest.in index f47f5320..e6c7327e 100644 --- a/TESTING/ztest.in +++ b/TESTING/ztest.in @@ -25,7 +25,7 @@ ZPT 12 List types on next line if 0 < NTYPES < 12 ZHE 10 List types on next line if 0 < NTYPES < 10 ZHP 10 List types on next line if 0 < NTYPES < 10 ZSY 11 List types on next line if 0 < NTYPES < 11 -ZSR 10 List types on next line if 0 < NTYPES < 10 +ZSR 11 List types on next line if 0 < NTYPES < 11 ZSP 11 List types on next line if 0 < NTYPES < 11 ZTR 18 List types on next line if 0 < NTYPES < 18 ZTP 18 List types on next line if 0 < NTYPES < 18 |