75 SUBROUTINE schkec( THRESH, TSTERR, NIN, NOUT )
92 INTEGER KLAEXC, , KLANV2, KLAQTR, KLASY2, KTREXC,
93 $ KTRSEN, KTRSNA, KTRSYL, LLAEXC, LLALN2, LLANV2,
94 $ LLAQTR, LLASY2, LTREXC, LTRSYL, NLANV2, NLAQTR,
95 $ NLASY2, NTESTS, NTRSYL, KTGEXC, NTGEXC,
96 REAL 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 REAL RTRSEN( 3 ), RTRSNA( 3 )
115 path( 1: 1 ) =
'Single precision'
118 sfmin = slamch(
'S' )
122 WRITE( nout, fmt = 9989 )
123 WRITE( nout, fmt = 9988 )eps, sfmin
124 WRITE( nout, fmt = 9987 )thresh
129 $
CALL serrec( path, nout )
132 CALL sget31( 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 sget32( rlasy2, llasy2, nlasy2, klasy2 )
139 IF( rlasy2.GT.thresh )
THEN
141 WRITE( nout, fmt = 9998 )rlasy2, llasy2, nlasy2, klasy2
144 CALL sget33( 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 sget34( 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 sget35( rtrsyl, ltrsyl, ntrsyl, ktrsyl )
157 IF( rtrsyl.GT.thresh )
THEN
159 WRITE( nout, fmt = 9995 )rtrsyl, ltrsyl, ntrsyl, ktrsyl
162 CALL sget36( 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 sget37( 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 sget38( 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 sget39( rlaqtr, llaqtr, nlaqtr, klaqtr )
185 IF( rlaqtr.GT.thresh )
THEN
187 WRITE( nout, fmt = 9991 )rlaqtr, llaqtr, nlaqtr, klaqtr
190 CALL sget40( 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
199 $
WRITE( nout, fmt = 9990 )path, ntests
202 9999
FORMAT(
' Error in SLALN2: RMAX =', e12.3, /
' LMAX = ', i8,
' N',
203 $
'INFO=', 2i8,
' KNT=', i8 )
204 9998
FORMAT(
' Error in SLASY2: RMAX =', e12.3, /
' LMAX = ', i8,
' N',
205 $
'INFO=', i8,
' KNT=', i8 )
206 9997
FORMAT(
' Error in SLANV2: RMAX =', e12.3, /
' LMAX = ', i8,
' N',
207 $
'INFO=', i8,
' KNT=', i8 )
208 9996
FORMAT(
' Error in SLAEXC: RMAX =', e12.3, /
' LMAX = ', i8,
' N',
209 $
'INFO=', 2i8,
' KNT=', i8 )
210 9995
FORMAT( ' error in
strsyl: rmax =
', E12.3, / ' lmax =
', I8, ' n
',
211 $ 'info=
', I8, ' knt=
', I8 )
212 9994 FORMAT( ' error in
strexc: rmax =
', E12.3, / ' lmax =
', I8, ' n
',
213 $ 'info=
', 3I8, ' knt=
', I8 )
214 9993 FORMAT( ' error in
strsna: rmax =
', 3E12.3, / ' lmax =
', 3I8,
215 $ ' ninfo=
', 3I8, ' knt=
', I8 )
216 9992 FORMAT( ' error in
strsen: rmax =
', 3E12.3, / ' lmax =
', 3I8,
217 $ ' ninfo=
', 3I8, ' knt=
', I8 )
218 9991 FORMAT( ' error in
slaqtr: rmax =
', E12.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) =
', E16.6, / ' safe
',
226 $ 'minimum(sfmin) =
', E16.6, / )
227 9987 FORMAT( ' routines pass computational tests
if test ratio is les
',
228 $ 's than
', F8.2, / / )
229 9986 FORMAT( ' error in
stgexc: rmax =
', E12.3, / ' lmax =
', I8, ' n
',
230 $ 'info=
', I8, ' knt=
', I8 )
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine sget40(rmax, lmax, ninfo, knt, nin)
SGET40
subroutine stgexc(wantq, wantz, n, a, lda, b, ldb, q, ldq, z, ldz, ifst, ilst, work, lwork, info)
STGEXC
subroutine slaqtr(ltran, lreal, n, t, ldt, b, w, scale, x, work, info)
SLAQTR solves a real quasi-triangular system of equations, or a complex quasi-triangular system of sp...
subroutine slanv2(a, b, c, d, rt1r, rt1i, rt2r, rt2i, cs, sn)
SLANV2 computes the Schur factorization of a real 2-by-2 nonsymmetric matrix in standard form.
subroutine slaexc(wantq, n, t, ldt, q, ldq, j1, n1, n2, work, info)
SLAEXC swaps adjacent diagonal blocks of a real upper quasi-triangular matrix in Schur canonical form...
subroutine slaln2(ltrans, na, nw, smin, ca, a, lda, d1, d2, b, ldb, wr, wi, x, ldx, scale, xnorm, info)
SLALN2 solves a 1-by-1 or 2-by-2 linear system of equations of the specified form.
subroutine strsen(job, compq, select, n, t, ldt, q, ldq, wr, wi, m, s, sep, work, lwork, iwork, liwork, info)
STRSEN
subroutine strsna(job, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, s, sep, mm, m, work, ldwork, iwork, info)
STRSNA
subroutine strexc(compq, n, t, ldt, q, ldq, ifst, ilst, work, info)
STREXC
subroutine slasy2(ltranl, ltranr, isgn, n1, n2, tl, ldtl, tr, ldtr, b, ldb, scale, x, ldx, xnorm, info)
SLASY2 solves the Sylvester matrix equation where the matrices are of order 1 or 2.
subroutine strsyl(trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info)
STRSYL
subroutine sget31(rmax, lmax, ninfo, knt)
SGET31
subroutine sget34(rmax, lmax, ninfo, knt)
SGET34
subroutine serrec(path, nunit)
SERREC
subroutine sget37(rmax, lmax, ninfo, knt, nin)
SGET37
subroutine sget39(rmax, lmax, ninfo, knt)
SGET39
subroutine sget35(rmax, lmax, ninfo, knt)
SGET35
subroutine sget38(rmax, lmax, ninfo, knt, nin)
SGET38
subroutine sget36(rmax, lmax, ninfo, knt, nin)
SGET36
subroutine sget32(rmax, lmax, ninfo, knt)
SGET32
subroutine schkec(thresh, tsterr, nin, nout)
SCHKEC
subroutine sget33(rmax, lmax, ninfo, knt)
SGET33
for(i8=*sizetab-1;i8 >=0;i8--)