84 DOUBLE PRECISION THRESH
92 INTEGER KLAEXC, KLALN2, KLANV2, KLAQTR, KLASY2, KTREXC,
93 $ KTRSEN, KTRSNA, KTRSYL, LLAEXC, LLALN2, LLANV2,
94 $ LLAQTR, LLASY2, LTREXC, LTRSYL, NLANV2, NLAQTR,
95 $ NLASY2, NTESTS, NTRSYL, KTGEXC, NTGEXC, LTGEXC
96 DOUBLE PRECISION EPS, RLAEXC, RLALN2, RLANV2, RLAQTR, RLASY2,
97 $ RTREXC, RTRSYL, SFMIN, RTGEXC
100 INTEGER LTRSEN( 3 ), LTRSNA( 3 ), NLAEXC( 2 ),
101 $ NLALN2( 2 ), NTREXC( 3 ), NTRSEN( 3 ),
103 DOUBLE PRECISION RTRSEN( 3 ), RTRSNA( 3 )
110 DOUBLE PRECISION DLAMCH
115 path( 1: 1 ) =
'Double precision'
122 WRITE( nout, fmt = 9989 )
123 WRITE( nout, fmt = 9988 )eps, sfmin
124 WRITE( nout, fmt = 9987 )thresh
129 $
CALL derrec( path, nout )
132 CALL dget31( rlaln2, llaln2, nlaln2, klaln2 )
133 IF( rlaln2.GT.thresh .OR. nlaln2( 1 ).NE.0 )
THEN
135 WRITE( nout, fmt = 9999 )rlaln2, llaln2, nlaln2, klaln2
138 CALL dget32( rlasy2, llasy2, nlasy2, klasy2 )
139 IF( rlasy2.GT.thresh )
THEN
141 WRITE( nout, fmt = 9998 )rlasy2, llasy2, nlasy2, klasy2
144 CALL dget33( rlanv2, llanv2, nlanv2, klanv2 )
145 IF( rlanv2.GT.thresh .OR. nlanv2.NE.0 )
THEN
147 WRITE( nout, fmt = 9997 )rlanv2, llanv2, nlanv2, klanv2
150 CALL dget34( rlaexc, llaexc, nlaexc, klaexc )
151 IF( rlaexc.GT.thresh .OR. nlaexc( 2 ).NE.0 )
THEN
153 WRITE( nout, fmt = 9996 )rlaexc, llaexc, nlaexc, klaexc
156 CALL dget35( rtrsyl, ltrsyl, ntrsyl, ktrsyl )
157 IF( rtrsyl.GT.thresh )
THEN
159 WRITE( nout, fmt = 9995 )rtrsyl, ltrsyl, ntrsyl, ktrsyl
162 CALL dget36( rtrexc, ltrexc, ntrexc, ktrexc, nin )
163 IF( rtrexc.GT.thresh .OR. ntrexc( 3 ).GT.0 )
THEN
165 WRITE( nout, fmt = 9994 )rtrexc, ltrexc, ntrexc, ktrexc
168 CALL dget37( rtrsna, ltrsna, ntrsna, ktrsna, nin )
169 IF( rtrsna( 1 ).GT.thresh .OR. rtrsna( 2 ).GT.thresh .OR.
170 $ ntrsna( 1 ).NE.0 .OR. ntrsna( 2 ).NE.0 .OR. ntrsna( 3 ).NE.0 )
173 WRITE( nout, fmt = 9993 )rtrsna, ltrsna, ntrsna, ktrsna
176 CALL dget38( rtrsen, ltrsen, ntrsen, ktrsen, nin )
177 IF( rtrsen( 1 ).GT.thresh .OR. rtrsen( 2 ).GT.thresh .OR.
178 $ ntrsen( 1 ).NE.0 .OR. ntrsen( 2 ).NE.0 .OR. ntrsen( 3 ).NE.0 )
181 WRITE( nout, fmt = 9992 )rtrsen, ltrsen, ntrsen, ktrsen
184 CALL dget39( rlaqtr, llaqtr, nlaqtr, klaqtr )
185 IF( rlaqtr.GT.thresh )
THEN
187 WRITE( nout, fmt = 9991 )rlaqtr, llaqtr, nlaqtr, klaqtr
190 CALL dget40( rtgexc, ltgexc, ntgexc, ktgexc, nin )
191 IF( rtgexc.GT.thresh )
THEN
193 WRITE( nout, fmt = 9986 )rtgexc, ltgexc, ntgexc, ktgexc
196 ntests = klaln2 + klasy2 + klanv2 + klaexc + ktrsyl + ktrexc +
197 $ ktrsna + ktrsen + klaqtr + ktgexc
199 $
WRITE( nout, fmt = 9990 )path, ntests
202 9999
FORMAT(
' Error in DLALN2: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
203 $
'INFO=', 2i8,
' KNT=', i8 )
204 9998
FORMAT(
' Error in DLASY2: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
205 $
'INFO=', i8,
' KNT=', i8 )
206 9997
FORMAT(
' Error in DLANV2: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
207 $
'INFO=', i8,
' KNT=', i8 )
208 9996
FORMAT(
' Error in DLAEXC: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
209 $
'INFO=', 2i8,
' KNT=', i8 )
210 9995
FORMAT(
' Error in DTRSYL: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
211 $
'INFO=', i8,
' KNT=', i8 )
212 9994
FORMAT(
' Error in DTREXC: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
213 $
'INFO=', 3i8,
' KNT=', i8 )
214 9993
FORMAT(
' Error in DTRSNA: RMAX =', 3d12.3, /
' LMAX = ', 3i8,
215 $
' NINFO=', 3i8,
' KNT=', i8 )
216 9992
FORMAT(
' Error in DTRSEN: RMAX =', 3d12.3, /
' LMAX = ', 3i8,
217 $
' NINFO=', 3i8,
' KNT=', i8 )
218 9991
FORMAT(
' Error in DLAQTR: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
219 $
'INFO=', i8,
' KNT=', i8 )
220 9990
FORMAT( / 1x,
'All tests for ', a3,
' routines passed the thresh',
221 $
'old ( ', i6,
' tests run)' )
222 9989
FORMAT(
' Tests of the Nonsymmetric eigenproblem condition estim',
223 $
'ation routines', /
' DLALN2, DLASY2, DLANV2, DLAEXC, DTRS',
224 $
'YL, DTREXC, DTRSNA, DTRSEN, DLAQTR, DTGEXC', / )
225 9988
FORMAT(
' Relative machine precision (EPS) = ', d16.6, /
' Safe ',
226 $
'minimum (SFMIN) = ', d16.6, / )
227 9987
FORMAT(
' Routines pass computational tests if test ratio is les',
228 $
's than', f8.2, / / )
229 9986
FORMAT(
' Error in DTGEXC: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
230 $
'INFO=', i8,
' KNT=', i8 )
double precision function dlamch(CMACH)
DLAMCH
subroutine dget33(RMAX, LMAX, NINFO, KNT)
DGET33
subroutine derrec(PATH, NUNIT)
DERREC
subroutine dget39(RMAX, LMAX, NINFO, KNT)
DGET39
subroutine dget32(RMAX, LMAX, NINFO, KNT)
DGET32
subroutine dget37(RMAX, LMAX, NINFO, KNT, NIN)
DGET37
subroutine dget34(RMAX, LMAX, NINFO, KNT)
DGET34
subroutine dget36(RMAX, LMAX, NINFO, KNT, NIN)
DGET36
subroutine dget35(RMAX, LMAX, NINFO, KNT)
DGET35
subroutine dget38(RMAX, LMAX, NINFO, KNT, NIN)
DGET38
subroutine dget31(RMAX, LMAX, NINFO, KNT)
DGET31
subroutine dget40(RMAX, LMAX, NINFO, KNT, NIN)
DGET40