138 SUBROUTINE dtrtrs( UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB,
146 CHARACTER DIAG, TRANS, UPLO
147 INTEGER INFO, LDA, LDB, N, NRHS
150 DOUBLE PRECISION A( lda, * ), B( ldb, * )
156 DOUBLE PRECISION ZERO, ONE
157 parameter( zero = 0.0d+0, one = 1.0d+0 )
177 nounit = lsame( diag,
'N' )
178 IF( .NOT.lsame( uplo,
'U' ) .AND. .NOT.lsame( uplo,
'L' ) )
THEN 180 ELSE IF( .NOT.lsame( trans,
'N' ) .AND. .NOT.
181 $ lsame( trans,
'T' ) .AND. .NOT.lsame( trans,
'C' ) )
THEN 183 ELSE IF( .NOT.nounit .AND. .NOT.lsame( diag,
'U' ) )
THEN 185 ELSE IF( n.LT.0 )
THEN 187 ELSE IF( nrhs.LT.0 )
THEN 189 ELSE IF( lda.LT.max( 1, n ) )
THEN 191 ELSE IF( ldb.LT.max( 1, n ) )
THEN 195 CALL xerbla(
'DTRTRS', -info )
208 IF( a( info, info ).EQ.zero )
216 CALL dtrsm(
'Left', uplo, trans, diag, n, nrhs, one, a, lda, b,
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dtrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRSM
subroutine dtrtrs(UPLO, TRANS, DIAG, N, NRHS, A, LDA, B, LDB, INFO)
DTRTRS