136 SUBROUTINE dpbt02( UPLO, N, KD, NRHS, A, LDA, X, LDX, B, LDB,
146 INTEGER KD, LDA, LDB, LDX, N, NRHS
147 DOUBLE PRECISION RESID
150 DOUBLE PRECISION A( lda, * ), B( ldb, * ), RWORK( * ),
157 DOUBLE PRECISION ZERO, ONE
158 parameter ( zero = 0.0d+0, one = 1.0d+0 )
162 DOUBLE PRECISION ANORM, BNORM, EPS, XNORM
165 DOUBLE PRECISION DASUM, DLAMCH, DLANSB
166 EXTERNAL dasum, dlamch, dlansb
178 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
185 eps = dlamch(
'Epsilon' )
186 anorm = dlansb(
'1', uplo, n, kd, a, lda, rwork )
187 IF( anorm.LE.zero )
THEN
195 CALL dsbmv( uplo, n, kd, -one, a, lda, x( 1, j ), 1, one,
204 bnorm = dasum( n, b( 1, j ), 1 )
205 xnorm = dasum( n, x( 1, j ), 1 )
206 IF( xnorm.LE.zero )
THEN
209 resid = max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )
subroutine dsbmv(UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DSBMV
subroutine dpbt02(UPLO, N, KD, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
DPBT02