118 SUBROUTINE dlatb4( PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE,
128 INTEGER IMAT, KL, KU, M, MODE, N
129 DOUBLE PRECISION ANORM, CNDNUM
135 DOUBLE PRECISION SHRINK, TENTH
136 parameter( shrink = 0.25d0, tenth = 0.1d+0 )
138 parameter( one = 1.0d+0 )
140 parameter( two = 2.0d+0 )
146 DOUBLE PRECISION BADC1, BADC2, EPS, LARGE, SMALL
150 DOUBLE PRECISION DLAMCH
151 EXTERNAL lsamen, dlamch
154 INTRINSIC abs, max, sqrt
160 SAVE eps, small, large, badc1, badc2, first
163 DATA first / .true. /
171 eps = dlamch(
'Precision' )
173 badc1 = sqrt( badc2 )
174 small = dlamch(
'Safe minimum' )
180 CALL dlabad( small, large )
181 small = shrink*( small / eps )
192 IF( lsamen( 2, c2,
'QR' ) .OR. lsamen( 2, c2,
'LQ' ) .OR.
193 $ lsamen( 2, c2,
'QL' ) .OR. lsamen( 2, c2,
'RQ' ) )
THEN
207 ELSE IF( imat.EQ.2 )
THEN
210 ELSE IF( imat.EQ.3 )
THEN
222 ELSE IF( imat.EQ.6 )
THEN
230 ELSE IF( imat.EQ.8 )
THEN
236 ELSE IF( lsamen( 2, c2,
'GE' ) )
THEN
249 ELSE IF( imat.EQ.2 )
THEN
252 ELSE IF( imat.EQ.3 )
THEN
264 ELSE IF( imat.EQ.9 )
THEN
270 IF( imat.EQ.10 )
THEN
272 ELSE IF( imat.EQ.11 )
THEN
278 ELSE IF( lsamen( 2, c2,
'GB' ) )
THEN
290 ELSE IF( imat.EQ.6 )
THEN
298 ELSE IF( imat.EQ.8 )
THEN
304 ELSE IF( lsamen( 2, c2,
'GT' ) )
THEN
325 ELSE IF( imat.EQ.4 )
THEN
331 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
333 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
339 ELSE IF( lsamen( 2, c2,
'PO' ) .OR. lsamen( 2, c2,
'PP' ) )
THEN
361 ELSE IF( imat.EQ.7 )
THEN
369 ELSE IF( imat.EQ.9 )
THEN
376 ELSE IF( lsamen( 2, c2,
'SY' ) .OR. lsamen( 2, c2,
'SP' ) )
THEN
398 ELSE IF( imat.EQ.8 )
THEN
406 ELSE IF( imat.EQ.10 )
THEN
412 ELSE IF( lsamen( 2, c2,
'PB' ) )
THEN
424 ELSE IF( imat.EQ.6 )
THEN
432 ELSE IF( imat.EQ.8 )
THEN
438 ELSE IF( lsamen( 2, c2,
'PT' ) )
THEN
455 ELSE IF( imat.EQ.4 )
THEN
461 IF( imat.EQ.5 .OR. imat.EQ.11 )
THEN
463 ELSE IF( imat.EQ.6 .OR. imat.EQ.12 )
THEN
469 ELSE IF( lsamen( 2, c2,
'TR' ) .OR. lsamen( 2, c2,
'TP' ) )
THEN
480 IF( mat.EQ.1 .OR. mat.EQ.7 )
THEN
483 ELSE IF( imat.LT.0 )
THEN
493 IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
495 ELSE IF( mat.EQ.4 )
THEN
497 ELSE IF( mat.EQ.10 )
THEN
505 ELSE IF( mat.EQ.6 )
THEN
511 ELSE IF( lsamen( 2, c2,
'TB' ) )
THEN
522 IF( mat.EQ.2 .OR. mat.EQ.8 )
THEN
524 ELSE IF( mat.EQ.3 .OR. mat.EQ.9 )
THEN
532 ELSE IF( mat.EQ.5 )
THEN
subroutine dlabad(SMALL, LARGE)
DLABAD
subroutine dlatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
DLATB4