120 SUBROUTINE dlatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
131 INTEGER IMAT, KL, KU, M, MODE, N
132 DOUBLE PRECISION ANORM, CNDNUM
138 DOUBLE PRECISION SHRINK, TENTH
139 parameter ( shrink = 0.25d0, tenth = 0.1d+0 )
141 parameter ( one = 1.0d+0 )
143 parameter ( two = 2.0d+0 )
149 DOUBLE PRECISION BADC1, BADC2, EPS, LARGE, SMALL
153 DOUBLE PRECISION DLAMCH
154 EXTERNAL lsamen, dlamch
157 INTRINSIC abs, max, sqrt
163 SAVE eps, small, large, badc1, badc2, first
166 DATA first / .true. /
174 eps = dlamch(
'Precision' )
176 badc1 = sqrt( badc2 )
177 small = dlamch(
'Safe minimum' )
183 CALL dlabad( small, large )
184 small = shrink*( small / eps )
195 IF( lsamen( 2, c2,
'QR' ) .OR. lsamen( 2, c2,
'LQ' ) .OR.
196 $ lsamen( 2, c2,
'QL' ) .OR. lsamen( 2, c2,
'RQ' ) )
THEN
210 ELSE IF( imat.EQ.2 )
THEN
213 ELSE IF( imat.EQ.3 )
THEN
225 ELSE IF( imat.EQ.6 )
THEN
233 ELSE IF( imat.EQ.8 )
THEN
239 ELSE IF( lsamen( 2, c2,
'GE' ) )
THEN
252 ELSE IF( imat.EQ.2 )
THEN
255 ELSE IF( imat.EQ.3 )
THEN
267 ELSE IF( imat.EQ.9 )
THEN
273 IF( imat.EQ.10 )
THEN
275 ELSE IF( imat.EQ.11 )
THEN
281 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN
293 ELSE IF( imat.EQ.6 )
THEN
301 ELSE IF( imat.EQ.8 )
THEN
307 ELSE IF( lsamen( 2, c2,
'GT' ) )
THEN
328 ELSE IF( imat.EQ.4 )
THEN
334 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
336 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
342 ELSE IF( lsamen( 2, c2,
'PO' ) .OR. lsamen( 2, c2,
'PP' ) .OR.
343 $ lsamen( 2, c2,
'SY' ) .OR. lsamen( 2, c2,
'SP' ) )
THEN
365 ELSE IF( imat.EQ.7 )
THEN
373 ELSE IF( imat.EQ.9 )
THEN
379 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
391 ELSE IF( imat.EQ.6 )
THEN
399 ELSE IF( imat.EQ.8 )
THEN
405 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN
422 ELSE IF( imat.EQ.4 )
THEN
428 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
430 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
436 ELSE IF( lsamen( 2, c2,
'TR' ) .OR. lsamen( 2, c2,
'TP' ) )
THEN
447 IF( mat.EQ.1 .OR. mat.EQ.7 )
THEN
450 ELSE IF( imat.LT.0 )
THEN
460 IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
462 ELSE IF( mat.EQ.4 )
THEN
464 ELSE IF( mat.EQ.10 )
THEN
472 ELSE IF( mat.EQ.6 )
THEN
478 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
488 IF( imat.EQ.2 .OR. imat.EQ.8 )
THEN
490 ELSE IF( imat.EQ.3 .OR. imat.EQ.9 )
THEN
498 ELSE IF( imat.EQ.5 )
THEN
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine dlatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
DLATB4