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' ) )
THEN 364 ELSE IF( imat.EQ.7 )
THEN 372 ELSE IF( imat.EQ.9 )
THEN 379 ELSE IF( lsamen( 2, c2,
'SY' ) .OR. lsamen( 2, c2,
'SP' ) )
THEN 401 ELSE IF( imat.EQ.8 )
THEN 409 ELSE IF( imat.EQ.10 )
THEN 415 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN 427 ELSE IF( imat.EQ.6 )
THEN 435 ELSE IF( imat.EQ.8 )
THEN 441 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN 458 ELSE IF( imat.EQ.4 )
THEN 464 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN 466 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN 472 ELSE IF( lsamen( 2, c2,
'TR' ) .OR. lsamen( 2, c2,
'TP' ) )
THEN 483 IF( mat.EQ.1 .OR. mat.EQ.7 )
THEN 486 ELSE IF( imat.LT.0 )
THEN 496 IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN 498 ELSE IF( mat.EQ.4 )
THEN 500 ELSE IF( mat.EQ.10 )
THEN 508 ELSE IF( mat.EQ.6 )
THEN 514 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN 524 IF( imat.EQ.2 .OR. imat.EQ.8 )
THEN 526 ELSE IF( imat.EQ.3 .OR. imat.EQ.9 )
THEN 534 ELSE IF( imat.EQ.5 )
THEN subroutine dlatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
DLATB4
subroutine dlabad(SMALL, LARGE)
DLABAD