| @@ -319,15 +319,15 @@ | |||||
| * elements. | * elements. | ||||
| * | * | ||||
| IF( IZERO.EQ.1 ) THEN | IF( IZERO.EQ.1 ) THEN | ||||
| D( 1 ) = Z( 2 ) | |||||
| D( 1 ) = REAL( Z( 2 ) ) | |||||
| IF( N.GT.1 ) | IF( N.GT.1 ) | ||||
| $ E( 1 ) = Z( 3 ) | $ E( 1 ) = Z( 3 ) | ||||
| ELSE IF( IZERO.EQ.N ) THEN | ELSE IF( IZERO.EQ.N ) THEN | ||||
| E( N-1 ) = Z( 1 ) | E( N-1 ) = Z( 1 ) | ||||
| D( N ) = Z( 2 ) | |||||
| D( N ) = REAL( Z( 2 ) ) | |||||
| ELSE | ELSE | ||||
| E( IZERO-1 ) = Z( 1 ) | E( IZERO-1 ) = Z( 1 ) | ||||
| D( IZERO ) = Z( 2 ) | |||||
| D( IZERO ) = REAL( Z( 2 ) ) | |||||
| E( IZERO ) = Z( 3 ) | E( IZERO ) = Z( 3 ) | ||||
| END IF | END IF | ||||
| END IF | END IF | ||||
| @@ -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 | ||||
| @@ -307,16 +307,16 @@ | |||||
| IZERO = 0 | IZERO = 0 | ||||
| ELSE IF( IMAT.EQ.8 ) THEN | ELSE IF( IMAT.EQ.8 ) THEN | ||||
| IZERO = 1 | IZERO = 1 | ||||
| Z( 2 ) = A( N ) | |||||
| Z( 2 ) = REAL( A( N ) ) | |||||
| A( N ) = ZERO | A( N ) = ZERO | ||||
| IF( N.GT.1 ) THEN | IF( N.GT.1 ) THEN | ||||
| Z( 3 ) = A( 1 ) | |||||
| Z( 3 ) = REAL( A( 1 ) ) | |||||
| A( 1 ) = ZERO | A( 1 ) = ZERO | ||||
| END IF | END IF | ||||
| ELSE IF( IMAT.EQ.9 ) THEN | ELSE IF( IMAT.EQ.9 ) THEN | ||||
| IZERO = N | IZERO = N | ||||
| Z( 1 ) = A( 3*N-2 ) | |||||
| Z( 2 ) = A( 2*N-1 ) | |||||
| Z( 1 ) = REAL( A( 3*N-2 ) ) | |||||
| Z( 2 ) = REAL( A( 2*N-1 ) ) | |||||
| A( 3*N-2 ) = ZERO | A( 3*N-2 ) = ZERO | ||||
| A( 2*N-1 ) = ZERO | A( 2*N-1 ) = ZERO | ||||
| ELSE | ELSE | ||||
| @@ -336,7 +336,7 @@ | |||||
| WORK( J+1 ) = PLUS2 | WORK( J+1 ) = PLUS2 | ||||
| WORK( N+J+1 ) = ZERO | WORK( N+J+1 ) = ZERO | ||||
| PLUS1 = STAR1 / PLUS2 | PLUS1 = STAR1 / PLUS2 | ||||
| REXP = CLARND( 2, ISEED ) | |||||
| REXP = REAL( CLARND( 2, ISEED ) ) | |||||
| IF( REXP.LT.ZERO ) THEN | IF( REXP.LT.ZERO ) THEN | ||||
| STAR1 = -SFAC**( ONE-REXP )*CLARND( 5, ISEED ) | STAR1 = -SFAC**( ONE-REXP )*CLARND( 5, ISEED ) | ||||
| ELSE | ELSE | ||||
| @@ -790,7 +790,7 @@ | |||||
| DO 460 J = 1, N / 2 | DO 460 J = 1, N / 2 | ||||
| JL = JJ | JL = JJ | ||||
| DO 450 I = J, N - J | DO 450 I = J, N - J | ||||
| T = AP( JR-I+J ) | |||||
| T = REAL( AP( JR-I+J ) ) | |||||
| AP( JR-I+J ) = AP( JL ) | AP( JR-I+J ) = AP( JL ) | ||||
| AP( JL ) = T | AP( JL ) = T | ||||
| JL = JL + I | JL = JL + I | ||||
| @@ -804,7 +804,7 @@ | |||||
| DO 480 J = 1, N / 2 | DO 480 J = 1, N / 2 | ||||
| JR = JJ | JR = JJ | ||||
| DO 470 I = J, N - J | DO 470 I = J, N - J | ||||
| T = AP( JL+I-J ) | |||||
| T = REAL( AP( JL+I-J ) ) | |||||
| AP( JL+I-J ) = AP( JR ) | AP( JL+I-J ) = AP( JR ) | ||||
| AP( JR ) = T | AP( JR ) = T | ||||
| JR = JR - I | JR = JR - I | ||||
| @@ -201,7 +201,8 @@ | |||||
| * | * | ||||
| * Compute the (K,K) element of the result. | * Compute the (K,K) element of the result. | ||||
| * | * | ||||
| AKK = CDOTC( KLEN+1, AFAC( KC, K ), 1, AFAC( KC, K ), 1 ) | |||||
| AKK = REAL( | |||||
| $ CDOTC( KLEN+1, AFAC( KC, K ), 1, AFAC( KC, K ), 1 ) ) | |||||
| AFAC( KD+1, K ) = AKK | AFAC( KD+1, K ) = AKK | ||||
| * | * | ||||
| * Compute the rest of column K. | * Compute the rest of column K. | ||||
| @@ -228,7 +229,7 @@ | |||||
| * | * | ||||
| * Scale column K by the diagonal element. | * Scale column K by the diagonal element. | ||||
| * | * | ||||
| AKK = AFAC( 1, K ) | |||||
| AKK = REAL( AFAC( 1, K ) ) | |||||
| CALL CSSCAL( KLEN+1, AKK, AFAC( 1, K ), 1 ) | CALL CSSCAL( KLEN+1, AKK, AFAC( 1, K ), 1 ) | ||||
| * | * | ||||
| 40 CONTINUE | 40 CONTINUE | ||||
| @@ -176,7 +176,7 @@ | |||||
| * | * | ||||
| * Compute the (K,K) element of the result. | * Compute the (K,K) element of the result. | ||||
| * | * | ||||
| TR = CDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) | |||||
| TR = REAL( CDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) ) | |||||
| AFAC( K, K ) = TR | AFAC( K, K ) = TR | ||||
| * | * | ||||
| * Compute the rest of column K. | * Compute the rest of column K. | ||||
| @@ -224,7 +224,7 @@ | |||||
| 70 CONTINUE | 70 CONTINUE | ||||
| END IF | END IF | ||||
| * | * | ||||
| * Compute norm( L*U - A ) / ( N * norm(A) * EPS ) | |||||
| * Compute norm(L*U - A) / ( N * norm(A) * EPS ) | |||||
| * | * | ||||
| RESID = CLANHE( '1', UPLO, N, AFAC, LDAFAC, RWORK ) | RESID = CLANHE( '1', UPLO, N, AFAC, LDAFAC, RWORK ) | ||||
| * | * | ||||
| @@ -178,7 +178,7 @@ | |||||
| * | * | ||||
| * Compute the (K,K) element of the result. | * Compute the (K,K) element of the result. | ||||
| * | * | ||||
| TR = CDOTC( K, AFAC( KC ), 1, AFAC( KC ), 1 ) | |||||
| TR = REAL( CDOTC( K, AFAC( KC ), 1, AFAC( KC ), 1 ) ) | |||||
| AFAC( KC+K-1 ) = TR | AFAC( KC+K-1 ) = TR | ||||
| * | * | ||||
| * Compute the rest of column K. | * Compute the rest of column K. | ||||
| @@ -219,7 +219,7 @@ | |||||
| * | * | ||||
| * Compute the (K,K) element of the result. | * Compute the (K,K) element of the result. | ||||
| * | * | ||||
| TR = CDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) | |||||
| TR = REAL( CDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) ) | |||||
| AFAC( K, K ) = TR | AFAC( K, K ) = TR | ||||
| * | * | ||||
| * Compute the rest of column K. | * Compute the rest of column K. | ||||
| @@ -319,15 +319,15 @@ | |||||
| * elements. | * elements. | ||||
| * | * | ||||
| IF( IZERO.EQ.1 ) THEN | IF( IZERO.EQ.1 ) THEN | ||||
| D( 1 ) = Z( 2 ) | |||||
| D( 1 ) = DBLE( Z( 2 ) ) | |||||
| IF( N.GT.1 ) | IF( N.GT.1 ) | ||||
| $ E( 1 ) = Z( 3 ) | $ E( 1 ) = Z( 3 ) | ||||
| ELSE IF( IZERO.EQ.N ) THEN | ELSE IF( IZERO.EQ.N ) THEN | ||||
| E( N-1 ) = Z( 1 ) | E( N-1 ) = Z( 1 ) | ||||
| D( N ) = Z( 2 ) | |||||
| D( N ) = DBLE( Z( 2 ) ) | |||||
| ELSE | ELSE | ||||
| E( IZERO-1 ) = Z( 1 ) | E( IZERO-1 ) = Z( 1 ) | ||||
| D( IZERO ) = Z( 2 ) | |||||
| D( IZERO ) = DBLE( Z( 2 ) ) | |||||
| E( IZERO ) = Z( 3 ) | E( IZERO ) = Z( 3 ) | ||||
| END IF | END IF | ||||
| END IF | END IF | ||||
| @@ -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, ''', ''', | ||||
| @@ -307,16 +307,16 @@ | |||||
| IZERO = 0 | IZERO = 0 | ||||
| ELSE IF( IMAT.EQ.8 ) THEN | ELSE IF( IMAT.EQ.8 ) THEN | ||||
| IZERO = 1 | IZERO = 1 | ||||
| Z( 2 ) = A( N ) | |||||
| Z( 2 ) = DBLE( A( N ) ) | |||||
| A( N ) = ZERO | A( N ) = ZERO | ||||
| IF( N.GT.1 ) THEN | IF( N.GT.1 ) THEN | ||||
| Z( 3 ) = A( 1 ) | |||||
| Z( 3 ) = DBLE( A( 1 ) ) | |||||
| A( 1 ) = ZERO | A( 1 ) = ZERO | ||||
| END IF | END IF | ||||
| ELSE IF( IMAT.EQ.9 ) THEN | ELSE IF( IMAT.EQ.9 ) THEN | ||||
| IZERO = N | IZERO = N | ||||
| Z( 1 ) = A( 3*N-2 ) | |||||
| Z( 2 ) = A( 2*N-1 ) | |||||
| Z( 1 ) = DBLE( A( 3*N-2 ) ) | |||||
| Z( 2 ) = DBLE( A( 2*N-1 ) ) | |||||
| A( 3*N-2 ) = ZERO | A( 3*N-2 ) = ZERO | ||||
| A( 2*N-1 ) = ZERO | A( 2*N-1 ) = ZERO | ||||
| ELSE | ELSE | ||||
| @@ -266,12 +266,12 @@ | |||||
| * | * | ||||
| IA = 1 | IA = 1 | ||||
| DO 20 I = 1, N - 1 | DO 20 I = 1, N - 1 | ||||
| D( I ) = A( IA ) | |||||
| D( I ) = DBLE( A( IA ) ) | |||||
| E( I ) = A( IA+1 ) | E( I ) = A( IA+1 ) | ||||
| IA = IA + 2 | IA = IA + 2 | ||||
| 20 CONTINUE | 20 CONTINUE | ||||
| IF( N.GT.0 ) | IF( N.GT.0 ) | ||||
| $ D( N ) = A( IA ) | |||||
| $ D( N ) = DBLE( A( IA ) ) | |||||
| ELSE | ELSE | ||||
| * | * | ||||
| * Type 7-12: generate a diagonally dominant matrix with | * Type 7-12: generate a diagonally dominant matrix with | ||||
| @@ -333,13 +333,13 @@ | |||||
| Z( 2 ) = D( 1 ) | Z( 2 ) = D( 1 ) | ||||
| D( 1 ) = ZERO | D( 1 ) = ZERO | ||||
| IF( N.GT.1 ) THEN | IF( N.GT.1 ) THEN | ||||
| Z( 3 ) = E( 1 ) | |||||
| Z( 3 ) = DBLE( E( 1 ) ) | |||||
| E( 1 ) = ZERO | E( 1 ) = ZERO | ||||
| END IF | END IF | ||||
| ELSE IF( IMAT.EQ.9 ) THEN | ELSE IF( IMAT.EQ.9 ) THEN | ||||
| IZERO = N | IZERO = N | ||||
| IF( N.GT.1 ) THEN | IF( N.GT.1 ) THEN | ||||
| Z( 1 ) = E( N-1 ) | |||||
| Z( 1 ) = DBLE( E( N-1 ) ) | |||||
| E( N-1 ) = ZERO | E( N-1 ) = ZERO | ||||
| END IF | END IF | ||||
| Z( 2 ) = D( N ) | Z( 2 ) = D( N ) | ||||
| @@ -347,9 +347,9 @@ | |||||
| ELSE IF( IMAT.EQ.10 ) THEN | ELSE IF( IMAT.EQ.10 ) THEN | ||||
| IZERO = ( N+1 ) / 2 | IZERO = ( N+1 ) / 2 | ||||
| IF( IZERO.GT.1 ) THEN | IF( IZERO.GT.1 ) THEN | ||||
| Z( 1 ) = E( IZERO-1 ) | |||||
| Z( 1 ) = DBLE( E( IZERO-1 ) ) | |||||
| E( IZERO-1 ) = ZERO | E( IZERO-1 ) = ZERO | ||||
| Z( 3 ) = E( IZERO ) | |||||
| Z( 3 ) = DBLE( E( IZERO ) ) | |||||
| E( IZERO ) = ZERO | E( IZERO ) = ZERO | ||||
| END IF | END IF | ||||
| Z( 2 ) = D( IZERO ) | Z( 2 ) = D( IZERO ) | ||||
| @@ -336,7 +336,7 @@ | |||||
| WORK( J+1 ) = PLUS2 | WORK( J+1 ) = PLUS2 | ||||
| WORK( N+J+1 ) = ZERO | WORK( N+J+1 ) = ZERO | ||||
| PLUS1 = STAR1 / PLUS2 | PLUS1 = STAR1 / PLUS2 | ||||
| REXP = ZLARND( 2, ISEED ) | |||||
| REXP = DBLE( ZLARND( 2, ISEED ) ) | |||||
| IF( REXP.LT.ZERO ) THEN | IF( REXP.LT.ZERO ) THEN | ||||
| STAR1 = -SFAC**( ONE-REXP )*ZLARND( 5, ISEED ) | STAR1 = -SFAC**( ONE-REXP )*ZLARND( 5, ISEED ) | ||||
| ELSE | ELSE | ||||
| @@ -790,7 +790,7 @@ | |||||
| DO 460 J = 1, N / 2 | DO 460 J = 1, N / 2 | ||||
| JL = JJ | JL = JJ | ||||
| DO 450 I = J, N - J | DO 450 I = J, N - J | ||||
| T = AP( JR-I+J ) | |||||
| T = DBLE( AP( JR-I+J ) ) | |||||
| AP( JR-I+J ) = AP( JL ) | AP( JR-I+J ) = AP( JL ) | ||||
| AP( JL ) = T | AP( JL ) = T | ||||
| JL = JL + I | JL = JL + I | ||||
| @@ -804,7 +804,7 @@ | |||||
| DO 480 J = 1, N / 2 | DO 480 J = 1, N / 2 | ||||
| JR = JJ | JR = JJ | ||||
| DO 470 I = J, N - J | DO 470 I = J, N - J | ||||
| T = AP( JL+I-J ) | |||||
| T = DBLE( AP( JL+I-J ) ) | |||||
| AP( JL+I-J ) = AP( JR ) | AP( JL+I-J ) = AP( JR ) | ||||
| AP( JR ) = T | AP( JR ) = T | ||||
| JR = JR - I | JR = JR - I | ||||
| @@ -201,7 +201,8 @@ | |||||
| * | * | ||||
| * Compute the (K,K) element of the result. | * Compute the (K,K) element of the result. | ||||
| * | * | ||||
| AKK = ZDOTC( KLEN+1, AFAC( KC, K ), 1, AFAC( KC, K ), 1 ) | |||||
| AKK = DBLE( | |||||
| $ ZDOTC( KLEN+1, AFAC( KC, K ), 1, AFAC( KC, K ), 1 ) ) | |||||
| AFAC( KD+1, K ) = AKK | AFAC( KD+1, K ) = AKK | ||||
| * | * | ||||
| * Compute the rest of column K. | * Compute the rest of column K. | ||||
| @@ -228,7 +229,7 @@ | |||||
| * | * | ||||
| * Scale column K by the diagonal element. | * Scale column K by the diagonal element. | ||||
| * | * | ||||
| AKK = AFAC( 1, K ) | |||||
| AKK = DBLE( AFAC( 1, K ) ) | |||||
| CALL ZDSCAL( KLEN+1, AKK, AFAC( 1, K ), 1 ) | CALL ZDSCAL( KLEN+1, AKK, AFAC( 1, K ), 1 ) | ||||
| * | * | ||||
| 40 CONTINUE | 40 CONTINUE | ||||
| @@ -176,7 +176,7 @@ | |||||
| * | * | ||||
| * Compute the (K,K) element of the result. | * Compute the (K,K) element of the result. | ||||
| * | * | ||||
| TR = ZDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) | |||||
| TR = DBLE( ZDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) ) | |||||
| AFAC( K, K ) = TR | AFAC( K, K ) = TR | ||||
| * | * | ||||
| * Compute the rest of column K. | * Compute the rest of column K. | ||||
| @@ -224,7 +224,7 @@ | |||||
| 70 CONTINUE | 70 CONTINUE | ||||
| END IF | END IF | ||||
| * | * | ||||
| * Compute norm( L*U - A ) / ( N * norm(A) * EPS ) | |||||
| * Compute norm(L*U - A) / ( N * norm(A) * EPS ) | |||||
| * | * | ||||
| RESID = ZLANHE( '1', UPLO, N, AFAC, LDAFAC, RWORK ) | RESID = ZLANHE( '1', UPLO, N, AFAC, LDAFAC, RWORK ) | ||||
| * | * | ||||
| @@ -178,7 +178,7 @@ | |||||
| * | * | ||||
| * Compute the (K,K) element of the result. | * Compute the (K,K) element of the result. | ||||
| * | * | ||||
| TR = ZDOTC( K, AFAC( KC ), 1, AFAC( KC ), 1 ) | |||||
| TR = DBLE( ZDOTC( K, AFAC( KC ), 1, AFAC( KC ), 1 ) ) | |||||
| AFAC( KC+K-1 ) = TR | AFAC( KC+K-1 ) = TR | ||||
| * | * | ||||
| * Compute the rest of column K. | * Compute the rest of column K. | ||||
| @@ -219,7 +219,7 @@ | |||||
| * | * | ||||
| * Compute the (K,K) element of the result. | * Compute the (K,K) element of the result. | ||||
| * | * | ||||
| TR = ZDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) | |||||
| TR = DBLE( ZDOTC( K, AFAC( 1, K ), 1, AFAC( 1, K ), 1 ) ) | |||||
| AFAC( K, K ) = TR | AFAC( K, K ) = TR | ||||
| * | * | ||||
| * Compute the rest of column K. | * Compute the rest of column K. | ||||