108 SUBROUTINE ctpt01( UPLO, DIAG, N, AP, AINVP, RCOND, RWORK, RESID )
121 COMPLEX ( * ), AP( * )
128 parameter( zero = 0.0e+0, one = 1.0e+0 )
133 REAL AINVNM, ANORM, EPS
138 EXTERNAL lsame, clantp,
slamch
159 anorm = clantp(
'1', uplo, diag, n, ap, rwork )
160 ainvnm = clantp(
'1', uplo, diag, n, ainvp, rwork )
161 IF( anorm.LE.zero .OR. ainvnm.LE.zero )
THEN
166 rcond = ( one / anorm ) / ainvnm
170 unitd = lsame( diag,
'U' )
171 IF( lsame( uplo,
'U' ) )
THEN
175 $ ainvp( jc+j-1 ) = one
179 CALL ctpmv(
'Upper',
'No transpose', diag, j, ap,
184 ainvp( jc+j-1 ) = ainvp( jc+j-1 ) - one
195 CALL ctpmv(
'Lower',
'No transpose', diag, n-j+1, ap( jc ),
200 ainvp( jc ) = ainvp( jc ) - one
207 resid = clantp( '1
', UPLO, 'non-unit
', N, AINVP, RWORK )
209 RESID = ( ( RESID*RCOND ) / REAL( N ) ) / EPS
subroutine ctpmv(uplo, trans, diag, n, ap, x, incx)
CTPMV
subroutine ctpt01(uplo, diag, n, ap, ainvp, rcond, rwork, resid)
CTPT01