75 SUBROUTINE dchkec( THRESH, TSTERR, NIN, NOUT )
84 DOUBLE PRECISION THRESH
92 INTEGER KLAEXC, KLALN2, KLANV2, KLAQTR, KLASY2, KTREXC,
93 $ KTRSEN, KTRSNA, KTRSYL, KTRSYL3, LLAEXC,
94 $ LLALN2, LLANV2, LLAQTR, LLASY2, LTREXC, LTRSYL,
95 $ NLANV2, NLAQTR, NLASY2, NTESTS, NTRSYL, KTGEXC,
97 DOUBLE PRECISION EPS, RLAEXC, RLALN2, RLANV2, RLAQTR, RLASY2,
98 $ RTREXC, SFMIN, RTGEXC
101 INTEGER FTRSYL( 3 ), ITRSYL( 2 ), LTRSEN( 3 ),
102 $ LTRSNA( 3 ), NLAEXC( 2 ), NLALN2( 2 ),
103 $ NTGEXC( 2 ), NTREXC( 3 ), NTRSEN( 3 ),
105 DOUBLE PRECISION RTRSEN( 3 ), RTRSNA( 3 ), RTRSYL( 2 )
112 DOUBLE PRECISION DLAMCH
117 path( 1: 1 ) =
'Double precision'
120 sfmin = dlamch(
'S' )
124 WRITE( nout, fmt = 9989 )
125 WRITE( nout, fmt = 9988 )eps, sfmin
126 WRITE( nout, fmt = 9987 )thresh
131 $
CALL derrec( path, nout )
134 CALL dget31( rlaln2, llaln2, nlaln2, klaln2 )
135 IF( rlaln2.GT.thresh .OR. nlaln2( 1 ).NE.0 )
THEN
137 WRITE( nout, fmt = 9999 )rlaln2, llaln2, nlaln2, klaln2
140 CALL dget32( rlasy2, llasy2, nlasy2, klasy2 )
141 IF( rlasy2.GT.thresh )
THEN
143 WRITE( nout, fmt = 9998 )rlasy2, llasy2, nlasy2, klasy2
146 CALL dget33( rlanv2, llanv2, nlanv2, klanv2 )
147 IF( rlanv2.GT.thresh .OR. nlanv2.NE.0 )
THEN
149 WRITE( nout, fmt = 9997 )rlanv2, llanv2, nlanv2, klanv2
152 CALL dget34( rlaexc, llaexc, nlaexc, klaexc )
153 IF( rlaexc.GT.thresh .OR. nlaexc( 2 ).NE.0 )
THEN
155 WRITE( nout, fmt = 9996 )rlaexc, llaexc, nlaexc, klaexc
158 CALL dget35( rtrsyl( 1 ), ltrsyl, ntrsyl, ktrsyl )
159 IF( rtrsyl( 1 ).GT.thresh )
THEN
161 WRITE( nout, fmt = 9995 )rtrsyl( 1 ), ltrsyl, ntrsyl, ktrsyl
164 CALL dsyl01( thresh, ftrsyl, rtrsyl, itrsyl, ktrsyl3 )
165 IF( ftrsyl( 1 ).GT.0 )
THEN
167 WRITE( nout, fmt = 9970 )ftrsyl( 1 ), rtrsyl( 1 ), thresh
169 IF( ftrsyl( 2 ).GT.0 )
THEN
171 WRITE( nout, fmt = 9971 )ftrsyl( 2 ), rtrsyl( 2 ), thresh
173 IF( ftrsyl( 3 ).GT.0 )
THEN
175 WRITE( nout, fmt = 9972 )ftrsyl( 3 )
178 CALL dget36( rtrexc, ltrexc, ntrexc, ktrexc, nin )
179 IF( rtrexc.GT.thresh .OR. ntrexc( 3 ).GT.0 )
THEN
181 WRITE( nout, fmt = 9994 )rtrexc, ltrexc, ntrexc, ktrexc
184 CALL dget37( rtrsna, ltrsna, ntrsna, ktrsna, nin )
185 IF( rtrsna( 1 ).GT.thresh .OR. rtrsna( 2 ).GT.thresh .OR.
186 $ ntrsna( 1 ).NE.0 .OR. ntrsna( 2 ).NE.0 .OR. ntrsna( 3 ).NE.0 )
189 WRITE( nout, fmt = 9993 )rtrsna, ltrsna, ntrsna, ktrsna
192 CALL dget38( rtrsen, ltrsen, ntrsen, ktrsen, nin )
193 IF( rtrsen( 1 ).GT.thresh .OR. rtrsen( 2 ).GT.thresh .OR.
194 $ ntrsen( 1 ).NE.0 .OR. ntrsen( 2 ).NE.0 .OR. ntrsen( 3 ).NE.0 )
197 WRITE( nout, fmt = 9992 )rtrsen, ltrsen, ntrsen, ktrsen
200 CALL dget39( rlaqtr, llaqtr, nlaqtr, klaqtr )
201 IF( rlaqtr.GT.thresh )
THEN
203 WRITE( nout, fmt = 9991 )rlaqtr, llaqtr, nlaqtr, klaqtr
206 CALL dget40( rtgexc, ltgexc, ntgexc, ktgexc, nin )
207 IF( rtgexc.GT.thresh )
THEN
209 WRITE( nout, fmt = 9986 )rtgexc, ltgexc, ntgexc, ktgexc
212 ntests = klaln2 + klasy2 + klanv2 + klaexc + ktrsyl + ktrexc +
213 $ ktrsna + ktrsen + klaqtr + ktgexc
215 $
WRITE( nout, fmt = 9990 )path, ntests
218 9999
FORMAT(
' Error in DLALN2: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
219 $
'INFO=', 2i8,
' KNT=', i8 )
220 9998
FORMAT(
' Error in DLASY2: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
221 $
'INFO=', i8,
' KNT=', i8 )
222 9997
FORMAT(
' Error in DLANV2: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
223 $
'INFO=', i8,
' KNT=', i8 )
224 9996
FORMAT(
' Error in DLAEXC: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
225 $
'INFO=', 2i8,
' KNT=', i8 )
226 9995
FORMAT(
' Error in DTRSYL: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
227 $
'INFO=', i8,
' KNT=', i8 )
228 9994
FORMAT(
' Error in DTREXC: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
229 $
'INFO=', 3i8,
' KNT=', i8 )
230 9993
FORMAT(
' Error in DTRSNA: RMAX =', 3d12.3, /
' LMAX = ', 3i8,
231 $
' NINFO=', 3i8,
' KNT=', i8 )
232 9992
FORMAT(
' Error in DTRSEN: RMAX =', 3d12.3, /
' LMAX = ', 3i8,
233 $
' NINFO=', 3i8,
' KNT=', i8 )
234 9991
FORMAT(
' Error in DLAQTR: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
235 $
'INFO=', i8,
' KNT=', i8 )
236 9990
FORMAT( / 1x,
'All tests for ', a3,
' routines passed the thresh',
237 $
'old ( ', i6,
' tests run)' )
238 9989
FORMAT(
' Tests of the Nonsymmetric eigenproblem condition estim',
239 $
'ation routines', /
' DLALN2, DLASY2, DLANV2, DLAEXC, DTRS',
240 $
'YL, DTREXC, DTRSNA, DTRSEN, DLAQTR, DTGEXC', / )
241 9988
FORMAT(
' Relative machine precision (EPS) = ', d16.6, /
' Safe ',
242 $
'minimum (SFMIN) = ', d16.6, / )
243 9987
FORMAT(
' Routines pass computational tests if test ratio is les',
244 $
's than', f8.2, / / )
245 9986
FORMAT(
' Error in DTGEXC: RMAX =', d12.3, /
' LMAX = ', i8,
' N',
246 $
'INFO=', 2i8,
' KNT=', i8 )
247 9972
FORMAT(
'DTRSYL and DTRSYL3 compute an inconsistent result ',
248 $
'factor in ', i8,
' tests.')
249 9971
FORMAT(
'Error in DTRSYL3: ', i8,
' tests fail the threshold.', /
250 $
'Maximum test ratio =', d12.3,
' threshold =', d12.3 )
251 9970
FORMAT(
'Error in DTRSYL: ', i8,
' tests fail the threshold.', /
252 $
'Maximum test ratio =', d12.3,
' threshold =', d12.3 )
subroutine dchkec(thresh, tsterr, nin, nout)
DCHKEC
subroutine derrec(path, nunit)
DERREC
subroutine dget31(rmax, lmax, ninfo, knt)
DGET31
subroutine dget32(rmax, lmax, ninfo, knt)
DGET32
subroutine dget33(rmax, lmax, ninfo, knt)
DGET33
subroutine dget34(rmax, lmax, ninfo, knt)
DGET34
subroutine dget35(rmax, lmax, ninfo, knt)
DGET35
subroutine dget36(rmax, lmax, ninfo, knt, nin)
DGET36
subroutine dget37(rmax, lmax, ninfo, knt, nin)
DGET37
subroutine dget38(rmax, lmax, ninfo, knt, nin)
DGET38
subroutine dget39(rmax, lmax, ninfo, knt)
DGET39
subroutine dget40(rmax, lmax, ninfo, knt, nin)
DGET40
subroutine dsyl01(thresh, nfail, rmax, ninfo, knt)
DSYL01