139 SUBROUTINE dgbt02( TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B,
149 INTEGER kl, ku, lda, ldb, ldx, m, n, nrhs
150 DOUBLE PRECISION resid
153 DOUBLE PRECISION a( lda, * ), b( ldb, * ), x( ldx, * )
159 DOUBLE PRECISION zero, one
160 parameter( zero = 0.0d+0, one = 1.0d+0 )
163 INTEGER i1, i2, j, kd, n1
164 DOUBLE PRECISION anorm, bnorm, eps, xnorm
181 IF( m.LE.0 .OR. n.LE.0 .OR. nrhs.LE.0 )
THEN
192 i1 = max( kd+1-j, 1 )
193 i2 = min( kd+m-j, kl+kd )
194 anorm = max( anorm,
dasum( i2-i1+1, a( i1, j ), 1 ) )
196 IF( anorm.LE.zero )
THEN
201 IF(
lsame( trans,
'T' ) .OR.
lsame( trans,
'C' ) )
THEN
210 CALL
dgbmv( trans, m, n, kl, ku, -one, a, lda, x( 1, j ), 1,
211 $ one, b( 1, j ), 1 )
219 bnorm =
dasum( n1, b( 1, j ), 1 )
220 xnorm =
dasum( n1, x( 1, j ), 1 )
221 IF( xnorm.LE.zero )
THEN
224 resid = max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )