139 SUBROUTINE zgbt02( 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 COMPLEX*16 A( lda, * ), B( ldb, * ), X( ldx, * )
159 DOUBLE PRECISION ZERO, ONE
160 parameter ( zero = 0.0d+0, one = 1.0d+0 )
162 parameter ( cone = ( 1.0d+0, 0.0d+0 ) )
165 INTEGER I1, I2, J, KD, N1
166 DOUBLE PRECISION ANORM, BNORM, EPS, XNORM
170 DOUBLE PRECISION DLAMCH, DZASUM
171 EXTERNAL lsame, dlamch, dzasum
183 IF( m.LE.0 .OR. n.LE.0 .OR. nrhs.LE.0 )
THEN
190 eps = dlamch(
'Epsilon' )
194 i1 = max( kd+1-j, 1 )
195 i2 = min( kd+m-j, kl+kd )
196 anorm = max( anorm, dzasum( i2-i1+1, a( i1, j ), 1 ) )
198 IF( anorm.LE.zero )
THEN
203 IF( lsame( trans,
'T' ) .OR. lsame( trans,
'C' ) )
THEN
212 CALL zgbmv( trans, m, n, kl, ku, -cone, a, lda, x( 1, j ), 1,
213 $ cone, b( 1, j ), 1 )
221 bnorm = dzasum( n1, b( 1, j ), 1 )
222 xnorm = dzasum( n1, x( 1, j ), 1 )
223 IF( xnorm.LE.zero )
THEN
226 resid = max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )
subroutine zgbt02(TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, RESID)
ZGBT02
subroutine zgbmv(TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGBMV