118 SUBROUTINE sgetrs( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO )
126 INTEGER INFO, LDA, LDB, N, NRHS
130 REAL A( LDA, * ), B( LDB, * )
137 parameter( one = 1.0e+0 )
157 notran = lsame( trans,
'N' )
158 IF( .NOT.notran .AND. .NOT.lsame( trans,
'T' ) .AND. .NOT.
159 $ lsame( trans,
'C' ) )
THEN
161 ELSE IF( n.LT.0 )
THEN
163 ELSE IF( nrhs.LT.0 )
THEN
165 ELSE IF( lda.LT.max( 1, n ) )
THEN
167 ELSE IF( ldb.LT.max( 1, n ) )
THEN
171 CALL xerbla(
'SGETRS', -info )
177 IF( n.EQ.0 .OR. nrhs.EQ.0 )
186 CALL slaswp( nrhs, b, ldb, 1, n, ipiv, 1 )
190 CALL strsm(
'Left',
'Lower',
'No transpose',
'Unit', n,
192 $ one, a, lda, b, ldb )
196 CALL strsm(
'Left',
'Upper',
'No transpose',
'Non-unit', n,
197 $ nrhs, one, a, lda, b, ldb )
204 CALL strsm(
'Left',
'Upper',
'Transpose',
'Non-unit', n,
206 $ one, a, lda, b, ldb )
210 CALL strsm(
'Left',
'Lower',
'Transpose',
'Unit', n, nrhs,
216 CALL slaswp( nrhs, b, ldb, 1, n, ipiv, -1 )
subroutine sgetrs(trans, n, nrhs, a, lda, ipiv, b, ldb, info)
SGETRS
subroutine slaswp(n, a, lda, k1, k2, ipiv, incx)
SLASWP performs a series of row interchanges on a general rectangular matrix.
subroutine strsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
STRSM