169 SUBROUTINE dlatb9( PATH, IMAT, M, P, N, TYPE, KLA, KUA, KLB, KUB,
170 $ anorm, bnorm, modea, modeb, cndnma, cndnmb,
179 CHARACTER dista, distb, type
181 INTEGER imat, kla, klb, kua, kub, m, modea, modeb, n, p
182 DOUBLE PRECISION anorm, bnorm, cndnma, cndnmb
188 DOUBLE PRECISION shrink, tenth
189 parameter( shrink = 0.25d0, tenth = 0.1d+0 )
190 DOUBLE PRECISION one, ten
191 parameter( one = 1.0d+0, ten = 1.0d+1 )
195 DOUBLE PRECISION badc1, badc2, eps, large, small
209 SAVE eps, small, large, badc1, badc2, first
212 DATA first / .true. /
220 eps =
dlamch(
'Precision' )
222 badc1 = sqrt( badc2 )
223 small =
dlamch(
'Safe minimum' )
229 CALL
dlabad( 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.
lsamen( 3, path,
'GLM' ) )
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 dlabad(SMALL, LARGE)
DLABAD
subroutine dlatb9(PATH, IMAT, M, P, N, TYPE, KLA, KUA, KLB, KUB, ANORM, BNORM, MODEA, MODEB, CNDNMA, CNDNMB, DISTA, DISTB)
DLATB9
DOUBLE PRECISION function dlamch(CMACH)
DLAMCH
LOGICAL function lsamen(N, CA, CB)
LSAMEN