146 SUBROUTINE zgbt02( TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B,
147 $ LDB, RWORK, RESID )
155 INTEGER KL, KU, LDA, LDB, LDX, M, N,
156 DOUBLE PRECISION RESID
159 DOUBLE PRECISION RWORK( * )
160 COMPLEX*16 A( LDA, * ), B( LDB, * ), X( LDX, * )
166 DOUBLE PRECISION ZERO, ONE
167 parameter( zero = 0.0d+0, one = 1.0d+0 )
169 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
172 INTEGER I1, I2, J, KD, N1
173 DOUBLE PRECISION ANORM, BNORM, EPS, TEMP, XNORM
177 LOGICAL DISNAN, LSAME
178 DOUBLE PRECISION , DZASUM
179 EXTERNAL disnan,
dlamch, dzasum, lsame
185 DOUBLE PRECISION CABS1
188 INTRINSIC abs, dble, dimag,
max,
min
191 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
197 IF( m.LE.0 .OR. n.LE.0 .OR. nrhs.LE.0 )
THEN
206 IF( lsame( trans, 'n
' ) ) THEN
212 I1 = MAX( KD+1-J, 1 )
213 I2 = MIN( KD+M-J, KL+KD )
215 TEMP = DZASUM( I2-I1+1, A( I1, J ), 1 )
216.LT..OR.
IF( ANORMTEMP DISNAN( TEMP ) ) ANORM = TEMP
228 DO 14 I1 = MAX( 1, J-KU ), MIN( M, J+KL )
229 RWORK( I1 ) = RWORK( I1 ) + CABS1( A( KD+I1, J ) )
234.LT..OR.
IF( ANORMTEMP DISNAN( TEMP ) ) ANORM = TEMP
237.LE.
IF( ANORMZERO ) THEN
242 IF( LSAME( TRANS, 't.OR.
' ) LSAME( TRANS, 'c
' ) ) THEN
251 CALL ZGBMV( TRANS, M, N, KL, KU, -CONE, A, LDA, X( 1, J ), 1,
252 $ CONE, B( 1, J ), 1 )
260 BNORM = DZASUM( N1, B( 1, J ), 1 )
261 XNORM = DZASUM( N1, X( 1, J ), 1 )
262.LE.
IF( XNORMZERO ) THEN
265 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, rwork, resid)
ZGBT02