119 SUBROUTINE dtrt06( RCOND, RCONDC, UPLO, DIAG, N, A, LDA, WORK,
129DOUBLE PRECISION RAT, RCOND, RCONDC
132 DOUBLE PRECISION ( LDA, * ), WORK( * )
138 DOUBLE PRECISION ZERO, ONE
139 parameter( zero = 0.0d+0, one = 1.0d+0 )
142 DOUBLE PRECISION ANORM, BIGNUM, EPS, RMAX
145 DOUBLE PRECISION DLAMCH, DLANTR
146 EXTERNAL dlamch, dlantr
156 eps = dlamch(
'Epsilon' )
157 rmax =
max( rcond, rcondc )
158 rmin =
min( rcond, rcondc )
162 IF( rmin.LT.zero )
THEN
168 ELSE IF( rmin.GT.zero )
THEN
172 rat = rmax / rmin - one
174 ELSE IF( rmax.EQ.zero )
THEN
188 smlnum = dlamch(
'Safe minimum' )
189 bignum = one / smlnum
190 CALL dlabad( smlnum, bignum )
191 anorm = dlantr(
'M', uplo, diag, n, n, a, lda, work )
193 rat = rmax*(
min( bignum /
max( one, anorm ), one / eps ) )
subroutine dtrt06(rcond, rcondc, uplo, diag, n, a, lda, work, rat)
DTRT06