133 SUBROUTINE zpbcon( UPLO, N, KD, AB, LDAB, ANORM, RCOND, WORK,
143 INTEGER info, kd, ldab, n
144 DOUBLE PRECISION anorm, rcond
147 DOUBLE PRECISION rwork( * )
148 COMPLEX*16 ab( ldab, * ), work( * )
154 DOUBLE PRECISION one, zero
155 parameter( one = 1.0d+0, zero = 0.0d+0 )
161 DOUBLE PRECISION ainvnm, scale, scalel, scaleu, smlnum
177 INTRINSIC abs, dble, dimag
180 DOUBLE PRECISION cabs1
183 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
190 upper =
lsame( uplo,
'U' )
191 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
193 ELSE IF( n.LT.0 )
THEN
195 ELSE IF( kd.LT.0 )
THEN
197 ELSE IF( ldab.LT.kd+1 )
THEN
199 ELSE IF( anorm.LT.zero )
THEN
203 CALL
xerbla(
'ZPBCON', -info )
213 ELSE IF( anorm.EQ.zero )
THEN
217 smlnum =
dlamch(
'Safe minimum' )
224 CALL
zlacn2( n, work( n+1 ), work, ainvnm, kase, isave )
230 CALL
zlatbs(
'Upper',
'Conjugate transpose',
'Non-unit',
231 $ normin, n, kd, ab, ldab, work, scalel, rwork,
237 CALL
zlatbs(
'Upper',
'No transpose',
'Non-unit', normin, n,
238 $ kd, ab, ldab, work, scaleu, rwork, info )
243 CALL
zlatbs(
'Lower',
'No transpose',
'Non-unit', normin, n,
244 $ kd, ab, ldab, work, scalel, rwork, info )
249 CALL
zlatbs(
'Lower',
'Conjugate transpose',
'Non-unit',
250 $ normin, n, kd, ab, ldab, work, scaleu, rwork,
256 scale = scalel*scaleu
257 IF( scale.NE.one )
THEN
259 IF( scale.LT.cabs1( work( ix ) )*smlnum .OR. scale.EQ.zero )
261 CALL
zdrscl( n, scale, work, 1 )
269 $ rcond = ( one / ainvnm ) / anorm
integer function izamax(N, ZX, INCX)
IZAMAX
subroutine zpbcon(UPLO, N, KD, AB, LDAB, ANORM, RCOND, WORK, RWORK, INFO)
ZPBCON
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlacn2(N, V, X, EST, KASE, ISAVE)
ZLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...
logical function lsame(CA, CB)
LSAME
subroutine zlatbs(UPLO, TRANS, DIAG, NORMIN, N, KD, AB, LDAB, X, SCALE, CNORM, INFO)
ZLATBS solves a triangular banded system of equations.
subroutine zdrscl(N, SA, SX, INCX)
ZDRSCL multiplies a vector by the reciprocal of a real scalar.
double precision function dlamch(CMACH)
DLAMCH