137 SUBROUTINE zgbt02( 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 COMPLEX*16 A( LDA, * ), B( LDB, * ), X( LDX, * )
156 DOUBLE PRECISION ZERO, ONE
157 parameter( zero = 0.0d+0, one = 1.0d+0 )
159 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
162 INTEGER I1, I2, J, KD, N1
163 DOUBLE PRECISION ANORM, BNORM, EPS, XNORM
167 DOUBLE PRECISION DLAMCH, DZASUM
168 EXTERNAL lsame, dlamch, dzasum
180 IF( m.LE.0 .OR. n.LE.0 .OR. nrhs.LE.0 )
THEN
187 eps = dlamch(
'Epsilon' )
191 i1 = max( kd+1-j, 1 )
192 i2 = min( kd+m-j, kl+kd )
193 anorm = max( anorm, dzasum( i2-i1+1, a( i1, j ), 1 ) )
195 IF( anorm.LE.zero )
THEN
200 IF( lsame( trans,
'T' ) .OR. lsame( trans,
'C' ) )
THEN
209 CALL zgbmv( trans, m, n, kl, ku, -cone, a, lda, x( 1, j ), 1,
210 $ cone, b( 1, j ), 1 )
218 bnorm = dzasum( n1, b( 1, j ), 1 )
219 xnorm = dzasum( n1, x( 1, j ), 1 )
220 IF( xnorm.LE.zero )
THEN
223 resid = max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )
subroutine zgbmv(TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGBMV
subroutine zgbt02(TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, RESID)
ZGBT02