167 SUBROUTINE dlatb9( PATH, IMAT, M, P, N, TYPE, KLA, KUA, KLB, KUB,
168 $ ANORM, BNORM, MODEA, MODEB, CNDNMA, CNDNMB,
176 CHARACTER DISTA, DISTB, TYPE
178 INTEGER IMAT, KLA, KLB, KUA, KUB, M, MODEA, MODEB, N, P
179 DOUBLE PRECISION ANORM, BNORM, CNDNMA, CNDNMB
185 DOUBLE PRECISION SHRINK, TENTH
186 PARAMETER ( SHRINK = 0.25d0, tenth = 0.1d+0 )
187 DOUBLE PRECISION ONE, TEN
188 parameter( one = 1.0d+0, ten = 1.0d+1 )
192 DOUBLE PRECISION BADC1, BADC2, EPS, LARGE, SMALL
196 DOUBLE PRECISION DLAMCH
197 EXTERNAL lsamen, dlamch
206 SAVE eps, small, large, badc1, badc2, first
209 DATA first / .true. /
217 eps = dlamch(
'Precision' )
219 badc1 = sqrt( badc2 )
220 small = dlamch(
'Safe minimum' )
226 CALL dlabad( small, large )
227 small = shrink*( small / eps )
241 IF( lsamen( 3, path,
'GRQ' ) .OR. lsamen( 3, path,
'LSE' ) .OR.
242 $ lsamen( 3, path,
'GSV' ) )
THEN
255 ELSE IF( imat.EQ.2 )
THEN
264 ELSE IF( imat.EQ.3 )
THEN
284 ELSE IF( lsamen( 3, path,
'GQR' ) .OR. lsamen( 3, path,
'GLM' ) )
297 ELSE IF( imat.EQ.2 )
THEN
306 ELSE IF( imat.EQ.3 )
THEN
331 IF( lsamen( 3, path,
'GQR' ) .OR. lsamen( 3, path,
'GRQ' ) .OR.
332 $ lsamen( 3, path,
'GSV' ) )
THEN
336 ELSE IF( imat.EQ.6 )
THEN
339 ELSE IF( imat.EQ.7 )
THEN
342 ELSE IF( imat.EQ.8 )
THEN
350 IF( lsamen( 3, path,
'GQR' ) .OR. lsamen( 3, path,
'GRQ' ) )
THEN
354 ELSE IF( imat.EQ.8 )
THEN
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine dlatb9(PATH, IMAT, M, P, N, TYPE, KLA, KUA, KLB, KUB, ANORM, BNORM, MODEA, MODEB, CNDNMA, CNDNMB, DISTA, DISTB)
DLATB9