107 SUBROUTINE stpt01( UPLO, DIAG, N, AP, AINVP, RCOND, WORK, RESID )
119 REAL AINVP( * ), AP( * ), WORK( * )
126 parameter( zero = 0.0e+0, one = 1.0e+0 )
131 REAL AINVNM, ANORM, EPS
136 EXTERNAL lsame, slamch, slantp
156 eps = slamch(
'Epsilon' )
157 anorm = slantp(
'1', uplo, diag, n, ap, work )
158 ainvnm = slantp(
'1', uplo, diag, n, ainvp, work )
159 IF( anorm.LE.zero .OR. ainvnm.LE.zero )
THEN
164 rcond = ( one / anorm ) / ainvnm
168 unitd = lsame( diag,
'U' )
169 IF( lsame( uplo,
'U' ) )
THEN
173 $ ainvp( jc+j-1 ) = one
177 CALL stpmv(
'Upper',
'No transpose', diag, j, ap,
182 ainvp( jc+j-1 ) = ainvp( jc+j-1 ) - one
193 CALL stpmv(
'Lower',
'No transpose', diag, n-j+1, ap( jc ),
198 ainvp( jc ) = ainvp( jc ) - one
205 resid = slantp(
'1', uplo,
'Non-unit', n, ainvp, work )
207 resid = ( ( resid*rcond ) / real( n ) ) / eps
subroutine stpmv(uplo, trans, diag, n, ap, x, incx)
STPMV
subroutine stpt01(uplo, diag, n, ap, ainvp, rcond, work, resid)
STPT01