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)
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