120 SUBROUTINE zlatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
131 INTEGER imat, kl, ku, m, mode, n
132 DOUBLE PRECISION anorm, cndnum
138 DOUBLE PRECISION shrink, tenth
139 parameter( shrink = 0.25d0, tenth = 0.1d+0 )
141 parameter( one = 1.0d+0 )
143 parameter( two = 2.0d+0 )
149 DOUBLE PRECISION badc1, badc2, eps, large, small
157 INTRINSIC abs, max, sqrt
163 SAVE eps, small, large, badc1, badc2, first
166 DATA first / .true. /
174 eps =
dlamch(
'Precision' )
176 badc1 = sqrt( badc2 )
177 small =
dlamch(
'Safe minimum' )
183 CALL
dlabad( small, large )
184 small = shrink*( small / eps )
198 IF(
lsamen( 2, c2,
'QR' ) .OR.
lsamen( 2, c2,
'LQ' ) .OR.
199 $
lsamen( 2, c2,
'QL' ) .OR.
lsamen( 2, c2,
'RQ' ) )
THEN
210 ELSE IF( imat.EQ.2 )
THEN
213 ELSE IF( imat.EQ.3 )
THEN
225 ELSE IF( imat.EQ.6 )
THEN
233 ELSE IF( imat.EQ.8 )
THEN
239 ELSE IF(
lsamen( 2, c2,
'GE' ) )
THEN
252 ELSE IF( imat.EQ.2 )
THEN
255 ELSE IF( imat.EQ.3 )
THEN
267 ELSE IF( imat.EQ.9 )
THEN
273 IF( imat.EQ.10 )
THEN
275 ELSE IF( imat.EQ.11 )
THEN
281 ELSE IF(
lsamen( 2, c2,
'GB' ) )
THEN
293 ELSE IF( imat.EQ.6 )
THEN
301 ELSE IF( imat.EQ.8 )
THEN
307 ELSE IF(
lsamen( 2, c2,
'GT' ) )
THEN
328 ELSE IF( imat.EQ.4 )
THEN
334 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
336 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
342 ELSE IF(
lsamen( 2, c2,
'PO' ) .OR.
lsamen( 2, c2,
'PP' ) .OR.
344 $
lsamen( 2, c2,
'SY' ) .OR.
lsamen( 2, c2,
'SP' ) )
THEN
366 ELSE IF( imat.EQ.7 )
THEN
374 ELSE IF( imat.EQ.9 )
THEN
380 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
392 ELSE IF( imat.EQ.6 )
THEN
400 ELSE IF( imat.EQ.8 )
THEN
406 ELSE IF(
lsamen( 2, c2,
'PT' ) )
THEN
423 ELSE IF( imat.EQ.4 )
THEN
429 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
431 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
437 ELSE IF(
lsamen( 2, c2,
'TR' ) .OR.
lsamen( 2, c2,
'TP' ) )
THEN
448 IF( mat.EQ.1 .OR. mat.EQ.7 )
THEN
451 ELSE IF( imat.LT.0 )
THEN
461 IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
463 ELSE IF( mat.EQ.4 .OR. mat.EQ.10 )
THEN
471 ELSE IF( mat.EQ.6 )
THEN
477 ELSE IF(
lsamen( 2, c2,
'TB' ) )
THEN
487 IF( imat.EQ.2 .OR. imat.EQ.8 )
THEN
489 ELSE IF( imat.EQ.3 .OR. imat.EQ.9 )
THEN
497 ELSE IF( imat.EQ.5 )
THEN