1 SUBROUTINE dlatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
11 INTEGER imat, kl, ku, m, mode, n
12 DOUBLE PRECISION anorm, cndnum
67 DOUBLE PRECISION shrink, tenth
68 parameter( shrink = 0.25d0, tenth = 0.1d+0 )
70 parameter( one = 1.0d+0 )
72 parameter( two = 2.0d+0 )
78 DOUBLE PRECISION badc1, badc2, eps, large, small
82 DOUBLE PRECISION dlamch
86 INTRINSIC abs,
max, sqrt
92 SAVE eps, small, large, badc1, badc2, first
103 eps = dlamch(
'Precision' )
105 badc1 = sqrt( badc2 )
106 small = dlamch(
'Safe minimum' )
112 CALL
dlabad( small, large )
113 small = shrink*( small / eps )
124 IF(
lsamen( 2, c2,
'QR' ) .OR.
lsamen( 2, c2,
'LQ' ) .OR.
125 $
lsamen( 2, c2,
'QL' ) .OR.
lsamen( 2, c2,
'RQ' ) )
THEN
139 ELSE IF( imat.EQ.2 )
THEN
142 ELSE IF( imat.EQ.3 )
THEN
154 ELSE IF( imat.EQ.6 )
THEN
162 ELSE IF( imat.EQ.8 )
THEN
168 ELSE IF(
lsamen( 2, c2,
'GE' ) )
THEN
181 ELSE IF( imat.EQ.2 )
THEN
184 ELSE IF( imat.EQ.3 )
THEN
196 ELSE IF( imat.EQ.9 )
THEN
202 IF( imat.EQ.10 )
THEN
204 ELSE IF( imat.EQ.11 )
THEN
210 ELSE IF(
lsamen( 2, c2,
'GB' ) )
THEN
222 ELSE IF( imat.EQ.6 )
THEN
230 ELSE IF( imat.EQ.8 )
THEN
236 ELSE IF(
lsamen( 2, c2,
'GT' ) )
THEN
257 ELSE IF( imat.EQ.4 )
THEN
263 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
265 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
271 ELSE IF(
lsamen( 2, c2,
'PO' ) .OR.
lsamen( 2, c2,
'PP' ) .OR.
272 $
lsamen( 2, c2,
'SY' ) .OR.
lsamen( 2, c2,
'SP' ) )
THEN
294 ELSE IF( imat.EQ.7 )
THEN
302 ELSE IF( imat.EQ.9 )
THEN
308 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
320 ELSE IF( imat.EQ.6 )
THEN
328 ELSE IF( imat.EQ.8 )
THEN
334 ELSE IF(
lsamen( 2, c2,
'PT' ) )
THEN
351 ELSE IF( imat.EQ.4 )
THEN
357 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
359 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
365 ELSE IF(
lsamen( 2, c2,
'TR' ) .OR.
lsamen( 2, c2,
'TP' ) )
THEN
376 IF( mat.EQ.1 .OR. mat.EQ.7 )
THEN
379 ELSE IF( imat.LT.0 )
THEN
389 IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
391 ELSE IF( mat.EQ.4 )
THEN
393 ELSE IF( mat.EQ.10 )
THEN
401 ELSE IF( mat.EQ.6 )
THEN
407 ELSE IF(
lsamen( 2, c2,
'TB' ) )
THEN
417 IF( imat.EQ.2 .OR. imat.EQ.8 )
THEN
419 ELSE IF( imat.EQ.3 .OR. imat.EQ.9 )
THEN
427 ELSE IF( imat.EQ.5 )
THEN