94 SUBROUTINE sppt01( UPLO, N, A, AFAC, RWORK, RESID )
107 REAL a( * ), afac( * ), rwork( * )
114 parameter( zero = 0.0e+0, one = 1.0e+0 )
117 INTEGER i, k, kc, npp
143 anorm =
slansp(
'1', uplo, n, a, rwork )
144 IF( anorm.LE.zero )
THEN
151 IF(
lsame( uplo,
'U' ) )
THEN
152 kc = ( n*( n-1 ) ) / 2 + 1
157 t =
sdot( k, afac( kc ), 1, afac( kc ), 1 )
163 CALL
stpmv(
'Upper',
'Transpose',
'Non-unit', k-1, afac,
172 kc = ( n*( n+1 ) ) / 2
179 $ CALL
sspr(
'Lower', n-k, one, afac( kc+1 ), 1,
185 CALL
sscal( n-k+1, t, afac( kc ), 1 )
195 afac( i ) = afac( i ) - a( i )
200 resid =
slansp(
'1', uplo, n, afac, rwork )
202 resid = ( ( resid /
REAL( N ) ) / anorm ) / eps
REAL function slansp(NORM, UPLO, N, AP, WORK)
SLANSP returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a symmetric matrix supplied in packed form.
LOGICAL function lsame(CA, CB)
LSAME
REAL function slamch(CMACH)
SLAMCH
subroutine stpmv(UPLO, TRANS, DIAG, N, AP, X, INCX)
STPMV
subroutine sppt01(UPLO, N, A, AFAC, RWORK, RESID)
SPPT01
subroutine sspr(UPLO, N, ALPHA, X, INCX, AP)
SSPR
REAL function sdot(N, SX, INCX, SY, INCY)
SDOT
subroutine sscal(N, SA, SX, INCX)
SSCAL