125 SUBROUTINE dtbt06( RCOND, RCONDC, UPLO, DIAG, N, KD, AB, LDAB,
136 DOUBLE PRECISION RAT, RCOND, RCONDC
139 DOUBLE PRECISION AB( ldab, * ), WORK( * )
145 DOUBLE PRECISION ZERO, ONE
146 parameter ( zero = 0.0d+0, one = 1.0d+0 )
149 DOUBLE PRECISION ANORM, BIGNUM, EPS, RMAX, RMIN, SMLNUM
152 DOUBLE PRECISION DLAMCH, DLANTB
153 EXTERNAL dlamch, dlantb
163 eps = dlamch(
'Epsilon' )
164 rmax = max( rcond, rcondc )
165 rmin = min( rcond, rcondc )
169 IF( rmin.LT.zero )
THEN
175 ELSE IF( rmin.GT.zero )
THEN
179 rat = rmax / rmin - one
181 ELSE IF( rmax.EQ.zero )
THEN
195 smlnum = dlamch(
'Safe minimum' )
196 bignum = one / smlnum
197 CALL dlabad( smlnum, bignum )
198 anorm = dlantb(
'M', uplo, diag, n, kd, ab, ldab, work )
200 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