112 SUBROUTINE dtpt06( RCOND, RCONDC, UPLO, DIAG, N, AP, WORK, RAT )
122 DOUBLE PRECISION RAT, RCOND, RCONDC
125 DOUBLE PRECISION AP( * ), WORK( * )
131 DOUBLE PRECISION ZERO, ONE
132 parameter ( zero = 0.0d+0, one = 1.0d+0 )
135 DOUBLE PRECISION ANORM, BIGNUM, EPS, RMAX, RMIN, SMLNUM
138 DOUBLE PRECISION DLAMCH, DLANTP
139 EXTERNAL dlamch, dlantp
149 eps = dlamch(
'Epsilon' )
150 rmax = max( rcond, rcondc )
151 rmin = min( rcond, rcondc )
155 IF( rmin.LT.zero )
THEN
161 ELSE IF( rmin.GT.zero )
THEN
165 rat = rmax / rmin - one
167 ELSE IF( rmax.EQ.zero )
THEN
181 smlnum = dlamch(
'Safe minimum' )
182 bignum = one / smlnum
183 CALL dlabad( smlnum, bignum )
184 anorm = dlantp(
'M', uplo, diag, n, ap, work )
186 rat = rmax*( min( bignum / max( one, anorm ), one / eps ) )
subroutine dtpt06(RCOND, RCONDC, UPLO, DIAG, N, AP, WORK, RAT)
DTPT06
subroutine dlabad(SMALL, LARGE)
DLABAD