131 SUBROUTINE zpbcon( UPLO, N, KD, AB, LDAB, ANORM, RCOND, WORK,
140 INTEGER INFO, KD, LDAB, N
141 DOUBLE PRECISION ANORM, RCOND
144 DOUBLE PRECISION RWORK( * )
145 COMPLEX*16 AB( ldab, * ), WORK( * )
151 DOUBLE PRECISION ONE, ZERO
152 parameter( one = 1.0d+0, zero = 0.0d+0 )
158 DOUBLE PRECISION AINVNM, SCALE, SCALEL, SCALEU, SMLNUM
167 DOUBLE PRECISION DLAMCH
168 EXTERNAL lsame, izamax, dlamch
174 INTRINSIC abs, dble, dimag
177 DOUBLE PRECISION CABS1
180 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
187 upper = lsame( uplo,
'U' )
188 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN 190 ELSE IF( n.LT.0 )
THEN 192 ELSE IF( kd.LT.0 )
THEN 194 ELSE IF( ldab.LT.kd+1 )
THEN 196 ELSE IF( anorm.LT.zero )
THEN 200 CALL xerbla(
'ZPBCON', -info )
210 ELSE IF( anorm.EQ.zero )
THEN 214 smlnum = dlamch(
'Safe minimum' )
221 CALL zlacn2( n, work( n+1 ), work, ainvnm, kase, isave )
227 CALL zlatbs(
'Upper',
'Conjugate transpose',
'Non-unit',
228 $ normin, n, kd, ab, ldab, work, scalel, rwork,
234 CALL zlatbs(
'Upper',
'No transpose',
'Non-unit', normin, n,
235 $ kd, ab, ldab, work, scaleu, rwork, info )
240 CALL zlatbs(
'Lower',
'No transpose',
'Non-unit', normin, n,
241 $ kd, ab, ldab, work, scalel, rwork, info )
246 CALL zlatbs(
'Lower',
'Conjugate transpose',
'Non-unit',
247 $ normin, n, kd, ab, ldab, work, scaleu, rwork,
253 scale = scalel*scaleu
254 IF( scale.NE.one )
THEN 255 ix = izamax( n, work, 1 )
256 IF( scale.LT.cabs1( work( ix ) )*smlnum .OR. scale.EQ.zero )
258 CALL zdrscl( n, scale, work, 1 )
266 $ rcond = ( one / ainvnm ) / anorm
subroutine zpbcon(UPLO, N, KD, AB, LDAB, ANORM, RCOND, WORK, RWORK, INFO)
ZPBCON
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlatbs(UPLO, TRANS, DIAG, NORMIN, N, KD, AB, LDAB, X, SCALE, CNORM, INFO)
ZLATBS solves a triangular banded system of equations.
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.