92 SUBROUTINE sppt01( UPLO, N, A, AFAC, RWORK, RESID )
104 REAL A( * ), AFAC( * ), RWORK( * )
111 parameter( zero = 0.0e+0, one = 1.0e+0 )
114 INTEGER I, K, KC, NPP
119 REAL SDOT, SLAMCH, SLANSP
120 EXTERNAL lsame, sdot, slamch, slansp
139 eps = slamch(
'Epsilon' )
140 anorm = slansp(
'1', uplo, n, a, rwork )
141 IF( anorm.LE.zero )
THEN
148 IF( lsame( uplo,
'U' ) )
THEN
149 kc = ( n*( n-1 ) ) / 2 + 1
154 t = sdot( k, afac( kc ), 1, afac( kc ), 1 )
160 CALL stpmv(
'Upper',
'Transpose',
'Non-unit', k-1, afac,
169 kc = ( n*( n+1 ) ) / 2
176 $
CALL sspr(
'Lower', n-k, one, afac( kc+1 ), 1,
182 CALL sscal( n-k+1, t, afac( kc ), 1 )
192 afac( i ) = afac( i ) - a( i )
197 resid = slansp(
'1', uplo, n, afac, rwork )
199 resid = ( ( resid / real( n ) ) / anorm ) / eps
subroutine sspr(uplo, n, alpha, x, incx, ap)
SSPR
subroutine sscal(n, sa, sx, incx)
SSCAL
subroutine stpmv(uplo, trans, diag, n, ap, x, incx)
STPMV
subroutine sppt01(uplo, n, a, afac, rwork, resid)
SPPT01