119 SUBROUTINE clatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
129 INTEGER IMAT, KL, KU, M, MODE, N
137 parameter( shrink = 0.25e0, tenth = 0.1e+0 )
139 parameter( one = 1.0e+0 )
141 parameter( two = 2.0e+0 )
147 REAL BADC1, BADC2, EPS, LARGE, SMALL
152 EXTERNAL lsamen, slamch
155 INTRINSIC abs, max, sqrt
161 SAVE eps, small, large, badc1, badc2, first
164 DATA first / .true. /
172 eps = slamch(
'Precision' )
174 badc1 = sqrt( badc2 )
175 small = slamch(
'Safe minimum' )
181 CALL slabad( small, large )
182 small = shrink*( small / eps )
196 IF( lsamen( 2, c2,
'QR' ) .OR. lsamen( 2, c2,
'LQ' ) .OR.
197 $ lsamen( 2, c2,
'QL' ) .OR. lsamen( 2, c2,
'RQ' ) )
THEN
208 ELSE IF( imat.EQ.2 )
THEN
211 ELSE IF( imat.EQ.3 )
THEN
223 ELSE IF( imat.EQ.6 )
THEN
231 ELSE IF( imat.EQ.8 )
THEN
237 ELSE IF( lsamen( 2, c2,
'GE' ) )
THEN
250 ELSE IF( imat.EQ.2 )
THEN
253 ELSE IF( imat.EQ.3 )
THEN
265 ELSE IF( imat.EQ.9 )
THEN
271 IF( imat.EQ.10 )
THEN
273 ELSE IF( imat.EQ.11 )
THEN
279 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN
291 ELSE IF( imat.EQ.6 )
THEN
299 ELSE IF( imat.EQ.8 )
THEN
305 ELSE IF( lsamen( 2, c2,
'GT' ) )
THEN
326 ELSE IF( imat.EQ.4 )
THEN
332 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
334 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
340 ELSE IF( lsamen( 2, c2,
'PO' ) .OR. lsamen( 2, c2,
'PP' ) )
THEN
362 ELSE IF( imat.EQ.7 )
THEN
370 ELSE IF( imat.EQ.9 )
THEN
376 ELSE IF( lsamen( 2, c2,
'HE' ) .OR. lsamen( 2, c2,
'HP' ) .OR.
377 $ lsamen( 2, c2,
'SY' ) .OR. lsamen( 2, c2,
'SP' ) )
THEN
399 ELSE IF( imat.EQ.8 )
THEN
407 ELSE IF( imat.EQ.10 )
THEN
413 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
425 ELSE IF( imat.EQ.6 )
THEN
433 ELSE IF( imat.EQ.8 )
THEN
439 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN
456 ELSE IF( imat.EQ.4 )
THEN
462 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
464 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
470 ELSE IF( lsamen( 2, c2,
'TR' ) .OR. lsamen( 2, c2,
'TP' ) )
THEN
481 IF( mat.EQ.1 .OR. mat.EQ.7 )
THEN
484 ELSE IF( imat.LT.0 )
THEN
494 IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
496 ELSE IF( mat.EQ.4 .OR. mat.EQ.10 )
THEN
504 ELSE IF( mat.EQ.6 )
THEN
510 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
521 IF( mat.EQ.2 .OR. mat.EQ.8 )
THEN
523 ELSE IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
531 ELSE IF( mat.EQ.5 )
THEN
subroutine slabad(SMALL, LARGE)
SLABAD
subroutine clatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
CLATB4