169 SUBROUTINE slatb9( PATH, IMAT, M, P, N, TYPE, KLA, KUA,
170 $ klb, kub, anorm, bnorm, modea, modeb,
171 $ cndnma, cndnmb, dista, distb )
179 CHARACTER DISTA, DISTB, TYPE
181 INTEGER IMAT, KLA, KUA, KLB, KUB, M, P, MODEA, MODEB, N
182 REAL ANORM, BNORM, CNDNMA, CNDNMB
189 parameter ( shrink = 0.25e0, tenth = 0.1e+0 )
191 parameter ( one = 1.0e+0, ten = 1.0e+1 )
195 REAL BADC1, BADC2, EPS, LARGE, SMALL
200 EXTERNAL lsamen, slamch
209 SAVE eps, small, large, badc1, badc2, first
212 DATA first / .true. /
220 eps = slamch(
'Precision' )
222 badc1 = sqrt( badc2 )
223 small = slamch(
'Safe minimum' )
229 CALL slabad( small, large )
230 small = shrink*( small / eps )
244 IF( lsamen( 3, path,
'GRQ') .OR. lsamen( 3, path,
'LSE') .OR.
245 $ lsamen( 3, path,
'GSV') )
THEN
258 ELSE IF( imat.EQ.2 )
THEN
267 ELSE IF( imat.EQ.3 )
THEN
287 ELSE IF( lsamen( 3, path,
'GQR' ) .OR.
288 $ lsamen( 3, path,
'GLM') )
THEN
300 ELSE IF( imat.EQ.2 )
THEN
309 ELSE IF( imat.EQ.3 )
THEN
334 IF( lsamen( 3, path,
'GQR') .OR. lsamen( 3, path,
'GRQ') .OR.
335 $ lsamen( 3, path,
'GSV') )
THEN
339 ELSE IF( imat.EQ.6 )
THEN
342 ELSE IF( imat.EQ.7 )
THEN
345 ELSE IF( imat.EQ.8 )
THEN
353 IF( lsamen( 3, path,
'GQR') .OR. lsamen( 3, path,
'GRQ') )
THEN
357 ELSE IF( imat.EQ.8 )
THEN
subroutine slabad(SMALL, LARGE)
SLABAD
subroutine slatb9(PATH, IMAT, M, P, N, TYPE, KLA, KUA, KLB, KUB, ANORM, BNORM, MODEA, MODEB, CNDNMA, CNDNMB, DISTA, DISTB)
SLATB9