126 SUBROUTINE ztpcon( NORM, UPLO, DIAG, N, AP, RCOND, WORK, RWORK,
134 CHARACTER DIAG, NORM, UPLO
136 DOUBLE PRECISION RCOND
139 DOUBLE PRECISION RWORK( * )
140 COMPLEX*16 AP( * ), WORK( * )
146 DOUBLE PRECISION ONE, ZERO
147 parameter( one = 1.0d+0, zero = 0.0d+0 )
150 LOGICAL NOUNIT, ONENRM, UPPER
152 INTEGER IX, KASE, KASE1
153 DOUBLE PRECISION AINVNM, ANORM, SCALE, SMLNUM, XNORM
162 DOUBLE PRECISION DLAMCH, ZLANTP
163 EXTERNAL lsame, izamax, dlamch, zlantp
169 INTRINSIC abs, dble, dimag, max
172 DOUBLE PRECISION CABS1
175 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
182 upper = lsame( uplo,
'U' )
183 onenrm = norm.EQ.
'1' .OR. lsame( norm,
'O' )
184 nounit = lsame( diag,
'N' )
186 IF( .NOT.onenrm .AND. .NOT.lsame( norm,
'I' ) )
THEN
188 ELSE IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
190 ELSE IF( .NOT.nounit .AND. .NOT.lsame( diag,
'U' ) )
THEN
192 ELSE IF( n.LT.0 )
THEN
196 CALL xerbla(
'ZTPCON', -info )
208 smlnum = dlamch(
'Safe minimum' )*dble( max( 1, n ) )
212 anorm = zlantp( norm, uplo, diag, n, ap, rwork )
216 IF( anorm.GT.zero )
THEN
229 CALL zlacn2( n, work( n+1 ), work, ainvnm, kase, isave )
231 IF( kase.EQ.kase1 )
THEN
235 CALL zlatps( uplo,
'No transpose', diag, normin, n,
237 $ work, scale, rwork, info )
242 CALL zlatps( uplo,
'Conjugate transpose', diag,
244 $ n, ap, work, scale, rwork, info )
250 IF( scale.NE.one )
THEN
251 ix = izamax( n, work, 1 )
252 xnorm = cabs1( work( ix ) )
253 IF( scale.LT.xnorm*smlnum .OR. scale.EQ.zero )
255 CALL zdrscl( n, scale, work, 1 )
263 $ rcond = ( one / anorm ) / ainvnm
subroutine zlacn2(n, v, x, est, kase, isave)
ZLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...
subroutine zlatps(uplo, trans, diag, normin, n, ap, x, scale, cnorm, info)
ZLATPS solves a triangular system of equations with the matrix held in packed storage.
subroutine zdrscl(n, sa, sx, incx)
ZDRSCL multiplies a vector by the reciprocal of a real scalar.
subroutine ztpcon(norm, uplo, diag, n, ap, rcond, work, rwork, info)
ZTPCON