121 SUBROUTINE zlatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
132 INTEGER IMAT, KL, KU, M, MODE, N
133 DOUBLE PRECISION ANORM, CNDNUM
139 DOUBLE PRECISION SHRINK, TENTH
140 parameter ( shrink = 0.25d0, tenth = 0.1d+0 )
142 parameter ( one = 1.0d+0 )
144 parameter ( two = 2.0d+0 )
150 DOUBLE PRECISION BADC1, BADC2, EPS, LARGE, SMALL
154 DOUBLE PRECISION DLAMCH
155 EXTERNAL lsamen, dlamch
158 INTRINSIC abs, max, sqrt
164 SAVE eps, small, large, badc1, badc2, first
167 DATA first / .true. /
175 eps = dlamch(
'Precision' )
177 badc1 = sqrt( badc2 )
178 small = dlamch(
'Safe minimum' )
184 CALL dlabad( 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' ) .OR.
344 $ lsamen( 2, c2,
'HE' ) .OR. lsamen( 2, c2,
'HP' ) .OR.
345 $ lsamen( 2, c2,
'SY' ) .OR. lsamen( 2, c2,
'SP' ) )
THEN
367 ELSE IF( imat.EQ.7 )
THEN
375 ELSE IF( imat.EQ.9 )
THEN
381 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
393 ELSE IF( imat.EQ.6 )
THEN
401 ELSE IF( imat.EQ.8 )
THEN
407 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN
424 ELSE IF( imat.EQ.4 )
THEN
430 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
432 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
438 ELSE IF( lsamen( 2, c2,
'TR' ) .OR. lsamen( 2, c2,
'TP' ) )
THEN
449 IF( mat.EQ.1 .OR. mat.EQ.7 )
THEN
452 ELSE IF( imat.LT.0 )
THEN
462 IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
464 ELSE IF( mat.EQ.4 .OR. mat.EQ.10 )
THEN
472 ELSE IF( mat.EQ.6 )
THEN
478 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
488 IF( imat.EQ.2 .OR. imat.EQ.8 )
THEN
490 ELSE IF( imat.EQ.3 .OR. imat.EQ.9 )
THEN
498 ELSE IF( imat.EQ.5 )
THEN
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine zlatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
ZLATB4