75 SUBROUTINE dchkec( THRESH, TSTERR, NIN, NOUT )
84 DOUBLE PRECISION THRESH
92 INTEGER KLAEXC, KLALN2, KLANV2, KLAQTR, KLASY2, KTREXC,
93 $ KTRSEN, KTRSNA, , LLAEXC, LLALN2, LLANV2,
94 $ LLAQTR, LLASY2, LTREXC, LTRSYL, NLANV2, NLAQTR,
95 $ NLASY2, , 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 ( 3 ), RTRSNA( 3 )
110 DOUBLE PRECISION DLAMCH
115 path( 1: 1 ) =
'Double precision'
118 sfmin = dlamch(
'S' )
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
',
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 )
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine dtgexc(wantq, wantz, n, a, lda, b, ldb, q, ldq, z, ldz, ifst, ilst, work, lwork, info)
DTGEXC
subroutine dlaqtr(ltran, lreal, n, t, ldt, b, w, scale, x, work, info)
DLAQTR solves a real quasi-triangular system of equations, or a complex quasi-triangular system of sp...
subroutine dlanv2(a, b, c, d, rt1r, rt1i, rt2r, rt2i, cs, sn)
DLANV2 computes the Schur factorization of a real 2-by-2 nonsymmetric matrix in standard form.
subroutine dlaln2(ltrans, na, nw, smin, ca, a, lda, d1, d2, b, ldb, wr, wi, x, ldx, scale, xnorm, info)
DLALN2 solves a 1-by-1 or 2-by-2 linear system of equations of the specified form.
subroutine dlaexc(wantq, n, t, ldt, q, ldq, j1, n1, n2, work, info)
DLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form...
subroutine dtrexc(compq, n, t, ldt, q, ldq, ifst, ilst, work, info)
DTREXC
subroutine dtrsna(job, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, s, sep, mm, m, work, ldwork, iwork, info)
DTRSNA
subroutine dtrsen(job, compq, select, n, t, ldt, q, ldq, wr, wi, m, s, sep, work, lwork, iwork, liwork, info)
DTRSEN
subroutine dlasy2(ltranl, ltranr, isgn, n1, n2, tl, ldtl, tr, ldtr, b, ldb, scale, x, ldx, xnorm, info)
DLASY2 solves the Sylvester matrix equation where the matrices are of order 1 or 2.
subroutine dtrsyl(trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info)
DTRSYL
subroutine derrec(path, nunit)
DERREC
subroutine dget39(rmax, lmax, ninfo, knt)
DGET39
subroutine dget32(rmax, lmax, ninfo, knt)
DGET32
subroutine dchkec(thresh, tsterr, nin, nout)
DCHKEC
subroutine dget34(rmax, lmax, ninfo, knt)
DGET34
subroutine dget38(rmax, lmax, ninfo, knt, nin)
DGET38
subroutine dget36(rmax, lmax, ninfo, knt, nin)
DGET36
subroutine dget40(rmax, lmax, ninfo, knt, nin)
DGET40
subroutine dget31(rmax, lmax, ninfo, knt)
DGET31
subroutine dget33(rmax, lmax, ninfo, knt)
DGET33
subroutine dget37(rmax, lmax, ninfo, knt, nin)
DGET37
subroutine dget35(rmax, lmax, ninfo, knt)
DGET35