121 SUBROUTINE zlatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
132 INTEGER IMAT, KL, KU, M, MODE, N
133 DOUBLE PRECISION ANORM, CNDNUM
139 DOUBLE PRECISION SHRINK, TENTH
140 parameter( shrink = 0.25d0, tenth = 0.1d+0 )
142 parameter( one = 1.0d+0 )
144 parameter( two = 2.0d+0 )
150 DOUBLE PRECISION BADC1, BADC2, EPS, LARGE, SMALL
154 DOUBLE PRECISION DLAMCH
155 EXTERNAL lsamen, dlamch
158 INTRINSIC abs, max, sqrt
164 SAVE eps, small, large, badc1, badc2, first
167 DATA first / .true. /
175 eps = dlamch(
'Precision' )
177 badc1 = sqrt( badc2 )
178 small = dlamch(
'Safe minimum' )
184 CALL dlabad( small, large )
185 small = shrink*( small / eps )
199 IF( lsamen( 2, c2,
'QR' ) .OR. lsamen( 2, c2,
'LQ' ) .OR.
200 $ lsamen( 2, c2,
'QL' ) .OR. lsamen( 2, c2,
'RQ' ) )
THEN 211 ELSE IF( imat.EQ.2 )
THEN 214 ELSE IF( imat.EQ.3 )
THEN 226 ELSE IF( imat.EQ.6 )
THEN 234 ELSE IF( imat.EQ.8 )
THEN 240 ELSE IF( lsamen( 2, c2,
'GE' ) )
THEN 253 ELSE IF( imat.EQ.2 )
THEN 256 ELSE IF( imat.EQ.3 )
THEN 268 ELSE IF( imat.EQ.9 )
THEN 274 IF( imat.EQ.10 )
THEN 276 ELSE IF( imat.EQ.11 )
THEN 282 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN 294 ELSE IF( imat.EQ.6 )
THEN 302 ELSE IF( imat.EQ.8 )
THEN 308 ELSE IF( lsamen( 2, c2,
'GT' ) )
THEN 329 ELSE IF( imat.EQ.4 )
THEN 335 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN 337 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN 343 ELSE IF( lsamen( 2, c2,
'PO' ) .OR. lsamen( 2, c2,
'PP' ) )
THEN 365 ELSE IF( imat.EQ.7 )
THEN 373 ELSE IF( imat.EQ.9 )
THEN 379 ELSE IF( lsamen( 2, c2,
'HE' ) .OR. lsamen( 2, c2,
'HP' ) .OR.
380 $ lsamen( 2, c2,
'SY' ) .OR. lsamen( 2, c2,
'SP' ) )
THEN 402 ELSE IF( imat.EQ.8 )
THEN 410 ELSE IF( imat.EQ.10 )
THEN 416 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN 428 ELSE IF( imat.EQ.6 )
THEN 436 ELSE IF( imat.EQ.8 )
THEN 442 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN 459 ELSE IF( imat.EQ.4 )
THEN 465 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN 467 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN 473 ELSE IF( lsamen( 2, c2,
'TR' ) .OR. lsamen( 2, c2,
'TP' ) )
THEN 484 IF( mat.EQ.1 .OR. mat.EQ.7 )
THEN 487 ELSE IF( imat.LT.0 )
THEN 497 IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN 499 ELSE IF( mat.EQ.4 .OR. mat.EQ.10 )
THEN 507 ELSE IF( mat.EQ.6 )
THEN 513 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN 523 IF( imat.EQ.2 .OR. imat.EQ.8 )
THEN 525 ELSE IF( imat.EQ.3 .OR. imat.EQ.9 )
THEN 533 ELSE IF( imat.EQ.5 )
THEN subroutine zlatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
ZLATB4
subroutine dlabad(SMALL, LARGE)
DLABAD