121 SUBROUTINE clatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
132 INTEGER IMAT, KL, KU, M, MODE, N
140 parameter( shrink = 0.25e0, tenth = 0.1e+0 )
142 parameter( one = 1.0e+0 )
144 parameter( two = 2.0e+0 )
150 REAL BADC1, BADC2, EPS, LARGE, SMALL
155 EXTERNAL lsamen, slamch
158 INTRINSIC abs, max, sqrt
164 SAVE eps, small, large, badc1, badc2, first
167 DATA first / .true. /
175 eps = slamch(
'Precision' )
177 badc1 = sqrt( badc2 )
178 small = slamch(
'Safe minimum' )
184 CALL slabad( 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 slabad(SMALL, LARGE)
SLABAD
subroutine clatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
CLATB4