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 dtrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRSM
subroutine dgetrs(TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
DGETRS
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dlaswp(N, A, LDA, K1, K2, IPIV, INCX)
DLASWP performs a series of row interchanges on a general rectangular matrix.