121 SUBROUTINE dtrt06( RCOND, RCONDC, UPLO, DIAG, N, A, LDA, WORK,
132 DOUBLE PRECISION RAT, RCOND, RCONDC
135 DOUBLE PRECISION A( lda, * ), WORK( * )
141 DOUBLE PRECISION ZERO, ONE
142 parameter ( zero = 0.0d+0, one = 1.0d+0 )
145 DOUBLE PRECISION ANORM, BIGNUM, EPS, RMAX, RMIN, SMLNUM
148 DOUBLE PRECISION DLAMCH, DLANTR
149 EXTERNAL dlamch, dlantr
159 eps = dlamch(
'Epsilon' )
160 rmax = max( rcond, rcondc )
161 rmin = min( rcond, rcondc )
165 IF( rmin.LT.zero )
THEN
171 ELSE IF( rmin.GT.zero )
THEN
175 rat = rmax / rmin - one
177 ELSE IF( rmax.EQ.zero )
THEN
191 smlnum = dlamch(
'Safe minimum' )
192 bignum = one / smlnum
193 CALL dlabad( smlnum, bignum )
194 anorm = dlantr(
'M', uplo, diag, n, n, a, lda, work )
196 rat = rmax*( min( bignum / max( one, anorm ), one / eps ) )
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine dtrt06(RCOND, RCONDC, UPLO, DIAG, N, A, LDA, WORK, RAT)
DTRT06