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 )