141 SUBROUTINE zgtcon( NORM, N, DL, D, DU, DU2, IPIV, ANORM, RCOND,
152 DOUBLE PRECISION anorm, rcond
156 COMPLEX*16 d( * ), dl( * ), du( * ), du2( * ), work( * )
162 DOUBLE PRECISION one, zero
163 parameter( one = 1.0d+0, zero = 0.0d+0 )
167 INTEGER i, kase, kase1
168 DOUBLE PRECISION ainvnm
188 onenrm = norm.EQ.
'1' .OR.
lsame( norm,
'O' )
189 IF( .NOT.onenrm .AND. .NOT.
lsame( norm,
'I' ) )
THEN
191 ELSE IF( n.LT.0 )
THEN
193 ELSE IF( anorm.LT.zero )
THEN
197 CALL
xerbla(
'ZGTCON', -info )
207 ELSE IF( anorm.EQ.zero )
THEN
214 IF( d( i ).EQ.dcmplx( zero ) )
226 CALL
zlacn2( n, work( n+1 ), work, ainvnm, kase, isave )
228 IF( kase.EQ.kase1 )
THEN
232 CALL
zgttrs(
'No transpose', n, 1, dl, d, du, du2, ipiv,
238 CALL
zgttrs(
'Conjugate transpose', n, 1, dl, d, du, du2,
239 $ ipiv, work, n, info )
247 $ rcond = ( one / ainvnm ) / anorm