diff options
Diffstat (limited to 'TESTING/LIN')
-rw-r--r-- | TESTING/LIN/alahd.f | 28 | ||||
-rw-r--r-- | TESTING/LIN/cchksy.f | 52 | ||||
-rw-r--r-- | TESTING/LIN/dchksy.f | 61 | ||||
-rw-r--r-- | TESTING/LIN/schksy.f | 60 | ||||
-rw-r--r-- | TESTING/LIN/zchksy.f | 59 |
5 files changed, 200 insertions, 60 deletions
diff --git a/TESTING/LIN/alahd.f b/TESTING/LIN/alahd.f index db2ad217..d147bc20 100644 --- a/TESTING/LIN/alahd.f +++ b/TESTING/LIN/alahd.f @@ -223,9 +223,35 @@ WRITE( IOUNIT, FMT = 9955 )7 WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) * - ELSE IF( LSAMEN( 2, P2, 'SY' ) .OR. LSAMEN( 2, P2, 'SP' ) ) THEN + ELSE IF( LSAMEN( 2, P2, 'SY' ) ) THEN * * SY: Symmetric indefinite full +* + IF( LSAME( C3, 'Y' ) ) THEN + WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric' + ELSE + WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric' + END IF + WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' ) + IF( SORD ) THEN + WRITE( IOUNIT, FMT = 9972 ) + ELSE + WRITE( IOUNIT, FMT = 9971 ) + END IF + WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' ) + WRITE( IOUNIT, FMT = 9953 )1 + WRITE( IOUNIT, FMT = 9961 )2 + WRITE( IOUNIT, FMT = 9960 )3 + WRITE( IOUNIT, FMT = 9960 )4 + WRITE( IOUNIT, FMT = 9959 )5 + WRITE( IOUNIT, FMT = 9958 )6 + WRITE( IOUNIT, FMT = 9956 )7 + WRITE( IOUNIT, FMT = 9957 )8 + WRITE( IOUNIT, FMT = 9955 )9 + WRITE( IOUNIT, FMT = '( '' Messages:'' )' ) +* + ELSE IF( LSAMEN( 2, P2, 'SP' ) ) THEN +* * SP: Symmetric indefinite packed * IF( LSAME( C3, 'Y' ) ) THEN diff --git a/TESTING/LIN/cchksy.f b/TESTING/LIN/cchksy.f index f0f90506..31a6ba21 100644 --- a/TESTING/LIN/cchksy.f +++ b/TESTING/LIN/cchksy.f @@ -22,7 +22,7 @@ * Purpose * ======= * -* CCHKSY tests CSYTRF, -TRI, -TRS, -RFS, and -CON. +* CCHKSY tests CSYTRF, -TRI, -TRS, -TRS2, -RFS, and -CON. * * Arguments * ========= @@ -94,7 +94,7 @@ INTEGER NTYPES PARAMETER ( NTYPES = 11 ) INTEGER NTESTS - PARAMETER ( NTESTS = 8 ) + PARAMETER ( NTESTS = 9 ) * .. * .. Local Scalars .. LOGICAL TRFCON, ZEROT @@ -406,12 +406,40 @@ $ LDA, RWORK, RESULT( 3 ) ) * *+ TEST 4 +* Solve and compute residual for A * X = B. +* + SRNAMT = 'CLARHS' + CALL CLARHS( PATH, XTYPE, UPLO, ' ', N, N, KL, KU, + $ NRHS, A, LDA, XACT, LDA, B, LDA, + $ ISEED, INFO ) + CALL CLACPY( 'Full', N, NRHS, B, LDA, X, LDA ) +* + SRNAMT = 'CSYTRS2' + CALL CSYCONV( UPLO, 'C', N, AFAC, LDA, IWORK, WORK, + $ INFO ) + CALL CSYTRS2( UPLO, N, NRHS, AFAC, LDA, IWORK, X, + $ LDA, WORK, INFO ) + CALL CSYCONV( UPLO, 'R', N, AFAC, LDA, IWORK, WORK, + $ INFO ) +* +* Check error code from CSYTRS2. +* + IF( INFO.NE.0 ) + $ CALL ALAERH( PATH, 'CSYTRS2', INFO, 0, UPLO, N, + $ N, -1, -1, NRHS, IMAT, NFAIL, + $ NERRS, NOUT ) +* + CALL CLACPY( 'Full', N, NRHS, B, LDA, WORK, LDA ) + CALL CSYT02( UPLO, N, NRHS, A, LDA, X, LDA, WORK, + $ LDA, RWORK, RESULT( 4 ) ) +* +*+ TEST 5 * Check solution from generated exact solution. * CALL CGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC, - $ RESULT( 4 ) ) + $ RESULT( 5 ) ) * -*+ TESTS 5, 6, and 7 +*+ TESTS 6, 7, and 8 * Use iterative refinement to improve the solution. * SRNAMT = 'CSYRFS' @@ -428,15 +456,15 @@ $ NERRS, NOUT ) * CALL CGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC, - $ RESULT( 5 ) ) + $ RESULT( 6 ) ) CALL CPOT05( UPLO, N, NRHS, A, LDA, B, LDA, X, LDA, $ XACT, LDA, RWORK, RWORK( NRHS+1 ), - $ RESULT( 6 ) ) + $ RESULT( 7 ) ) * * Print information about the tests that did not pass * the threshold. * - DO 120 K = 3, 7 + DO 120 K = 3, 8 IF( RESULT( K ).GE.THRESH ) THEN IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) $ CALL ALAHD( NOUT, PATH ) @@ -448,7 +476,7 @@ NRUN = NRUN + 5 130 CONTINUE * -*+ TEST 8 +*+ TEST 9 * Get an estimate of RCOND = 1/CNDNUM. * 140 CONTINUE @@ -463,16 +491,16 @@ $ CALL ALAERH( PATH, 'CSYCON', INFO, 0, UPLO, N, N, $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) * - RESULT( 8 ) = SGET06( RCOND, RCONDC ) + RESULT( 9 ) = SGET06( RCOND, RCONDC ) * * Print information about the tests that did not pass * the threshold. * - IF( RESULT( 8 ).GE.THRESH ) THEN + IF( RESULT( 9 ).GE.THRESH ) THEN IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) $ CALL ALAHD( NOUT, PATH ) - WRITE( NOUT, FMT = 9997 )UPLO, N, IMAT, 8, - $ RESULT( 8 ) + WRITE( NOUT, FMT = 9997 )UPLO, N, IMAT, 9, + $ RESULT( 9 ) NFAIL = NFAIL + 1 END IF NRUN = NRUN + 1 diff --git a/TESTING/LIN/dchksy.f b/TESTING/LIN/dchksy.f index 97e040e7..4bedee89 100644 --- a/TESTING/LIN/dchksy.f +++ b/TESTING/LIN/dchksy.f @@ -21,7 +21,7 @@ * Purpose * ======= * -* DCHKSY tests DSYTRF, -TRI, -TRS, -RFS, and -CON. +* DCHKSY tests DSYTRF, -TRI, -TRS, -TRS2, -RFS, and -CON. * * Arguments * ========= @@ -93,7 +93,7 @@ INTEGER NTYPES PARAMETER ( NTYPES = 10 ) INTEGER NTESTS - PARAMETER ( NTESTS = 8 ) + PARAMETER ( NTESTS = 9 ) * .. * .. Local Scalars .. LOGICAL TRFCON, ZEROT @@ -116,8 +116,8 @@ * .. External Subroutines .. EXTERNAL ALAERH, ALAHD, ALASUM, DERRSY, DGET04, DLACPY, $ DLARHS, DLATB4, DLATMS, DPOT02, DPOT03, DPOT05, - $ DSYCON, DSYRFS, DSYT01, DSYTRF, DSYTRI, DSYTRS, - $ XLAENV + $ DSYCON, DSYCONV, DSYRFS, DSYT01, DSYTRF, DSYTRI, + $ DSYTRS, DSYTRS2, XLAENV * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -371,7 +371,7 @@ DO 130 IRHS = 1, NNS NRHS = NSVAL( IRHS ) * -*+ TEST 3 +*+ TEST 3 ( Using TRS) * Solve and compute residual for A * X = B. * SRNAMT = 'DLARHS' @@ -395,13 +395,42 @@ CALL DPOT02( UPLO, N, NRHS, A, LDA, X, LDA, WORK, $ LDA, RWORK, RESULT( 3 ) ) * -*+ TEST 4 +*+ TEST 4 (Using TRS2) +* +* Solve and compute residual for A * X = B. +* + SRNAMT = 'DLARHS' + CALL DLARHS( PATH, XTYPE, UPLO, ' ', N, N, KL, KU, + $ NRHS, A, LDA, XACT, LDA, B, LDA, + $ ISEED, INFO ) + CALL DLACPY( 'Full', N, NRHS, B, LDA, X, LDA ) +* + SRNAMT = 'DSYTRS2' + CALL DSYCONV( UPLO, 'C', N, AFAC, LDA, IWORK, WORK, + $ INFO ) + CALL DSYTRS2( UPLO, N, NRHS, AFAC, LDA, IWORK, X, + $ LDA, WORK, INFO ) + CALL DSYCONV( UPLO, 'R', N, AFAC, LDA, IWORK, WORK, + $ INFO ) +* +* Check error code from DSYTRS2. +* + IF( INFO.NE.0 ) + $ CALL ALAERH( PATH, 'DSYTRS2', INFO, 0, UPLO, N, + $ N, -1, -1, NRHS, IMAT, NFAIL, + $ NERRS, NOUT ) +* + CALL DLACPY( 'Full', N, NRHS, B, LDA, WORK, LDA ) + CALL DPOT02( UPLO, N, NRHS, A, LDA, X, LDA, WORK, + $ LDA, RWORK, RESULT( 4 ) ) +* +*+ TEST 5 * Check solution from generated exact solution. * CALL DGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC, - $ RESULT( 4 ) ) + $ RESULT( 5 ) ) * -*+ TESTS 5, 6, and 7 +*+ TESTS 6, 7, and 8 * Use iterative refinement to improve the solution. * SRNAMT = 'DSYRFS' @@ -418,15 +447,15 @@ $ NERRS, NOUT ) * CALL DGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC, - $ RESULT( 5 ) ) + $ RESULT( 6 ) ) CALL DPOT05( UPLO, N, NRHS, A, LDA, B, LDA, X, LDA, $ XACT, LDA, RWORK, RWORK( NRHS+1 ), - $ RESULT( 6 ) ) + $ RESULT( 7 ) ) * * Print information about the tests that did not pass * the threshold. * - DO 120 K = 3, 7 + DO 120 K = 3, 8 IF( RESULT( K ).GE.THRESH ) THEN IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) $ CALL ALAHD( NOUT, PATH ) @@ -438,7 +467,7 @@ NRUN = NRUN + 5 130 CONTINUE * -*+ TEST 8 +*+ TEST 9 * Get an estimate of RCOND = 1/CNDNUM. * 140 CONTINUE @@ -453,16 +482,16 @@ $ CALL ALAERH( PATH, 'DSYCON', INFO, 0, UPLO, N, N, $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) * - RESULT( 8 ) = DGET06( RCOND, RCONDC ) + RESULT( 9 ) = DGET06( RCOND, RCONDC ) * * Print information about the tests that did not pass * the threshold. * - IF( RESULT( 8 ).GE.THRESH ) THEN + IF( RESULT( 9 ).GE.THRESH ) THEN IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) $ CALL ALAHD( NOUT, PATH ) - WRITE( NOUT, FMT = 9997 )UPLO, N, IMAT, 8, - $ RESULT( 8 ) + WRITE( NOUT, FMT = 9997 )UPLO, N, IMAT, 9, + $ RESULT( 9 ) NFAIL = NFAIL + 1 END IF NRUN = NRUN + 1 diff --git a/TESTING/LIN/schksy.f b/TESTING/LIN/schksy.f index 2065292a..32739b68 100644 --- a/TESTING/LIN/schksy.f +++ b/TESTING/LIN/schksy.f @@ -21,7 +21,7 @@ * Purpose * ======= * -* SCHKSY tests SSYTRF, -TRI, -TRS, -RFS, and -CON. +* SCHKSY tests SSYTRF, -TRI, -TRS, -TRS2, -RFS, and -CON. * * Arguments * ========= @@ -93,7 +93,7 @@ INTEGER NTYPES PARAMETER ( NTYPES = 10 ) INTEGER NTESTS - PARAMETER ( NTESTS = 8 ) + PARAMETER ( NTESTS = 9 ) * .. * .. Local Scalars .. LOGICAL TRFCON, ZEROT @@ -116,8 +116,8 @@ * .. External Subroutines .. EXTERNAL ALAERH, ALAHD, ALASUM, SERRSY, SGET04, SLACPY, $ SLARHS, SLATB4, SLATMS, SPOT02, SPOT03, SPOT05, - $ SSYCON, SSYRFS, SSYT01, SSYTRF, SSYTRI, SSYTRS, - $ XLAENV + $ SSYCON, SSYCONV, SSYRFS, SSYT01, SSYTRF, SSYTRI, + $ SSYTRS, SSYTRS2, XLAENV * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -371,7 +371,7 @@ DO 130 IRHS = 1, NNS NRHS = NSVAL( IRHS ) * -*+ TEST 3 +*+ TEST 3 (Using DSYTRS) * Solve and compute residual for A * X = B. * SRNAMT = 'SLARHS' @@ -395,13 +395,41 @@ CALL SPOT02( UPLO, N, NRHS, A, LDA, X, LDA, WORK, $ LDA, RWORK, RESULT( 3 ) ) * -*+ TEST 4 +*+ TEST 4 (Using DSYTRS2) +* Solve and compute residual for A * X = B. +* + SRNAMT = 'SLARHS' + CALL SLARHS( PATH, XTYPE, UPLO, ' ', N, N, KL, KU, + $ NRHS, A, LDA, XACT, LDA, B, LDA, + $ ISEED, INFO ) + CALL SLACPY( 'Full', N, NRHS, B, LDA, X, LDA ) +* + SRNAMT = 'DSYTRS2' + CALL SSYCONV( UPLO, 'C', N, AFAC, LDA, IWORK, WORK, + $ INFO ) + CALL SSYTRS2( UPLO, N, NRHS, AFAC, LDA, IWORK, X, + $ LDA, WORK, INFO ) + CALL SSYCONV( UPLO, 'R', N, AFAC, LDA, IWORK, WORK, + $ INFO ) +* +* Check error code from SSYTRS2. +* + IF( INFO.NE.0 ) + $ CALL ALAERH( PATH, 'SSYTRS2', INFO, 0, UPLO, N, + $ N, -1, -1, NRHS, IMAT, NFAIL, + $ NERRS, NOUT ) +* + CALL SLACPY( 'Full', N, NRHS, B, LDA, WORK, LDA ) + CALL SPOT02( UPLO, N, NRHS, A, LDA, X, LDA, WORK, + $ LDA, RWORK, RESULT( 4 ) ) +* +*+ TEST 5 * Check solution from generated exact solution. * CALL SGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC, - $ RESULT( 4 ) ) + $ RESULT( 5 ) ) * -*+ TESTS 5, 6, and 7 +*+ TESTS 6, 7, and 8 * Use iterative refinement to improve the solution. * SRNAMT = 'SSYRFS' @@ -418,15 +446,15 @@ $ NERRS, NOUT ) * CALL SGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC, - $ RESULT( 5 ) ) + $ RESULT( 6 ) ) CALL SPOT05( UPLO, N, NRHS, A, LDA, B, LDA, X, LDA, $ XACT, LDA, RWORK, RWORK( NRHS+1 ), - $ RESULT( 6 ) ) + $ RESULT( 7 ) ) * * Print information about the tests that did not pass * the threshold. * - DO 120 K = 3, 7 + DO 120 K = 3, 8 IF( RESULT( K ).GE.THRESH ) THEN IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) $ CALL ALAHD( NOUT, PATH ) @@ -438,7 +466,7 @@ NRUN = NRUN + 5 130 CONTINUE * -*+ TEST 8 +*+ TEST 9 * Get an estimate of RCOND = 1/CNDNUM. * 140 CONTINUE @@ -453,16 +481,16 @@ $ CALL ALAERH( PATH, 'SSYCON', INFO, 0, UPLO, N, N, $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) * - RESULT( 8 ) = SGET06( RCOND, RCONDC ) + RESULT( 9 ) = SGET06( RCOND, RCONDC ) * * Print information about the tests that did not pass * the threshold. * - IF( RESULT( 8 ).GE.THRESH ) THEN + IF( RESULT( 9 ).GE.THRESH ) THEN IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) $ CALL ALAHD( NOUT, PATH ) - WRITE( NOUT, FMT = 9997 )UPLO, N, IMAT, 8, - $ RESULT( 8 ) + WRITE( NOUT, FMT = 9997 )UPLO, N, IMAT, 9, + $ RESULT( 9 ) NFAIL = NFAIL + 1 END IF NRUN = NRUN + 1 diff --git a/TESTING/LIN/zchksy.f b/TESTING/LIN/zchksy.f index fcc794ae..3995c08e 100644 --- a/TESTING/LIN/zchksy.f +++ b/TESTING/LIN/zchksy.f @@ -22,7 +22,7 @@ * Purpose * ======= * -* ZCHKSY tests ZSYTRF, -TRI, -TRS, -RFS, and -CON. +* ZCHKSY tests ZSYTRF, -TRI, -TRS, -TRS2, -RFS, and -CON. * * Arguments * ========= @@ -94,7 +94,7 @@ INTEGER NTYPES PARAMETER ( NTYPES = 11 ) INTEGER NTESTS - PARAMETER ( NTESTS = 8 ) + PARAMETER ( NTESTS = 9 ) * .. * .. Local Scalars .. LOGICAL TRFCON, ZEROT @@ -118,7 +118,7 @@ EXTERNAL ALAERH, ALAHD, ALASUM, XLAENV, ZERRSY, ZGET04, $ ZLACPY, ZLARHS, ZLATB4, ZLATMS, ZLATSY, ZPOT05, $ ZSYCON, ZSYRFS, ZSYT01, ZSYT02, ZSYT03, ZSYTRF, - $ ZSYTRI, ZSYTRS + $ ZSYTRI, ZSYTRS, ZSYTRS2 * .. * .. Intrinsic Functions .. INTRINSIC MAX, MIN @@ -381,7 +381,7 @@ DO 130 IRHS = 1, NNS NRHS = NSVAL( IRHS ) * -*+ TEST 3 +*+ TEST 3 (Using ZSYTRS) * Solve and compute residual for A * X = B. * SRNAMT = 'ZLARHS' @@ -405,13 +405,42 @@ CALL ZSYT02( UPLO, N, NRHS, A, LDA, X, LDA, WORK, $ LDA, RWORK, RESULT( 3 ) ) * -*+ TEST 4 +*+ TEST 4 (Using ZSYTRS2) +* Solve and compute residual for A * X = B. +* + SRNAMT = 'ZLARHS' + CALL ZLARHS( PATH, XTYPE, UPLO, ' ', N, N, KL, KU, + $ NRHS, A, LDA, XACT, LDA, B, LDA, + $ ISEED, INFO ) + CALL ZLACPY( 'Full', N, NRHS, B, LDA, X, LDA ) +* + SRNAMT = 'ZSYTRS2' + CALL ZSYCONV( UPLO, 'C', N, AFAC, LDA, IWORK, WORK, + $ INFO ) + CALL ZSYTRS2( UPLO, N, NRHS, AFAC, LDA, IWORK, X, + $ LDA, WORK, INFO ) + CALL ZSYCONV( UPLO, 'R', N, AFAC, LDA, IWORK, WORK, + $ INFO ) +* +* Check error code from ZSYTRS. +* + IF( INFO.NE.0 ) + $ CALL ALAERH( PATH, 'ZSYTRS', INFO, 0, UPLO, N, + $ N, -1, -1, NRHS, IMAT, NFAIL, + $ NERRS, NOUT ) +* + CALL ZLACPY( 'Full', N, NRHS, B, LDA, WORK, LDA ) + CALL ZSYT02( UPLO, N, NRHS, A, LDA, X, LDA, WORK, + $ LDA, RWORK, RESULT( 4 ) ) +* +* +*+ TEST 5 * Check solution from generated exact solution. * CALL ZGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC, - $ RESULT( 4 ) ) + $ RESULT( 5 ) ) * -*+ TESTS 5, 6, and 7 +*+ TESTS 6, 7, and 8 * Use iterative refinement to improve the solution. * SRNAMT = 'ZSYRFS' @@ -428,15 +457,15 @@ $ NERRS, NOUT ) * CALL ZGET04( N, NRHS, X, LDA, XACT, LDA, RCONDC, - $ RESULT( 5 ) ) + $ RESULT( 6 ) ) CALL ZPOT05( UPLO, N, NRHS, A, LDA, B, LDA, X, LDA, $ XACT, LDA, RWORK, RWORK( NRHS+1 ), - $ RESULT( 6 ) ) + $ RESULT( 7 ) ) * * Print information about the tests that did not pass * the threshold. * - DO 120 K = 3, 7 + DO 120 K = 3, 8 IF( RESULT( K ).GE.THRESH ) THEN IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) $ CALL ALAHD( NOUT, PATH ) @@ -448,7 +477,7 @@ NRUN = NRUN + 5 130 CONTINUE * -*+ TEST 8 +*+ TEST 9 * Get an estimate of RCOND = 1/CNDNUM. * 140 CONTINUE @@ -463,16 +492,16 @@ $ CALL ALAERH( PATH, 'ZSYCON', INFO, 0, UPLO, N, N, $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) * - RESULT( 8 ) = DGET06( RCOND, RCONDC ) + RESULT( 9 ) = DGET06( RCOND, RCONDC ) * * Print information about the tests that did not pass * the threshold. * - IF( RESULT( 8 ).GE.THRESH ) THEN + IF( RESULT( 9 ).GE.THRESH ) THEN IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) $ CALL ALAHD( NOUT, PATH ) - WRITE( NOUT, FMT = 9997 )UPLO, N, IMAT, 8, - $ RESULT( 8 ) + WRITE( NOUT, FMT = 9997 )UPLO, N, IMAT, 9, + $ RESULT( 9 ) NFAIL = NFAIL + 1 END IF NRUN = NRUN + 1 |