120 SUBROUTINE dppt02( UPLO, N, NRHS, A, X, LDX, B, LDB, RWORK,
129 INTEGER LDB, LDX, N, NRHS
130 DOUBLE PRECISION RESID
133 DOUBLE PRECISION A( * ), B( LDB, * ), RWORK( * ), X( LDX, * )
139 DOUBLE PRECISION ZERO, ONE
140 parameter( zero = 0.0d+0, one = 1.0d+0 )
144 DOUBLE PRECISION ANORM, BNORM, EPS, XNORM
147 DOUBLE PRECISION DASUM, DLAMCH, DLANSP
148 EXTERNAL dasum, dlamch, dlansp
160 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
167 eps = dlamch(
'Epsilon' )
168 anorm = dlansp(
'1', uplo, n, a, rwork )
169 IF( anorm.LE.zero )
THEN
177 CALL dspmv( uplo, n, -one, a, x( 1, j ), 1, one, b( 1, j ), 1 )
185 bnorm = dasum( n, b( 1, j ), 1 )
186 xnorm = dasum( n, x( 1, j ), 1 )
187 IF( xnorm.LE.zero )
THEN
190 resid = max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )
subroutine dppt02(uplo, n, nrhs, a, x, ldx, b, ldb, rwork, resid)
DPPT02
subroutine dspmv(uplo, n, alpha, ap, x, incx, beta, y, incy)
DSPMV