105 SUBROUTINE dpot01( UPLO, N, A, LDA, AFAC, LDAFAC, RWORK, RESID )
114 INTEGER lda, ldafac, n
115 DOUBLE PRECISION resid
118 DOUBLE PRECISION a( lda, * ), afac( ldafac, * ), rwork( * )
124 DOUBLE PRECISION zero, one
125 parameter( zero = 0.0d+0, one = 1.0d+0 )
129 DOUBLE PRECISION anorm, eps, t
154 anorm =
dlansy(
'1', uplo, n, a, lda, rwork )
155 IF( anorm.LE.zero )
THEN
162 IF(
lsame( uplo,
'U' ) )
THEN
167 t =
ddot( k, afac( 1, k ), 1, afac( 1, k ), 1 )
172 CALL
dtrmv(
'Upper',
'Transpose',
'Non-unit', k-1, afac,
173 $ ldafac, afac( 1, k ), 1 )
186 $ CALL
dsyr(
'Lower', n-k, one, afac( k+1, k ), 1,
187 $ afac( k+1, k+1 ), ldafac )
192 CALL
dscal( n-k+1, t, afac( k, k ), 1 )
199 IF(
lsame( uplo,
'U' ) )
THEN
202 afac( i,
j ) = afac( i,
j ) - a( i,
j )
208 afac( i,
j ) = afac( i,
j ) - a( i,
j )
215 resid =
dlansy(
'1', uplo, n, afac, ldafac, rwork )
217 resid = ( ( resid / dble( n ) ) / anorm ) / eps
LOGICAL function lsame(CA, CB)
LSAME
subroutine dsyr(UPLO, N, ALPHA, X, INCX, A, LDA)
DSYR
DOUBLE PRECISION function dlansy(NORM, UPLO, N, A, LDA, WORK)
DLANSY returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a real symmetric matrix.
subroutine dpot01(UPLO, N, A, LDA, AFAC, LDAFAC, RWORK, RESID)
DPOT01
subroutine dscal(N, DA, DX, INCX)
DSCAL
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
DOUBLE PRECISION function dlamch(CMACH)
DLAMCH
DOUBLE PRECISION function ddot(N, DX, INCX, DY, INCY)
DDOT
subroutine dtrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
DTRMV