109 SUBROUTINE stpt01( UPLO, DIAG, N, AP, AINVP, RCOND, WORK, RESID )
122 REAL ainvp( * ), ap( * ), work( * )
129 parameter( zero = 0.0e+0, one = 1.0e+0 )
134 REAL ainvnm, anorm, eps
160 anorm =
slantp(
'1', uplo, diag, n, ap, work )
161 ainvnm =
slantp(
'1', uplo, diag, n, ainvp, work )
162 IF( anorm.LE.zero .OR. ainvnm.LE.zero )
THEN
167 rcond = ( one / anorm ) / ainvnm
171 unitd =
lsame( diag,
'U' )
172 IF(
lsame( uplo,
'U' ) )
THEN
176 $ ainvp( jc+
j-1 ) = one
180 CALL
stpmv(
'Upper',
'No transpose', diag,
j, ap,
185 ainvp( jc+
j-1 ) = ainvp( jc+
j-1 ) - one
196 CALL
stpmv(
'Lower',
'No transpose', diag, n-
j+1, ap( jc ),
201 ainvp( jc ) = ainvp( jc ) - one
208 resid =
slantp(
'1', uplo,
'Non-unit', n, ainvp, work )
210 resid = ( ( resid*rcond ) /
REAL( N ) ) / eps
LOGICAL function lsame(CA, CB)
LSAME
subroutine stpt01(UPLO, DIAG, N, AP, AINVP, RCOND, WORK, RESID)
STPT01
REAL function slamch(CMACH)
SLAMCH
subroutine stpmv(UPLO, TRANS, DIAG, N, AP, X, INCX)
STPMV
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
REAL function slantp(NORM, UPLO, DIAG, N, AP, WORK)
SLANTP returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a triangular matrix supplied in packed form.