134 SUBROUTINE sgbtrs( TRANS, N, KL, KU, NRHS, AB, LDAB, IPIV, B,
144 INTEGER INFO, KL, KU, LDAB, LDB, N, NRHS
148 REAL AB( LDAB, * ), B( LDB, * )
155 PARAMETER ( ONE = 1.0e+0 )
158 LOGICAL LNOTI, NOTRAN
159 INTEGER I, J, KD, L, LM
176 notran = lsame( trans,
'N' )
177 IF( .NOT.notran .AND. .NOT.lsame( trans,
'T' ) .AND. .NOT.
178 $ lsame( trans,
'C' ) )
THEN
180 ELSE IF( n.LT.0 )
THEN
182 ELSE IF( kl.LT.0 )
THEN
184 ELSE IF( ku.LT.0 )
THEN
186 ELSE IF( nrhs.LT.0 )
THEN
188 ELSE IF( ldab.LT.( 2*kl+ku+1 ) )
THEN
190 ELSE IF( ldb.LT.max( 1, n ) )
THEN
194 CALL xerbla(
'SGBTRS', -info )
200 IF( n.EQ.0 .OR. nrhs.EQ.0 )
222 $
CALL sswap( nrhs, b( l, 1 ), ldb, b( j, 1 ), ldb )
223 CALL sger( lm, nrhs, -one, ab( kd+1, j ), 1, b( j,
225 $ ldb, b( j+1, 1 ), ldb )
233 CALL stbsv(
'Upper',
'No transpose',
'Non-unit', n,
235 $ ab, ldab, b( 1, i ), 1 )
246 CALL stbsv(
'Upper',
'Transpose',
'Non-unit', n, kl+ku,
248 $ ldab, b( 1, i ), 1 )
254 DO 40 j = n - 1, 1, -1
256 CALL sgemv(
'Transpose', lm, nrhs, -one, b( j+1, 1 ),
257 $ ldb, ab( kd+1, j ), 1, one, b( j, 1 ), ldb )
260 $
CALL sswap( nrhs, b( l, 1 ), ldb, b( j, 1 ), ldb )
subroutine sgbtrs(trans, n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info)
SGBTRS
subroutine sgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
SGEMV
subroutine sger(m, n, alpha, x, incx, y, incy, a, lda)
SGER
subroutine stbsv(uplo, trans, diag, n, k, a, lda, x, incx)
STBSV