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, rhsnorm, eps, xnorm
82 DOUBLE PRECISION dasum, dlamch, dlansy, dlange
83 EXTERNAL dasum, dlamch, dlansy, dlange
95 IF( n.LE.0 .OR. nrhs.LE.0 )
THEN
102 eps = dlamch(
'Epsilon' )
103 anorm = dlansy(
'1',
uplo, n, a, lda, rwork )
104 rhsnorm = dlange(
'1', n, nrhs, b, ldb, rwork )
105 IF( anorm.LE.zero )
THEN
112 CALL dsymm(
'Left',
uplo, n, nrhs, -one, a, lda, x, ldx, one, b,
120 bnorm = dasum( n, b( 1, j ), 1 )
121 xnorm = dasum( n, x( 1, j ), 1 )
122 IF( xnorm.LE.zero )
THEN
125 resid =
max( resid, ( bnorm) / ((anorm * xnorm + rhsnorm)*