71 parameter( nmax = 4, one = 1.0e0, zero = 0.0e0 )
74 INTEGER I, IFST, ILST, INFO, J, M
80 REAL A( NMAX, NMAX ), B( NMAX, NMAX ),
81 $ C( NMAX, NMAX ), S( NMAX ), SEP( NMAX ),
82 $ WI( NMAX ), WORK( NMAX ), WR( NMAX )
93 COMMON / infoc / infot, nout, ok, lerr
94 COMMON / srnamc / srnamt
119 CALL strsyl(
'X',
'N', 1, 0, 0, a, 1, b, 1, c, 1, scale, info )
120 CALL chkxer(
'STRSYL', infot, nout, lerr, ok )
122 CALL strsyl(
'N',
'X', 1, 0, 0, a, 1, b, 1, c, 1, scale, info )
123 CALL chkxer(
'STRSYL', infot, nout, lerr, ok )
125 CALL strsyl(
'N',
'N', 0, 0, 0, a, 1, b, 1, c, 1, scale, info )
126 CALL chkxer(
'STRSYL', infot, nout, lerr, ok )
128 CALL strsyl(
'N',
'N', 1, -1, 0, a, 1, b, 1, c, 1, scale, info )
129 CALL chkxer(
'STRSYL', infot, nout, lerr, ok )
131 CALL strsyl(
'N',
'N', 1, 0, -1, a, 1, b, 1, c, 1, scale, info )
132 CALL chkxer(
'STRSYL', infot, nout, lerr, ok )
134 CALL strsyl( 'n
', 'n
', 1, 2, 0, A, 1, B, 1, C, 2, SCALE, INFO )
135 CALL CHKXER( 'strsyl', INFOT, NOUT, LERR, OK )
137 CALL STRSYL( 'n
', 'n
', 1, 0, 2, A, 1, B, 1, C, 1, SCALE, INFO )
138 CALL CHKXER( 'strsyl', INFOT, NOUT, LERR, OK )
140 CALL STRSYL( 'n
', 'n
', 1, 2, 0, A, 2, B, 1, C, 1, SCALE, INFO )
141 CALL CHKXER( 'strsyl', INFOT, NOUT, LERR, OK )
150 CALL STREXC( 'x
', 1, A, 1, B, 1, IFST, ILST, WORK, INFO )
151 CALL CHKXER( 'strexc', INFOT, NOUT, LERR, OK )
153 CALL STREXC( 'n
', -1, A, 1, B, 1, IFST, ILST, WORK, INFO )
154 CALL CHKXER( 'strexc', INFOT, NOUT, LERR, OK )
157 CALL STREXC( 'n
', 2, A, 1, B, 1, IFST, ILST, WORK, INFO )
158 CALL CHKXER( 'strexc', INFOT, NOUT, LERR, OK )
160 CALL STREXC( 'v
', 2, A, 2, B, 1, IFST, ILST, WORK, INFO )
161 CALL CHKXER( 'strexc', INFOT, NOUT, LERR, OK )
165 CALL STREXC( 'v
', 1, A, 1, B, 1, IFST, ILST, WORK, INFO )
166 CALL CHKXER( 'strexc', INFOT, NOUT, LERR, OK )
169 CALL STREXC( 'v
', 1, A, 1, B, 1, IFST, ILST, WORK, INFO )
170 CALL CHKXER( 'strexc', INFOT, NOUT, LERR, OK )
174 CALL STREXC( 'v
', 1, A, 1, B, 1, IFST, ILST, WORK, INFO )
175 CALL CHKXER( 'strexc', INFOT, NOUT, LERR, OK )
178 CALL STREXC( 'v
', 1, A, 1, B, 1, IFST, ILST, WORK, INFO )
179 CALL CHKXER( 'strexc', INFOT, NOUT, LERR, OK )
186 CALL STRSNA( 'x
', 'a
', SEL, 0, A, 1, B, 1, C, 1, S, SEP, 1, M,
187 $ WORK, 1, IWORK, INFO )
188 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
190 CALL STRSNA( 'b
', 'x
', SEL, 0, A, 1, B, 1, C, 1, S, SEP, 1, M,
191 $ WORK, 1, IWORK, INFO )
192 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
194 CALL STRSNA( 'b
', 'a
', SEL, -1, A, 1, B, 1, C, 1, S, SEP, 1, M,
195 $ WORK, 1, IWORK, INFO )
196 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
198 CALL STRSNA( 'v
', 'a
', SEL, 2, A, 1, B, 1, C, 1, S, SEP, 2, M,
199 $ WORK, 2, IWORK, INFO )
200 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
202 CALL STRSNA( 'b
', 'a
', SEL, 2, A, 2, B, 1, C, 2, S, SEP, 2, M,
203 $ WORK, 2, IWORK, INFO )
204 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
206 CALL STRSNA( 'b
', 'a
', SEL, 2, A, 2, B, 2, C, 1, S, SEP, 2, M,
207 $ WORK, 2, IWORK, INFO )
208 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
210 CALL STRSNA( 'b
', 'a
', SEL, 1, A, 1, B, 1, C, 1, S, SEP, 0, M,
211 $ WORK, 1, IWORK, INFO )
212 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
214 CALL STRSNA( 'b
', 's
', SEL, 2, A, 2, B, 2, C, 2, S, SEP, 1, M,
215 $ WORK, 2, IWORK, INFO )
216 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
218 CALL STRSNA( 'b
', 'a
', SEL, 2, A, 2, B, 2, C, 2, S, SEP, 2, M,
219 $ WORK, 1, IWORK, INFO )
220 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
228 CALL STRSEN( 'x
', 'n
', SEL, 0, A, 1, B, 1, WR, WI, M, S( 1 ),
229 $ SEP( 1 ), WORK, 1, IWORK, 1, INFO )
230 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
232 CALL STRSEN( 'n
', 'x
', SEL, 0, A, 1, B, 1, WR, WI, M, S( 1 ),
233 $ SEP( 1 ), WORK, 1, IWORK, 1, INFO )
234 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
236 CALL STRSEN( 'n
', 'n
', SEL, -1, A, 1, B, 1, WR, WI, M, S( 1 ),
237 $ SEP( 1 ), WORK, 1, IWORK, 1, INFO )
238 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
240 CALL STRSEN( 'n
', 'n
', SEL, 2, A, 1, B, 1, WR, WI, M, S( 1 ),
241 $ SEP( 1 ), WORK, 2, IWORK, 1, INFO )
242 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
244 CALL STRSEN( 'n
', 'v
', SEL, 2, A, 2, B, 1, WR, WI, M, S( 1 ),
245 $ SEP( 1 ), WORK, 1, IWORK, 1, INFO )
246 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
248 CALL STRSEN( 'n
', 'v
', SEL, 2, A, 2, B, 2, WR, WI, M, S( 1 ),
249 $ SEP( 1 ), WORK, 0, IWORK, 1, INFO )
250 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
252 CALL STRSEN( 'e
', 'v
', SEL, 3, A, 3, B, 3, WR, WI, M, S( 1 ),
253 $ SEP( 1 ), WORK, 1, IWORK, 1, INFO )
254 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
256 CALL STRSEN( 'v
', 'v
', SEL, 3, A, 3, B, 3, WR, WI, M, S( 1 ),
257 $ SEP( 1 ), WORK, 3, IWORK, 2, INFO )
258 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
260 CALL STRSEN( 'e
', 'v
', SEL, 2, A, 2, B, 2, WR, WI, M, S( 1 ),
261 $ SEP( 1 ), WORK, 1, IWORK, 0, INFO )
262 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
264 CALL STRSEN( 'v
', 'v
', SEL, 3, A, 3, B, 3, WR, WI, M, S( 1 ),
265 $ SEP( 1 ), WORK, 4, IWORK, 1, INFO )
266 CALL CHKXER( 'strsen', INFOT, NOUT, LERR, OK )
272 WRITE( NOUT, FMT = 9999 )PATH, NT
274 WRITE( NOUT, FMT = 9998 )PATH
278 9999 FORMAT( 1X, A3, ' routines passed
the tests of
the error exits(
',
279 $ I3, ' tests done)
' )
280 9998 FORMAT( ' ***
', A3, ' routines failed
the tests of
the error ex
',
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 strsyl(trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info)
STRSYL