123 SUBROUTINE dtbt06( RCOND, RCONDC, UPLO, DIAG, N, KD, AB, LDAB,
133 DOUBLE PRECISION RAT, RCOND, RCONDC
136 DOUBLE PRECISION AB( LDAB, * ), WORK( * )
142 DOUBLE PRECISION ZERO, ONE
143 parameter( zero = 0.0d+0, one = 1.0d+0 )
146 DOUBLE PRECISION ANORM, BIGNUM, EPS, RMAX, RMIN, SMLNUM
149 DOUBLE PRECISION DLAMCH, DLANTB
150 EXTERNAL dlamch, dlantb
160 eps = dlamch(
'Epsilon' )
161 rmax = max( rcond, rcondc )
162 rmin = min( rcond, rcondc )
166 IF( rmin.LT.zero )
THEN
172 ELSE IF( rmin.GT.zero )
THEN
176 rat = rmax / rmin - one
178 ELSE IF( rmax.EQ.zero )
THEN
192 smlnum = dlamch(
'Safe minimum' )
193 bignum = one / smlnum
194 CALL dlabad( smlnum, bignum )
195 anorm = dlantb(
'M', uplo, diag, n, kd, ab, ldab, work )
197 rat = rmax*( min( bignum / max( one, anorm ), one / eps ) )
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine dtbt06(RCOND, RCONDC, UPLO, DIAG, N, KD, AB, LDAB, WORK, RAT)
DTBT06