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
subroutine dsyr(UPLO, N, ALPHA, X, INCX, A, LDA)
DSYR
subroutine dpot01(UPLO, N, A, LDA, AFAC, LDAFAC, RWORK, RESID)
DPOT01
logical function lsame(CA, CB)
LSAME
subroutine dscal(N, DA, DX, INCX)
DSCAL
double precision function ddot(N, DX, INCX, DY, INCY)
DDOT
double precision function dlamch(CMACH)
DLAMCH
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
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 dtrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
DTRMV