118 SUBROUTINE slatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
128 INTEGER IMAT, KL, KU, M, MODE, N
136 parameter( shrink = 0.25e0, tenth = 0.1e+0 )
138 parameter( one = 1.0e+0 )
140 parameter( two = 2.0e+0 )
146 REAL BADC1, BADC2, EPS, LARGE, SMALL
151 EXTERNAL lsamen, slamch
154 INTRINSIC abs, max, sqrt
157 SAVE eps, small, large, badc1, badc2, first
160 DATA first / .true. /
168 eps = slamch(
'Precision' )
170 badc1 = sqrt( badc2 )
171 small = slamch(
'Safe minimum' )
173 small = shrink*( small / eps )
184 IF( lsamen( 2, c2,
'QR' ) .OR. lsamen( 2, c2,
'LQ' ) .OR.
185 $ lsamen( 2, c2,
'QL' ) .OR. lsamen( 2, c2,
'RQ' ) )
THEN
199 ELSE IF( imat.EQ.2 )
THEN
202 ELSE IF( imat.EQ.3 )
THEN
214 ELSE IF( imat.EQ.6 )
THEN
222 ELSE IF( imat.EQ.8 )
THEN
228 ELSE IF( lsamen( 2, c2,
'QK' ) )
THEN
254 ELSE IF( imat.EQ.3 )
THEN
263 ELSE IF( imat.EQ.4 )
THEN
279 IF( imat.GE.5 .AND. imat.LE.14 )
THEN
287 ELSE IF( imat.EQ.15 )
THEN
295 ELSE IF( imat.EQ.16 )
THEN
303 ELSE IF( imat.EQ.17 )
THEN
312 ELSE IF( imat.EQ.18 )
THEN
320 ELSE IF( imat.EQ.19 )
THEN
332 ELSE IF( lsamen( 2, c2,
'GE' ) )
THEN
345 ELSE IF( imat.EQ.2 )
THEN
348 ELSE IF( imat.EQ.3 )
THEN
360 ELSE IF( imat.EQ.9 )
THEN
366 IF( imat.EQ.10 )
THEN
368 ELSE IF( imat.EQ.11 )
THEN
374 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN
386 ELSE IF( imat.EQ.6 )
THEN
394 ELSE IF( imat.EQ.8 )
THEN
400 ELSE IF( lsamen( 2, c2,
'GT' ) )
THEN
421 ELSE IF( imat.EQ.4 )
THEN
427 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
429 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
435 ELSE IF( lsamen( 2, c2,
'PO' ) .OR. lsamen( 2, c2,
'PP' ) )
THEN
457 ELSE IF( imat.EQ.7 )
THEN
465 ELSE IF( imat.EQ.9 )
THEN
472 ELSE IF( lsamen( 2, c2,
'SY' ) .OR. lsamen( 2, c2,
'SP' ) )
THEN
494 ELSE IF( imat.EQ.8 )
THEN
502 ELSE IF( imat.EQ.10 )
THEN
508 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
520 ELSE IF( imat.EQ.6 )
THEN
528 ELSE IF( imat.EQ.8 )
THEN
534 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN
551 ELSE IF( imat.EQ.4 )
THEN
557 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
559 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
565 ELSE IF( lsamen( 2, c2,
'TR' ) .OR. lsamen( 2, c2,
'TP' ) )
THEN
576 IF( mat.EQ.1 .OR. mat.EQ.7 )
THEN
579 ELSE IF( imat.LT.0 )
THEN
589 IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
591 ELSE IF( mat.EQ.4 )
THEN
593 ELSE IF( mat.EQ.10 )
THEN
601 ELSE IF( mat.EQ.6 )
THEN
607 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
618 IF( mat.EQ.2 .OR. mat.EQ.8 )
THEN
620 ELSE IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
628 ELSE IF( mat.EQ.5 )
THEN
subroutine slatb4(path, imat, m, n, type, kl, ku, anorm, mode, cndnum, dist)
SLATB4