110 SUBROUTINE dtpt06( RCOND, RCONDC, UPLO, DIAG, N, AP, WORK, RAT )
119 DOUBLE PRECISION RAT, RCOND, RCONDC
122 DOUBLE PRECISION AP( * ), WORK( * )
128 DOUBLE PRECISION ZERO, ONE
129 parameter( zero = 0.0d+0, one = 1.0d+0 )
132 DOUBLE PRECISION ANORM, BIGNUM, EPS, RMAX, RMIN, SMLNUM
135 DOUBLE PRECISION DLAMCH, DLANTP
136 EXTERNAL dlamch, dlantp
143 eps = dlamch(
'Epsilon' )
144 rmax = max( rcond, rcondc )
145 rmin = min( rcond, rcondc )
149 IF( rmin.LT.zero )
THEN
155 ELSE IF( rmin.GT.zero )
THEN
159 rat = rmax / rmin - one
161 ELSE IF( rmax.EQ.zero )
THEN
175 smlnum = dlamch(
'Safe minimum' )
176 bignum = one / smlnum
177 anorm = dlantp(
'M', uplo, diag, n, ap, work )
179 rat = rmax*( min( bignum / max( one, anorm ), one / eps ) )
subroutine dtpt06(rcond, rcondc, uplo, diag, n, ap, work, rat)
DTPT06