1 SUBROUTINE dpot02( UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK,
10 INTEGER lda, ldb, ldx, n, nrhs
11 DOUBLE PRECISION resid
14 DOUBLE PRECISION a( lda, * ), b( ldb, * ), rwork( * ),
74 DOUBLE PRECISION zero, one
75 parameter( zero = 0.0d+0, one = 1.0d+0 )
79 DOUBLE PRECISION anorm, bnorm, eps, xnorm
82 DOUBLE PRECISION dasum, dlamch, dlansy
83 EXTERNAL dasum, dlamch, dlansy
95 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
102 eps = dlamch(
'Epsilon' )
103 anorm = dlansy(
'1',
uplo, n, a, lda, rwork )
104 IF( anorm.LE.zero )
THEN
111 CALL dsymm(
'Left',
uplo, n, nrhs, -one, a, lda, x, ldx, one, b,
119 bnorm = dasum( n, b( 1, j ), 1 )
120 xnorm = dasum( n, x( 1, j ), 1 )
121 IF( xnorm.LE.zero )
THEN
124 resid =
max( resid, ( ( bnorm / anorm ) / xnorm ) / eps )