130 SUBROUTINE ztpcon( NORM, UPLO, DIAG, N, AP, RCOND, WORK, RWORK,
139 CHARACTER DIAG, NORM, UPLO
141 DOUBLE PRECISION RCOND
144 DOUBLE PRECISION RWORK( * )
145 COMPLEX*16 AP( * ), WORK( * )
151 DOUBLE PRECISION ONE, ZERO
152 parameter( one = 1.0d+0, zero = 0.0d+0 )
155 LOGICAL NOUNIT, ONENRM, UPPER
157 INTEGER IX, KASE, KASE1
158 DOUBLE PRECISION AINVNM, ANORM, SCALE, SMLNUM, XNORM
167 DOUBLE PRECISION DLAMCH, ZLANTP
168 EXTERNAL lsame, izamax, dlamch, zlantp
174 INTRINSIC abs, dble, dimag, max
177 DOUBLE PRECISION CABS1
180 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
187 upper = lsame( uplo,
'U' )
188 onenrm = norm.EQ.
'1' .OR. lsame( norm,
'O' )
189 nounit = lsame( diag,
'N' )
191 IF( .NOT.onenrm .AND. .NOT.lsame( norm,
'I' ) )
THEN 193 ELSE IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN 195 ELSE IF( .NOT.nounit .AND. .NOT.lsame( diag,
'U' ) )
THEN 197 ELSE IF( n.LT.0 )
THEN 201 CALL xerbla(
'ZTPCON', -info )
213 smlnum = dlamch(
'Safe minimum' )*dble( max( 1, n ) )
217 anorm = zlantp( norm, uplo, diag, n, ap, rwork )
221 IF( anorm.GT.zero )
THEN 234 CALL zlacn2( n, work( n+1 ), work, ainvnm, kase, isave )
236 IF( kase.EQ.kase1 )
THEN 240 CALL zlatps( uplo,
'No transpose', diag, normin, n, ap,
241 $ work, scale, rwork, info )
246 CALL zlatps( uplo,
'Conjugate transpose', diag, normin,
247 $ n, ap, work, scale, rwork, info )
253 IF( scale.NE.one )
THEN 254 ix = izamax( n, work, 1 )
255 xnorm = cabs1( work( ix ) )
256 IF( scale.LT.xnorm*smlnum .OR. scale.EQ.zero )
258 CALL zdrscl( n, scale, work, 1 )
266 $ rcond = ( one / anorm ) / ainvnm
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 zlacn2(N, V, X, EST, KASE, ISAVE)
ZLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...
subroutine zdrscl(N, SA, SX, INCX)
ZDRSCL multiplies a vector by the reciprocal of a real scalar.
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztpcon(NORM, UPLO, DIAG, N, AP, RCOND, WORK, RWORK, INFO)
ZTPCON