137 SUBROUTINE dgbt02( TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B,
146 INTEGER KL, KU, LDA, LDB, LDX, M, N, NRHS
147 DOUBLE PRECISION RESID
150 DOUBLE PRECISION A( LDA, * ), B( LDB, * ), X( LDX, * )
156 DOUBLE PRECISION ZERO, ONE
157 parameter( zero = 0.0d+0, one = 1.0d+0 )
160 INTEGER I1, I2, J, KD, N1
161 DOUBLE PRECISION ANORM, BNORM, EPS, XNORM
165 DOUBLE PRECISION DASUM, DLAMCH
166 EXTERNAL lsame, dasum, dlamch
178 IF( m.LE.0 .OR. n.LE.0 .OR. nrhs.LE.0 )
THEN
185 eps = dlamch(
'Epsilon' )
189 i1 = max( kd+1-j, 1 )
190 i2 = min( kd+m-j, kl+kd )
191 anorm = max( anorm, dasum( i2-i1+1, a( i1, j ), 1 ) )
193 IF( anorm.LE.zero )
THEN
198 IF( lsame( trans,
'T' ) .OR. lsame( trans,
'C' ) )
THEN
207 CALL dgbmv( trans, m, n, kl, ku, -one, a, lda, x( 1, j ), 1,
208 $ one, b( 1, j ), 1 )
216 bnorm = dasum( n1, b( 1, j ), 1 )
217 xnorm = dasum( n1, x( 1, j ), 1 )
218 IF( xnorm.LE.zero )
THEN
221 resid = max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )
subroutine dgbmv(TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGBMV
subroutine dgbt02(TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, RESID)
DGBT02