| @@ -31,7 +31,7 @@ | |||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> CCHKTR tests CTRTRI, -TRS, -RFS, and -CON, and CLATRS | |||||
| *> CCHKTR tests CTRTRI, -TRS, -RFS, and -CON, and CLATRS(3) | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -184,7 +184,7 @@ | |||||
| INTEGER NTYPE1, NTYPES | INTEGER NTYPE1, NTYPES | ||||
| PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) | PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) | ||||
| INTEGER NTESTS | INTEGER NTESTS | ||||
| PARAMETER ( NTESTS = 9 ) | |||||
| PARAMETER ( NTESTS = 10 ) | |||||
| INTEGER NTRAN | INTEGER NTRAN | ||||
| PARAMETER ( NTRAN = 3 ) | PARAMETER ( NTRAN = 3 ) | ||||
| REAL ONE, ZERO | REAL ONE, ZERO | ||||
| @@ -195,13 +195,13 @@ | |||||
| CHARACTER*3 PATH | CHARACTER*3 PATH | ||||
| INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, | INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, | ||||
| $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN | $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN | ||||
| REAL AINVNM, ANORM, DUMMY, RCOND, RCONDC, RCONDI, | |||||
| $ RCONDO, SCALE | |||||
| REAL AINVNM, ANORM, BIGNUM, DUMMY, RCOND, RCONDC, | |||||
| $ RCONDI, RCONDO, RES, SCALE, SLAMCH | |||||
| * .. | * .. | ||||
| * .. Local Arrays .. | * .. Local Arrays .. | ||||
| CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) | CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) | ||||
| INTEGER ISEED( 4 ), ISEEDY( 4 ) | INTEGER ISEED( 4 ), ISEEDY( 4 ) | ||||
| REAL RESULT( NTESTS ) | |||||
| REAL RESULT( NTESTS ), SCALE3( 2 ) | |||||
| * .. | * .. | ||||
| * .. External Functions .. | * .. External Functions .. | ||||
| LOGICAL LSAME | LOGICAL LSAME | ||||
| @@ -210,9 +210,9 @@ | |||||
| * .. | * .. | ||||
| * .. External Subroutines .. | * .. External Subroutines .. | ||||
| EXTERNAL ALAERH, ALAHD, ALASUM, CCOPY, CERRTR, CGET04, | EXTERNAL ALAERH, ALAHD, ALASUM, CCOPY, CERRTR, CGET04, | ||||
| $ CLACPY, CLARHS, CLATRS, CLATTR, CTRCON, CTRRFS, | |||||
| $ CTRT01, CTRT02, CTRT03, CTRT05, CTRT06, CTRTRI, | |||||
| $ CTRTRS, XLAENV | |||||
| $ CLACPY, CLARHS, CLATRS, CLATRS3, CLATTR, | |||||
| $ CSSCAL, CTRCON, CTRRFS, CTRT01, CTRT02, CTRT03, | |||||
| $ CTRT05, CTRT06, CTRTRI, CTRTRS, XLAENV, SLAMCH | |||||
| * .. | * .. | ||||
| * .. Scalars in Common .. | * .. Scalars in Common .. | ||||
| LOGICAL LERR, OK | LOGICAL LERR, OK | ||||
| @@ -236,6 +236,7 @@ | |||||
| * | * | ||||
| PATH( 1: 1 ) = 'Complex precision' | PATH( 1: 1 ) = 'Complex precision' | ||||
| PATH( 2: 3 ) = 'TR' | PATH( 2: 3 ) = 'TR' | ||||
| BIGNUM = SLAMCH('Overflow') / SLAMCH('Precision') | |||||
| NRUN = 0 | NRUN = 0 | ||||
| NFAIL = 0 | NFAIL = 0 | ||||
| NERRS = 0 | NERRS = 0 | ||||
| @@ -380,7 +381,7 @@ | |||||
| * This line is needed on a Sun SPARCstation. | * This line is needed on a Sun SPARCstation. | ||||
| * | * | ||||
| IF( N.GT.0 ) | IF( N.GT.0 ) | ||||
| $ DUMMY = A( 1 ) | |||||
| $ DUMMY = REAL( A( 1 ) ) | |||||
| * | * | ||||
| CALL CTRT02( UPLO, TRANS, DIAG, N, NRHS, A, LDA, | CALL CTRT02( UPLO, TRANS, DIAG, N, NRHS, A, LDA, | ||||
| $ X, LDA, B, LDA, WORK, RWORK, | $ X, LDA, B, LDA, WORK, RWORK, | ||||
| @@ -535,6 +536,32 @@ | |||||
| $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, | $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, | ||||
| $ RESULT( 9 ) ) | $ RESULT( 9 ) ) | ||||
| * | * | ||||
| *+ TEST 10 | |||||
| * Solve op(A)*X = B. | |||||
| * | |||||
| SRNAMT = 'CLATRS3' | |||||
| CALL CCOPY( N, X, 1, B, 1 ) | |||||
| CALL CCOPY( N, X, 1, B, 1 ) | |||||
| CALL CSCAL( N, BIGNUM, B( N+1 ), 1 ) | |||||
| CALL CLATRS3( UPLO, TRANS, DIAG, 'N', N, 2, A, LDA, | |||||
| $ B, MAX(1, N), SCALE3, RWORK, WORK, NMAX, | |||||
| $ INFO ) | |||||
| * | |||||
| * Check error code from CLATRS3. | |||||
| * | |||||
| IF( INFO.NE.0 ) | |||||
| $ CALL ALAERH( PATH, 'CLATRS3', INFO, 0, | |||||
| $ UPLO // TRANS // DIAG // 'Y', N, N, | |||||
| $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) | |||||
| CALL CTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA, | |||||
| $ SCALE3( 1 ), RWORK, ONE, B( 1 ), LDA, | |||||
| $ X, LDA, WORK, RESULT( 10 ) ) | |||||
| CALL CSSCAL( N, BIGNUM, X, 1 ) | |||||
| CALL CTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA, | |||||
| $ SCALE3( 2 ), RWORK, ONE, B( N+1 ), LDA, | |||||
| $ X, LDA, WORK, RESULT( 10 ) ) | |||||
| RESULT( 10 ) = MAX( RESULT( 10 ), RES ) | |||||
| * | |||||
| * Print information about the tests that did not pass | * Print information about the tests that did not pass | ||||
| * the threshold. | * the threshold. | ||||
| * | * | ||||
| @@ -552,7 +579,14 @@ | |||||
| $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) | $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) | ||||
| NFAIL = NFAIL + 1 | NFAIL = NFAIL + 1 | ||||
| END IF | END IF | ||||
| NRUN = NRUN + 2 | |||||
| IF( RESULT( 10 ).GE.THRESH ) THEN | |||||
| IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) | |||||
| $ CALL ALAHD( NOUT, PATH ) | |||||
| WRITE( NOUT, FMT = 9996 )'CLATRS3', UPLO, TRANS, | |||||
| $ DIAG, 'N', N, IMAT, 10, RESULT( 10 ) | |||||
| NFAIL = NFAIL + 1 | |||||
| END IF | |||||
| NRUN = NRUN + 3 | |||||
| 90 CONTINUE | 90 CONTINUE | ||||
| 100 CONTINUE | 100 CONTINUE | ||||
| 110 CONTINUE | 110 CONTINUE | ||||
| @@ -82,9 +82,10 @@ | |||||
| EXTERNAL LSAMEN | EXTERNAL LSAMEN | ||||
| * .. | * .. | ||||
| * .. External Subroutines .. | * .. External Subroutines .. | ||||
| EXTERNAL ALAESM, CHKXER, CLATBS, CLATPS, CLATRS, CTBCON, | |||||
| $ CTBRFS, CTBTRS, CTPCON, CTPRFS, CTPTRI, CTPTRS, | |||||
| $ CTRCON, CTRRFS, CTRTI2, CTRTRI, CTRTRS | |||||
| EXTERNAL ALAESM, CHKXER, CLATBS, CLATPS, CLATRS, | |||||
| $ CLATRS3, CTBCON, CTBRFS, CTBTRS, CTPCON, | |||||
| $ CTPRFS, CTPTRI, CTPTRS, CTRCON, CTRRFS, CTRTI2, | |||||
| $ CTRTRI, CTRTRS | |||||
| * .. | * .. | ||||
| * .. Scalars in Common .. | * .. Scalars in Common .. | ||||
| LOGICAL LERR, OK | LOGICAL LERR, OK | ||||
| @@ -240,6 +241,46 @@ | |||||
| CALL CLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, RW, INFO ) | CALL CLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, RW, INFO ) | ||||
| CALL CHKXER( 'CLATRS', INFOT, NOUT, LERR, OK ) | CALL CHKXER( 'CLATRS', INFOT, NOUT, LERR, OK ) | ||||
| * | * | ||||
| * CLATRS3 | |||||
| * | |||||
| SRNAMT = 'CLATRS3' | |||||
| INFOT = 1 | |||||
| CALL CLATRS3( '/', 'N', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'CLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 2 | |||||
| CALL CLATRS3( 'U', '/', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'CLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 3 | |||||
| CALL CLATRS3( 'U', 'N', '/', 'N', 0, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'CLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 4 | |||||
| CALL CLATRS3( 'U', 'N', 'N', '/', 0, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'CLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 5 | |||||
| CALL CLATRS3( 'U', 'N', 'N', 'N', -1, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'CLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 6 | |||||
| CALL CLATRS3( 'U', 'N', 'N', 'N', 0, -1, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'CLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 8 | |||||
| CALL CLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'CLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 10 | |||||
| CALL CLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 2, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'CLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 14 | |||||
| CALL CLATRS3( 'U', 'N', 'N', 'N', 1, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 0, INFO ) | |||||
| CALL CHKXER( 'CLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| * | |||||
| * Test error exits for the packed triangular routines. | * Test error exits for the packed triangular routines. | ||||
| * | * | ||||
| ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN | ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN | ||||
| @@ -30,7 +30,7 @@ | |||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> DCHKTR tests DTRTRI, -TRS, -RFS, and -CON, and DLATRS | |||||
| *> DCHKTR tests DTRTRI, -TRS, -RFS, and -CON, and DLATRS(3) | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -187,7 +187,7 @@ | |||||
| INTEGER NTYPE1, NTYPES | INTEGER NTYPE1, NTYPES | ||||
| PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) | PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) | ||||
| INTEGER NTESTS | INTEGER NTESTS | ||||
| PARAMETER ( NTESTS = 9 ) | |||||
| PARAMETER ( NTESTS = 10 ) | |||||
| INTEGER NTRAN | INTEGER NTRAN | ||||
| PARAMETER ( NTRAN = 3 ) | PARAMETER ( NTRAN = 3 ) | ||||
| DOUBLE PRECISION ONE, ZERO | DOUBLE PRECISION ONE, ZERO | ||||
| @@ -198,13 +198,13 @@ | |||||
| CHARACTER*3 PATH | CHARACTER*3 PATH | ||||
| INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, | INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, | ||||
| $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN | $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN | ||||
| DOUBLE PRECISION AINVNM, ANORM, DUMMY, RCOND, RCONDC, RCONDI, | |||||
| $ RCONDO, SCALE | |||||
| DOUBLE PRECISION AINVNM, ANORM, BIGNUM, DLAMCH, DUMMY, RCOND, | |||||
| $ RCONDC, RCONDI, RCONDO, RES, SCALE | |||||
| * .. | * .. | ||||
| * .. Local Arrays .. | * .. Local Arrays .. | ||||
| CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) | CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) | ||||
| INTEGER ISEED( 4 ), ISEEDY( 4 ) | INTEGER ISEED( 4 ), ISEEDY( 4 ) | ||||
| DOUBLE PRECISION RESULT( NTESTS ) | |||||
| DOUBLE PRECISION RESULT( NTESTS ), SCALE3( 2 ) | |||||
| * .. | * .. | ||||
| * .. External Functions .. | * .. External Functions .. | ||||
| LOGICAL LSAME | LOGICAL LSAME | ||||
| @@ -213,9 +213,9 @@ | |||||
| * .. | * .. | ||||
| * .. External Subroutines .. | * .. External Subroutines .. | ||||
| EXTERNAL ALAERH, ALAHD, ALASUM, DCOPY, DERRTR, DGET04, | EXTERNAL ALAERH, ALAHD, ALASUM, DCOPY, DERRTR, DGET04, | ||||
| $ DLACPY, DLARHS, DLATRS, DLATTR, DTRCON, DTRRFS, | |||||
| $ DTRT01, DTRT02, DTRT03, DTRT05, DTRT06, DTRTRI, | |||||
| $ DTRTRS, XLAENV | |||||
| $ DLACPY, DLAMCH, DSCAL, DLARHS, DLATRS, DLATRS3, | |||||
| $ DLATTR, DTRCON, DTRRFS, DTRT01, DTRT02, DTRT03, | |||||
| $ DTRT05, DTRT06, DTRTRI, DTRTRS, XLAENV | |||||
| * .. | * .. | ||||
| * .. Scalars in Common .. | * .. Scalars in Common .. | ||||
| LOGICAL LERR, OK | LOGICAL LERR, OK | ||||
| @@ -239,6 +239,7 @@ | |||||
| * | * | ||||
| PATH( 1: 1 ) = 'Double precision' | PATH( 1: 1 ) = 'Double precision' | ||||
| PATH( 2: 3 ) = 'TR' | PATH( 2: 3 ) = 'TR' | ||||
| BIGNUM = DLAMCH('Overflow') / DLAMCH('Precision') | |||||
| NRUN = 0 | NRUN = 0 | ||||
| NFAIL = 0 | NFAIL = 0 | ||||
| NERRS = 0 | NERRS = 0 | ||||
| @@ -539,6 +540,32 @@ | |||||
| $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, | $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, | ||||
| $ RESULT( 9 ) ) | $ RESULT( 9 ) ) | ||||
| * | * | ||||
| *+ TEST 10 | |||||
| * Solve op(A)*X = B | |||||
| * | |||||
| SRNAMT = 'DLATRS3' | |||||
| CALL DCOPY( N, X, 1, B, 1 ) | |||||
| CALL DCOPY( N, X, 1, B( N+1 ), 1 ) | |||||
| CALL DSCAL( N, BIGNUM, B( N+1 ), 1 ) | |||||
| CALL DLATRS3( UPLO, TRANS, DIAG, 'N', N, 2, A, LDA, | |||||
| $ B, MAX(1, N), SCALE3, RWORK, WORK, NMAX, | |||||
| $ INFO ) | |||||
| * | |||||
| * Check error code from DLATRS3. | |||||
| * | |||||
| IF( INFO.NE.0 ) | |||||
| $ CALL ALAERH( PATH, 'DLATRS3', INFO, 0, | |||||
| $ UPLO // TRANS // DIAG // 'N', N, N, | |||||
| $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) | |||||
| CALL DTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA, | |||||
| $ SCALE3( 1 ), RWORK, ONE, B( 1 ), LDA, | |||||
| $ X, LDA, WORK, RESULT( 10 ) ) | |||||
| CALL DSCAL( N, BIGNUM, X, 1 ) | |||||
| CALL DTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA, | |||||
| $ SCALE3( 2 ), RWORK, ONE, B( N+1 ), LDA, | |||||
| $ X, LDA, WORK, RES ) | |||||
| RESULT( 10 ) = MAX( RESULT( 10 ), RES ) | |||||
| * | |||||
| * Print information about the tests that did not pass | * Print information about the tests that did not pass | ||||
| * the threshold. | * the threshold. | ||||
| * | * | ||||
| @@ -556,7 +583,14 @@ | |||||
| $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) | $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) | ||||
| NFAIL = NFAIL + 1 | NFAIL = NFAIL + 1 | ||||
| END IF | END IF | ||||
| NRUN = NRUN + 2 | |||||
| IF( RESULT( 10 ).GE.THRESH ) THEN | |||||
| IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) | |||||
| $ CALL ALAHD( NOUT, PATH ) | |||||
| WRITE( NOUT, FMT = 9996 )'DLATRS3', UPLO, TRANS, | |||||
| $ DIAG, 'N', N, IMAT, 10, RESULT( 10 ) | |||||
| NFAIL = NFAIL + 1 | |||||
| END IF | |||||
| NRUN = NRUN + 3 | |||||
| 90 CONTINUE | 90 CONTINUE | ||||
| 100 CONTINUE | 100 CONTINUE | ||||
| 110 CONTINUE | 110 CONTINUE | ||||
| @@ -569,8 +603,8 @@ | |||||
| 9999 FORMAT( ' UPLO=''', A1, ''', DIAG=''', A1, ''', N=', I5, ', NB=', | 9999 FORMAT( ' UPLO=''', A1, ''', DIAG=''', A1, ''', N=', I5, ', NB=', | ||||
| $ I4, ', type ', I2, ', test(', I2, ')= ', G12.5 ) | $ I4, ', type ', I2, ', test(', I2, ')= ', G12.5 ) | ||||
| 9998 FORMAT( ' UPLO=''', A1, ''', TRANS=''', A1, ''', DIAG=''', A1, | 9998 FORMAT( ' UPLO=''', A1, ''', TRANS=''', A1, ''', DIAG=''', A1, | ||||
| $ ''', N=', I5, ', NB=', I4, ', type ', I2, ', | |||||
| $ test(', I2, ')= ', G12.5 ) | |||||
| $ ''', N=', I5, ', NB=', I4, ', type ', I2, ', test(', | |||||
| $ I2, ')= ', G12.5 ) | |||||
| 9997 FORMAT( ' NORM=''', A1, ''', UPLO =''', A1, ''', N=', I5, ',', | 9997 FORMAT( ' NORM=''', A1, ''', UPLO =''', A1, ''', N=', I5, ',', | ||||
| $ 11X, ' type ', I2, ', test(', I2, ')=', G12.5 ) | $ 11X, ' type ', I2, ', test(', I2, ')=', G12.5 ) | ||||
| 9996 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''', ''', | 9996 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''', ''', | ||||
| @@ -83,9 +83,10 @@ | |||||
| EXTERNAL LSAMEN | EXTERNAL LSAMEN | ||||
| * .. | * .. | ||||
| * .. External Subroutines .. | * .. External Subroutines .. | ||||
| EXTERNAL ALAESM, CHKXER, DLATBS, DLATPS, DLATRS, DTBCON, | |||||
| $ DTBRFS, DTBTRS, DTPCON, DTPRFS, DTPTRI, DTPTRS, | |||||
| $ DTRCON, DTRRFS, DTRTI2, DTRTRI, DTRTRS | |||||
| EXTERNAL ALAESM, CHKXER, DLATBS, DLATPS, DLATRS, | |||||
| $ DLATRS3, DTBCON, DTBRFS, DTBTRS, DTPCON, | |||||
| $ DTPRFS, DTPTRI, DTPTRS, DTRCON, DTRRFS, | |||||
| $ DTRTI2, DTRTRI, DTRTRS | |||||
| * .. | * .. | ||||
| * .. Scalars in Common .. | * .. Scalars in Common .. | ||||
| LOGICAL LERR, OK | LOGICAL LERR, OK | ||||
| @@ -244,6 +245,46 @@ | |||||
| INFOT = 7 | INFOT = 7 | ||||
| CALL DLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, W, INFO ) | CALL DLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, W, INFO ) | ||||
| CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK ) | CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK ) | ||||
| * | |||||
| * DLATRS3 | |||||
| * | |||||
| SRNAMT = 'DLATRS3' | |||||
| INFOT = 1 | |||||
| CALL DLATRS3( '/', 'N', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 2 | |||||
| CALL DLATRS3( 'U', '/', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 3 | |||||
| CALL DLATRS3( 'U', 'N', '/', 'N', 0, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 4 | |||||
| CALL DLATRS3( 'U', 'N', 'N', '/', 0, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 5 | |||||
| CALL DLATRS3( 'U', 'N', 'N', 'N', -1, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 6 | |||||
| CALL DLATRS3( 'U', 'N', 'N', 'N', 0, -1, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 8 | |||||
| CALL DLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 10 | |||||
| CALL DLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 2, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 14 | |||||
| CALL DLATRS3( 'U', 'N', 'N', 'N', 1, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 0, INFO ) | |||||
| CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| * | * | ||||
| ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN | ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN | ||||
| * | * | ||||
| @@ -30,7 +30,7 @@ | |||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> SCHKTR tests STRTRI, -TRS, -RFS, and -CON, and SLATRS | |||||
| *> SCHKTR tests STRTRI, -TRS, -RFS, and -CON, and SLATRS(3) | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -187,7 +187,7 @@ | |||||
| INTEGER NTYPE1, NTYPES | INTEGER NTYPE1, NTYPES | ||||
| PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) | PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) | ||||
| INTEGER NTESTS | INTEGER NTESTS | ||||
| PARAMETER ( NTESTS = 9 ) | |||||
| PARAMETER ( NTESTS = 10 ) | |||||
| INTEGER NTRAN | INTEGER NTRAN | ||||
| PARAMETER ( NTRAN = 3 ) | PARAMETER ( NTRAN = 3 ) | ||||
| REAL ONE, ZERO | REAL ONE, ZERO | ||||
| @@ -198,13 +198,13 @@ | |||||
| CHARACTER*3 PATH | CHARACTER*3 PATH | ||||
| INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, | INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, | ||||
| $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN | $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN | ||||
| REAL AINVNM, ANORM, DUMMY, RCOND, RCONDC, RCONDI, | |||||
| $ RCONDO, SCALE | |||||
| REAL AINVNM, ANORM, BIGNUM, DUMMY, RCOND, RCONDC, | |||||
| $ RCONDI, RCONDO, RES, SCALE, SLAMCH | |||||
| * .. | * .. | ||||
| * .. Local Arrays .. | * .. Local Arrays .. | ||||
| CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) | CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) | ||||
| INTEGER ISEED( 4 ), ISEEDY( 4 ) | INTEGER ISEED( 4 ), ISEEDY( 4 ) | ||||
| REAL RESULT( NTESTS ) | |||||
| REAL RESULT( NTESTS ), SCALE3( 2 ) | |||||
| * .. | * .. | ||||
| * .. External Functions .. | * .. External Functions .. | ||||
| LOGICAL LSAME | LOGICAL LSAME | ||||
| @@ -213,9 +213,9 @@ | |||||
| * .. | * .. | ||||
| * .. External Subroutines .. | * .. External Subroutines .. | ||||
| EXTERNAL ALAERH, ALAHD, ALASUM, SCOPY, SERRTR, SGET04, | EXTERNAL ALAERH, ALAHD, ALASUM, SCOPY, SERRTR, SGET04, | ||||
| $ SLACPY, SLARHS, SLATRS, SLATTR, STRCON, STRRFS, | |||||
| $ STRT01, STRT02, STRT03, STRT05, STRT06, STRTRI, | |||||
| $ STRTRS, XLAENV | |||||
| $ SLACPY, SLARHS, SLATRS, SLATRS3, SLATTR, SSCAL, | |||||
| $ STRCON, STRRFS, STRT01, STRT02, STRT03, STRT05, | |||||
| $ STRT06, STRTRI, STRTRS, XLAENV, SLAMCH | |||||
| * .. | * .. | ||||
| * .. Scalars in Common .. | * .. Scalars in Common .. | ||||
| LOGICAL LERR, OK | LOGICAL LERR, OK | ||||
| @@ -239,6 +239,7 @@ | |||||
| * | * | ||||
| PATH( 1: 1 ) = 'Single precision' | PATH( 1: 1 ) = 'Single precision' | ||||
| PATH( 2: 3 ) = 'TR' | PATH( 2: 3 ) = 'TR' | ||||
| BIGNUM = SLAMCH('Overflow') / SLAMCH('Precision') | |||||
| NRUN = 0 | NRUN = 0 | ||||
| NFAIL = 0 | NFAIL = 0 | ||||
| NERRS = 0 | NERRS = 0 | ||||
| @@ -539,6 +540,33 @@ | |||||
| $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, | $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, | ||||
| $ RESULT( 9 ) ) | $ RESULT( 9 ) ) | ||||
| * | * | ||||
| *+ TEST 10 | |||||
| * Solve op(A)*X = B | |||||
| * | |||||
| SRNAMT = 'SLATRS3' | |||||
| CALL SCOPY( N, X, 1, B, 1 ) | |||||
| CALL SCOPY( N, X, 1, B( N+1 ), 1 ) | |||||
| CALL SSCAL( N, BIGNUM, B( N+1 ), 1 ) | |||||
| CALL SLATRS3( UPLO, TRANS, DIAG, 'N', N, 2, A, LDA, | |||||
| $ B, MAX(1, N), SCALE3, RWORK, WORK, NMAX, | |||||
| $ INFO ) | |||||
| * | |||||
| * Check error code from SLATRS3. | |||||
| * | |||||
| IF( INFO.NE.0 ) | |||||
| $ CALL ALAERH( PATH, 'SLATRS3', INFO, 0, | |||||
| $ UPLO // TRANS // DIAG // 'Y', N, N, | |||||
| $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) | |||||
| * | |||||
| CALL STRT03( UPLO, TRANS, DIAG, N, 1, A, LDA, | |||||
| $ SCALE3 ( 1 ), RWORK, ONE, B( N+1 ), LDA, | |||||
| $ X, LDA, WORK, RESULT( 10 ) ) | |||||
| CALL SSCAL( N, BIGNUM, X, 1 ) | |||||
| CALL STRT03( UPLO, TRANS, DIAG, N, 1, A, LDA, | |||||
| $ SCALE3( 2 ), RWORK, ONE, B( N+1 ), LDA, | |||||
| $ X, LDA, WORK, RES ) | |||||
| RESULT( 10 ) = MAX( RESULT( 10 ), RES ) | |||||
| * | |||||
| * Print information about the tests that did not pass | * Print information about the tests that did not pass | ||||
| * the threshold. | * the threshold. | ||||
| * | * | ||||
| @@ -556,7 +584,14 @@ | |||||
| $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) | $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) | ||||
| NFAIL = NFAIL + 1 | NFAIL = NFAIL + 1 | ||||
| END IF | END IF | ||||
| NRUN = NRUN + 2 | |||||
| IF( RESULT( 10 ).GE.THRESH ) THEN | |||||
| IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) | |||||
| $ CALL ALAHD( NOUT, PATH ) | |||||
| WRITE( NOUT, FMT = 9996 )'SLATRS3', UPLO, TRANS, | |||||
| $ DIAG, 'N', N, IMAT, 10, RESULT( 10 ) | |||||
| NFAIL = NFAIL + 1 | |||||
| END IF | |||||
| NRUN = NRUN + 3 | |||||
| 90 CONTINUE | 90 CONTINUE | ||||
| 100 CONTINUE | 100 CONTINUE | ||||
| 110 CONTINUE | 110 CONTINUE | ||||
| @@ -569,8 +604,8 @@ | |||||
| 9999 FORMAT( ' UPLO=''', A1, ''', DIAG=''', A1, ''', N=', I5, ', NB=', | 9999 FORMAT( ' UPLO=''', A1, ''', DIAG=''', A1, ''', N=', I5, ', NB=', | ||||
| $ I4, ', type ', I2, ', test(', I2, ')= ', G12.5 ) | $ I4, ', type ', I2, ', test(', I2, ')= ', G12.5 ) | ||||
| 9998 FORMAT( ' UPLO=''', A1, ''', TRANS=''', A1, ''', DIAG=''', A1, | 9998 FORMAT( ' UPLO=''', A1, ''', TRANS=''', A1, ''', DIAG=''', A1, | ||||
| $ ''', N=', I5, ', NB=', I4, ', type ', I2, ', | |||||
| $ test(', I2, ')= ', G12.5 ) | |||||
| $ ''', N=', I5, ', NB=', I4, ', type ', I2, ', test(', | |||||
| $ I2, ')= ', G12.5 ) | |||||
| 9997 FORMAT( ' NORM=''', A1, ''', UPLO =''', A1, ''', N=', I5, ',', | 9997 FORMAT( ' NORM=''', A1, ''', UPLO =''', A1, ''', N=', I5, ',', | ||||
| $ 11X, ' type ', I2, ', test(', I2, ')=', G12.5 ) | $ 11X, ' type ', I2, ', test(', I2, ')=', G12.5 ) | ||||
| 9996 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''', ''', | 9996 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''', ''', | ||||
| @@ -83,9 +83,10 @@ | |||||
| EXTERNAL LSAMEN | EXTERNAL LSAMEN | ||||
| * .. | * .. | ||||
| * .. External Subroutines .. | * .. External Subroutines .. | ||||
| EXTERNAL ALAESM, CHKXER, SLATBS, SLATPS, SLATRS, STBCON, | |||||
| $ STBRFS, STBTRS, STPCON, STPRFS, STPTRI, STPTRS, | |||||
| $ STRCON, STRRFS, STRTI2, STRTRI, STRTRS | |||||
| EXTERNAL ALAESM, CHKXER, SLATBS, SLATPS, SLATRS, | |||||
| $ SLATRS3, STBCON, STBRFS, STBTRS, STPCON, | |||||
| $ STPRFS, STPTRI, STPTRS, STRCON, STRRFS, STRTI2, | |||||
| $ STRTRI, STRTRS | |||||
| * .. | * .. | ||||
| * .. Scalars in Common .. | * .. Scalars in Common .. | ||||
| LOGICAL LERR, OK | LOGICAL LERR, OK | ||||
| @@ -244,6 +245,46 @@ | |||||
| INFOT = 7 | INFOT = 7 | ||||
| CALL SLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, W, INFO ) | CALL SLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, W, INFO ) | ||||
| CALL CHKXER( 'SLATRS', INFOT, NOUT, LERR, OK ) | CALL CHKXER( 'SLATRS', INFOT, NOUT, LERR, OK ) | ||||
| * | |||||
| * SLATRS3 | |||||
| * | |||||
| SRNAMT = 'SLATRS3' | |||||
| INFOT = 1 | |||||
| CALL SLATRS3( '/', 'N', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'SLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 2 | |||||
| CALL SLATRS3( 'U', '/', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'SLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 3 | |||||
| CALL SLATRS3( 'U', 'N', '/', 'N', 0, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'SLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 4 | |||||
| CALL SLATRS3( 'U', 'N', 'N', '/', 0, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'SLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 5 | |||||
| CALL SLATRS3( 'U', 'N', 'N', 'N', -1, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'SLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 6 | |||||
| CALL SLATRS3( 'U', 'N', 'N', 'N', 0, -1, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'SLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 8 | |||||
| CALL SLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'SLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 10 | |||||
| CALL SLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 2, X, 1, SCALE, W, | |||||
| $ W( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'SLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 14 | |||||
| CALL SLATRS3( 'U', 'N', 'N', 'N', 1, 0, A, 1, X, 1, SCALE, W, | |||||
| $ W( 2 ), 0, INFO ) | |||||
| CALL CHKXER( 'SLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| * | * | ||||
| ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN | ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN | ||||
| * | * | ||||
| @@ -31,7 +31,7 @@ | |||||
| *> | *> | ||||
| *> \verbatim | *> \verbatim | ||||
| *> | *> | ||||
| *> ZCHKTR tests ZTRTRI, -TRS, -RFS, and -CON, and ZLATRS | |||||
| *> ZCHKTR tests ZTRTRI, -TRS, -RFS, and -CON, and ZLATRS(3) | |||||
| *> \endverbatim | *> \endverbatim | ||||
| * | * | ||||
| * Arguments: | * Arguments: | ||||
| @@ -184,7 +184,7 @@ | |||||
| INTEGER NTYPE1, NTYPES | INTEGER NTYPE1, NTYPES | ||||
| PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) | PARAMETER ( NTYPE1 = 10, NTYPES = 18 ) | ||||
| INTEGER NTESTS | INTEGER NTESTS | ||||
| PARAMETER ( NTESTS = 9 ) | |||||
| PARAMETER ( NTESTS = 10 ) | |||||
| INTEGER NTRAN | INTEGER NTRAN | ||||
| PARAMETER ( NTRAN = 3 ) | PARAMETER ( NTRAN = 3 ) | ||||
| DOUBLE PRECISION ONE, ZERO | DOUBLE PRECISION ONE, ZERO | ||||
| @@ -195,13 +195,13 @@ | |||||
| CHARACTER*3 PATH | CHARACTER*3 PATH | ||||
| INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, | INTEGER I, IDIAG, IMAT, IN, INB, INFO, IRHS, ITRAN, | ||||
| $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN | $ IUPLO, K, LDA, N, NB, NERRS, NFAIL, NRHS, NRUN | ||||
| DOUBLE PRECISION AINVNM, ANORM, DUMMY, RCOND, RCONDC, RCONDI, | |||||
| $ RCONDO, SCALE | |||||
| DOUBLE PRECISION AINVNM, ANORM, BIGNUM, DUMMY, RCOND, RCONDC, | |||||
| $ RCONDI, RCONDO, RES, SCALE, DLAMCH | |||||
| * .. | * .. | ||||
| * .. Local Arrays .. | * .. Local Arrays .. | ||||
| CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) | CHARACTER TRANSS( NTRAN ), UPLOS( 2 ) | ||||
| INTEGER ISEED( 4 ), ISEEDY( 4 ) | INTEGER ISEED( 4 ), ISEEDY( 4 ) | ||||
| DOUBLE PRECISION RESULT( NTESTS ) | |||||
| DOUBLE PRECISION RESULT( NTESTS ), SCALE3( 2 ) | |||||
| * .. | * .. | ||||
| * .. External Functions .. | * .. External Functions .. | ||||
| LOGICAL LSAME | LOGICAL LSAME | ||||
| @@ -209,10 +209,10 @@ | |||||
| EXTERNAL LSAME, ZLANTR | EXTERNAL LSAME, ZLANTR | ||||
| * .. | * .. | ||||
| * .. External Subroutines .. | * .. External Subroutines .. | ||||
| EXTERNAL ALAERH, ALAHD, ALASUM, XLAENV, ZCOPY, ZERRTR, | |||||
| $ ZGET04, ZLACPY, ZLARHS, ZLATRS, ZLATTR, ZTRCON, | |||||
| $ ZTRRFS, ZTRT01, ZTRT02, ZTRT03, ZTRT05, ZTRT06, | |||||
| $ ZTRTRI, ZTRTRS | |||||
| EXTERNAL ALAERH, ALAHD, ALASUM, DLAMCH, XLAENV, ZCOPY, | |||||
| $ ZDSCAL, ZERRTR, ZGET04, ZLACPY, ZLARHS, ZLATRS, | |||||
| $ ZLATRS3, ZLATTR, ZTRCON, ZTRRFS, ZTRT01, | |||||
| $ ZTRT02, ZTRT03, ZTRT05, ZTRT06, ZTRTRI, ZTRTRS | |||||
| * .. | * .. | ||||
| * .. Scalars in Common .. | * .. Scalars in Common .. | ||||
| LOGICAL LERR, OK | LOGICAL LERR, OK | ||||
| @@ -236,6 +236,7 @@ | |||||
| * | * | ||||
| PATH( 1: 1 ) = 'Zomplex precision' | PATH( 1: 1 ) = 'Zomplex precision' | ||||
| PATH( 2: 3 ) = 'TR' | PATH( 2: 3 ) = 'TR' | ||||
| BIGNUM = DLAMCH('Overflow') / DLAMCH('Precision') | |||||
| NRUN = 0 | NRUN = 0 | ||||
| NFAIL = 0 | NFAIL = 0 | ||||
| NERRS = 0 | NERRS = 0 | ||||
| @@ -380,7 +381,7 @@ | |||||
| * This line is needed on a Sun SPARCstation. | * This line is needed on a Sun SPARCstation. | ||||
| * | * | ||||
| IF( N.GT.0 ) | IF( N.GT.0 ) | ||||
| $ DUMMY = A( 1 ) | |||||
| $ DUMMY = DBLE( A( 1 ) ) | |||||
| * | * | ||||
| CALL ZTRT02( UPLO, TRANS, DIAG, N, NRHS, A, LDA, | CALL ZTRT02( UPLO, TRANS, DIAG, N, NRHS, A, LDA, | ||||
| $ X, LDA, B, LDA, WORK, RWORK, | $ X, LDA, B, LDA, WORK, RWORK, | ||||
| @@ -535,6 +536,32 @@ | |||||
| $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, | $ RWORK, ONE, B( N+1 ), LDA, X, LDA, WORK, | ||||
| $ RESULT( 9 ) ) | $ RESULT( 9 ) ) | ||||
| * | * | ||||
| *+ TEST 10 | |||||
| * Solve op(A)*X = B | |||||
| * | |||||
| SRNAMT = 'ZLATRS3' | |||||
| CALL ZCOPY( N, X, 1, B, 1 ) | |||||
| CALL ZCOPY( N, X, 1, B( N+1 ), 1 ) | |||||
| CALL ZDSCAL( N, BIGNUM, B( N+1 ), 1 ) | |||||
| CALL ZLATRS3( UPLO, TRANS, DIAG, 'N', N, 2, A, LDA, | |||||
| $ B, MAX(1, N), SCALE3, RWORK, WORK, NMAX, | |||||
| $ INFO ) | |||||
| * | |||||
| * Check error code from ZLATRS3. | |||||
| * | |||||
| IF( INFO.NE.0 ) | |||||
| $ CALL ALAERH( PATH, 'ZLATRS3', INFO, 0, | |||||
| $ UPLO // TRANS // DIAG // 'N', N, N, | |||||
| $ -1, -1, -1, IMAT, NFAIL, NERRS, NOUT ) | |||||
| CALL ZTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA, | |||||
| $ SCALE3( 1 ), RWORK, ONE, B( 1 ), LDA, | |||||
| $ X, LDA, WORK, RESULT( 10 ) ) | |||||
| CALL ZDSCAL( N, BIGNUM, X, 1 ) | |||||
| CALL ZTRT03( UPLO, TRANS, DIAG, N, 1, A, LDA, | |||||
| $ SCALE3( 2 ), RWORK, ONE, B( N+1 ), LDA, | |||||
| $ X, LDA, WORK, RES ) | |||||
| RESULT( 10 ) = MAX( RESULT( 10 ), RES ) | |||||
| * | |||||
| * Print information about the tests that did not pass | * Print information about the tests that did not pass | ||||
| * the threshold. | * the threshold. | ||||
| * | * | ||||
| @@ -552,7 +579,14 @@ | |||||
| $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) | $ DIAG, 'Y', N, IMAT, 9, RESULT( 9 ) | ||||
| NFAIL = NFAIL + 1 | NFAIL = NFAIL + 1 | ||||
| END IF | END IF | ||||
| NRUN = NRUN + 2 | |||||
| IF( RESULT( 10 ).GE.THRESH ) THEN | |||||
| IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) | |||||
| $ CALL ALAHD( NOUT, PATH ) | |||||
| WRITE( NOUT, FMT = 9996 )'ZLATRS3', UPLO, TRANS, | |||||
| $ DIAG, 'N', N, IMAT, 10, RESULT( 10 ) | |||||
| NFAIL = NFAIL + 1 | |||||
| END IF | |||||
| NRUN = NRUN + 3 | |||||
| 90 CONTINUE | 90 CONTINUE | ||||
| 100 CONTINUE | 100 CONTINUE | ||||
| 110 CONTINUE | 110 CONTINUE | ||||
| @@ -565,8 +599,8 @@ | |||||
| 9999 FORMAT( ' UPLO=''', A1, ''', DIAG=''', A1, ''', N=', I5, ', NB=', | 9999 FORMAT( ' UPLO=''', A1, ''', DIAG=''', A1, ''', N=', I5, ', NB=', | ||||
| $ I4, ', type ', I2, ', test(', I2, ')= ', G12.5 ) | $ I4, ', type ', I2, ', test(', I2, ')= ', G12.5 ) | ||||
| 9998 FORMAT( ' UPLO=''', A1, ''', TRANS=''', A1, ''', DIAG=''', A1, | 9998 FORMAT( ' UPLO=''', A1, ''', TRANS=''', A1, ''', DIAG=''', A1, | ||||
| $ ''', N=', I5, ', NB=', I4, ', type ', I2, ', | |||||
| $ test(', I2, ')= ', G12.5 ) | |||||
| $ ''', N=', I5, ', NB=', I4, ', type ', I2, ', test(', | |||||
| $ I2, ')= ', G12.5 ) | |||||
| 9997 FORMAT( ' NORM=''', A1, ''', UPLO =''', A1, ''', N=', I5, ',', | 9997 FORMAT( ' NORM=''', A1, ''', UPLO =''', A1, ''', N=', I5, ',', | ||||
| $ 11X, ' type ', I2, ', test(', I2, ')=', G12.5 ) | $ 11X, ' type ', I2, ', test(', I2, ')=', G12.5 ) | ||||
| 9996 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''', ''', | 9996 FORMAT( 1X, A, '( ''', A1, ''', ''', A1, ''', ''', A1, ''', ''', | ||||
| @@ -82,9 +82,10 @@ | |||||
| EXTERNAL LSAMEN | EXTERNAL LSAMEN | ||||
| * .. | * .. | ||||
| * .. External Subroutines .. | * .. External Subroutines .. | ||||
| EXTERNAL ALAESM, CHKXER, ZLATBS, ZLATPS, ZLATRS, ZTBCON, | |||||
| $ ZTBRFS, ZTBTRS, ZTPCON, ZTPRFS, ZTPTRI, ZTPTRS, | |||||
| $ ZTRCON, ZTRRFS, ZTRTI2, ZTRTRI, ZTRTRS | |||||
| EXTERNAL ALAESM, CHKXER, ZLATBS, ZLATPS, ZLATRS, | |||||
| $ ZLATRS3, ZTBCON, ZTBRFS, ZTBTRS, ZTPCON, | |||||
| $ ZTPRFS, ZTPTRI, ZTPTRS, ZTRCON, ZTRRFS, ZTRTI2, | |||||
| $ ZTRTRI, ZTRTRS | |||||
| * .. | * .. | ||||
| * .. Scalars in Common .. | * .. Scalars in Common .. | ||||
| LOGICAL LERR, OK | LOGICAL LERR, OK | ||||
| @@ -240,6 +241,46 @@ | |||||
| CALL ZLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, RW, INFO ) | CALL ZLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, RW, INFO ) | ||||
| CALL CHKXER( 'ZLATRS', INFOT, NOUT, LERR, OK ) | CALL CHKXER( 'ZLATRS', INFOT, NOUT, LERR, OK ) | ||||
| * | * | ||||
| * ZLATRS3 | |||||
| * | |||||
| SRNAMT = 'ZLATRS3' | |||||
| INFOT = 1 | |||||
| CALL ZLATRS3( '/', 'N', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'ZLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 2 | |||||
| CALL ZLATRS3( 'U', '/', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'ZLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 3 | |||||
| CALL ZLATRS3( 'U', 'N', '/', 'N', 0, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'ZLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 4 | |||||
| CALL ZLATRS3( 'U', 'N', 'N', '/', 0, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'ZLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 5 | |||||
| CALL ZLATRS3( 'U', 'N', 'N', 'N', -1, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'ZLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 6 | |||||
| CALL ZLATRS3( 'U', 'N', 'N', 'N', 0, -1, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'ZLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 8 | |||||
| CALL ZLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'ZLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 10 | |||||
| CALL ZLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 2, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 1, INFO ) | |||||
| CALL CHKXER( 'ZLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| INFOT = 14 | |||||
| CALL ZLATRS3( 'U', 'N', 'N', 'N', 1, 0, A, 1, X, 1, SCALE, RW, | |||||
| $ RW( 2 ), 0, INFO ) | |||||
| CALL CHKXER( 'ZLATRS3', INFOT, NOUT, LERR, OK ) | |||||
| * | |||||
| * Test error exits for the packed triangular routines. | * Test error exits for the packed triangular routines. | ||||
| * | * | ||||
| ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN | ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN | ||||