138 SUBROUTINE zgbtrs( TRANS, N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB,
148 INTEGER info, kl, ku, ldab, ldb, n, nrhs
152 COMPLEX*16 ab( ldab, * ),
b( ldb, * )
159 parameter( one = ( 1.0d+0, 0.0d+0 ) )
162 LOGICAL lnoti, notran
163 INTEGER i,
j, kd, l, lm
180 notran =
lsame( trans,
'N' )
181 IF( .NOT.notran .AND. .NOT.
lsame( trans,
'T' ) .AND. .NOT.
182 $
lsame( trans,
'C' ) )
THEN
184 ELSE IF( n.LT.0 )
THEN
186 ELSE IF( kl.LT.0 )
THEN
188 ELSE IF( ku.LT.0 )
THEN
190 ELSE IF( nrhs.LT.0 )
THEN
192 ELSE IF( ldab.LT.( 2*kl+ku+1 ) )
THEN
194 ELSE IF( ldb.LT.max( 1, n ) )
THEN
198 CALL
xerbla(
'ZGBTRS', -info )
204 IF( n.EQ.0 .OR. nrhs.EQ.0 )
226 $ CALL
zswap( nrhs,
b( l, 1 ), ldb,
b(
j, 1 ), ldb )
227 CALL
zgeru( lm, nrhs, -one, ab( kd+1,
j ), 1,
b(
j, 1 ),
228 $ ldb,
b(
j+1, 1 ), ldb )
236 CALL
ztbsv(
'Upper',
'No transpose',
'Non-unit', n, kl+ku,
237 $ ab, ldab,
b( 1, i ), 1 )
240 ELSE IF(
lsame( trans,
'T' ) )
THEN
248 CALL
ztbsv(
'Upper',
'Transpose',
'Non-unit', n, kl+ku, ab,
249 $ ldab,
b( 1, i ), 1 )
255 DO 40
j = n - 1, 1, -1
257 CALL
zgemv(
'Transpose', lm, nrhs, -one,
b(
j+1, 1 ),
258 $ ldb, ab( kd+1,
j ), 1, one,
b(
j, 1 ), ldb )
261 $ CALL
zswap( nrhs,
b( l, 1 ), ldb,
b(
j, 1 ), ldb )
273 CALL
ztbsv(
'Upper',
'Conjugate transpose',
'Non-unit', n,
274 $ kl+ku, ab, ldab,
b( 1, i ), 1 )
280 DO 60
j = n - 1, 1, -1
283 CALL
zgemv(
'Conjugate transpose', lm, nrhs, -one,
284 $
b(
j+1, 1 ), ldb, ab( kd+1,
j ), 1, one,
289 $ CALL
zswap( nrhs,
b( l, 1 ), ldb,
b(
j, 1 ), ldb )
subroutine zswap(N, ZX, INCX, ZY, INCY)
ZSWAP
LOGICAL function lsame(CA, CB)
LSAME
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real b(3) integer i
subroutine zlacgv(N, X, INCX)
ZLACGV conjugates a complex vector.
subroutine zgbtrs(TRANS, N, KL, KU, NRHS, AB, LDAB, IPIV, B, LDB, INFO)
ZGBTRS
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine ztbsv(UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX)
ZTBSV
subroutine zgeru(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZGERU