122 SUBROUTINE dgetrs( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO )
131 INTEGER INFO, LDA, LDB, N, NRHS
135 DOUBLE PRECISION A( lda, * ), B( ldb, * )
142 parameter( one = 1.0d+0 )
162 notran = lsame( trans,
'N' )
163 IF( .NOT.notran .AND. .NOT.lsame( trans,
'T' ) .AND. .NOT.
164 $ lsame( trans,
'C' ) )
THEN
166 ELSE IF( n.LT.0 )
THEN
168 ELSE IF( nrhs.LT.0 )
THEN
170 ELSE IF( lda.LT.max( 1, n ) )
THEN
172 ELSE IF( ldb.LT.max( 1, n ) )
THEN
176 CALL
xerbla(
'DGETRS', -info )
182 IF( n.EQ.0 .OR. nrhs.EQ.0 )
191 CALL
dlaswp( nrhs, b, ldb, 1, n, ipiv, 1 )
195 CALL
dtrsm(
'Left',
'Lower',
'No transpose',
'Unit', n, nrhs,
196 $ one, a, lda, b, ldb )
200 CALL
dtrsm(
'Left',
'Upper',
'No transpose',
'Non-unit', n,
201 $ nrhs, one, a, lda, b, ldb )
208 CALL
dtrsm(
'Left',
'Upper',
'Transpose',
'Non-unit', n, nrhs,
209 $ one, a, lda, b, ldb )
213 CALL
dtrsm(
'Left',
'Lower',
'Transpose',
'Unit', n, nrhs, one,
218 CALL
dlaswp( nrhs, b, ldb, 1, n, ipiv, -1 )
subroutine dlaswp(N, A, LDA, K1, K2, IPIV, INCX)
DLASWP performs a series of row interchanges on a general rectangular matrix.
subroutine dgetrs(TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
DGETRS
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dtrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRSM