LAPACK  3.9.1
LAPACK: Linear Algebra PACKage
serrgg.f
Go to the documentation of this file.
1 *> \brief \b SERRGG
2 *
3 * =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
7 *
8 * Definition:
9 * ===========
10 *
11 * SUBROUTINE SERRGG( PATH, NUNIT )
12 *
13 * .. Scalar Arguments ..
14 * CHARACTER*3 PATH
15 * INTEGER NUNIT
16 * ..
17 *
18 *
19 *> \par Purpose:
20 * =============
21 *>
22 *> \verbatim
23 *>
24 *> SERRGG tests the error exits for SGGES, SGGESX, SGGEV, SGGEVX,
25 *> SGGES3, SGGEV3, SGGGLM, SGGHRD, SGGLSE, SGGQRF, SGGRQF,
26 *> SGGSVD3, SGGSVP3, SHGEQZ, SORCSD, STGEVC, STGEXC, STGSEN,
27 *> STGSJA, STGSNA, and STGSYL.
28 *> \endverbatim
29 *
30 * Arguments:
31 * ==========
32 *
33 *> \param[in] PATH
34 *> \verbatim
35 *> PATH is CHARACTER*3
36 *> The LAPACK path name for the routines to be tested.
37 *> \endverbatim
38 *>
39 *> \param[in] NUNIT
40 *> \verbatim
41 *> NUNIT is INTEGER
42 *> The unit number for output.
43 *> \endverbatim
44 *
45 * Authors:
46 * ========
47 *
48 *> \author Univ. of Tennessee
49 *> \author Univ. of California Berkeley
50 *> \author Univ. of Colorado Denver
51 *> \author NAG Ltd.
52 *
53 *> \ingroup single_eig
54 *
55 * =====================================================================
56  SUBROUTINE serrgg( PATH, NUNIT )
57 *
58 * -- LAPACK test routine --
59 * -- LAPACK is a software package provided by Univ. of Tennessee, --
60 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
61 *
62 * .. Scalar Arguments ..
63  CHARACTER*3 PATH
64  INTEGER NUNIT
65 * ..
66 *
67 * =====================================================================
68 *
69 * .. Parameters ..
70  INTEGER NMAX, LW
71  parameter( nmax = 3, lw = 6*nmax )
72  REAL ONE, ZERO
73  parameter( one = 1.0e+0, zero = 0.0e+0 )
74 * ..
75 * .. Local Scalars ..
76  CHARACTER*2 C2
77  INTEGER DUMMYK, DUMMYL, I, IFST, ILO, IHI, ILST, INFO,
78  $ J, M, NCYCLE, NT, SDIM, LWORK
79  REAL ANRM, BNRM, DIF, SCALE, TOLA, TOLB
80 * ..
81 * .. Local Arrays ..
82  LOGICAL BW( NMAX ), SEL( NMAX )
83  INTEGER IW( NMAX ), IDUM(NMAX)
84  REAL A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
85  $ Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
86  $ R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
87  $ TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
88  $ W( LW ), Z( NMAX, NMAX )
89 * ..
90 * .. External Functions ..
91  LOGICAL LSAMEN, SLCTES, SLCTSX
92  EXTERNAL lsamen, slctes, slctsx
93 * ..
94 * .. External Subroutines ..
95  EXTERNAL chkxer, sgges, sggesx, sggev, sggevx, sggglm,
99  $ sggsvd3, sggsvp3
100 * ..
101 * .. Scalars in Common ..
102  LOGICAL LERR, OK
103  CHARACTER*32 SRNAMT
104  INTEGER INFOT, NOUT
105 * ..
106 * .. Common blocks ..
107  COMMON / infoc / infot, nout, ok, lerr
108  COMMON / srnamc / srnamt
109 * ..
110 * .. Executable Statements ..
111 *
112  nout = nunit
113  WRITE( nout, fmt = * )
114  c2 = path( 2: 3 )
115 *
116 * Set the variables to innocuous values.
117 *
118  DO 20 j = 1, nmax
119  sel( j ) = .true.
120  DO 10 i = 1, nmax
121  a( i, j ) = zero
122  b( i, j ) = zero
123  10 CONTINUE
124  20 CONTINUE
125  DO 30 i = 1, nmax
126  a( i, i ) = one
127  b( i, i ) = one
128  30 CONTINUE
129  ok = .true.
130  tola = 1.0e0
131  tolb = 1.0e0
132  ifst = 1
133  ilst = 1
134  nt = 0
135  lwork = 1
136 *
137 * Test error exits for the GG path.
138 *
139  IF( lsamen( 2, c2, 'GG' ) ) THEN
140 *
141 * SGGHRD
142 *
143  srnamt = 'SGGHRD'
144  infot = 1
145  CALL sgghrd( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
146  CALL chkxer( 'SGGHRD', infot, nout, lerr, ok )
147  infot = 2
148  CALL sgghrd( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
149  CALL chkxer( 'SGGHRD', infot, nout, lerr, ok )
150  infot = 3
151  CALL sgghrd( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
152  CALL chkxer( 'SGGHRD', infot, nout, lerr, ok )
153  infot = 4
154  CALL sgghrd( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
155  CALL chkxer( 'SGGHRD', infot, nout, lerr, ok )
156  infot = 5
157  CALL sgghrd( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
158  CALL chkxer( 'SGGHRD', infot, nout, lerr, ok )
159  infot = 7
160  CALL sgghrd( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
161  CALL chkxer( 'SGGHRD', infot, nout, lerr, ok )
162  infot = 9
163  CALL sgghrd( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
164  CALL chkxer( 'SGGHRD', infot, nout, lerr, ok )
165  infot = 11
166  CALL sgghrd( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
167  CALL chkxer( 'SGGHRD', infot, nout, lerr, ok )
168  infot = 13
169  CALL sgghrd( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
170  CALL chkxer( 'SGGHRD', infot, nout, lerr, ok )
171  nt = nt + 9
172 *
173 * SGGHD3
174 *
175  srnamt = 'SGGHD3'
176  infot = 1
177  CALL sgghd3( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
178  $ info )
179  CALL chkxer( 'SGGHD3', infot, nout, lerr, ok )
180  infot = 2
181  CALL sgghd3( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
182  $ info )
183  CALL chkxer( 'SGGHD3', infot, nout, lerr, ok )
184  infot = 3
185  CALL sgghd3( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
186  $ info )
187  CALL chkxer( 'SGGHD3', infot, nout, lerr, ok )
188  infot = 4
189  CALL sgghd3( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
190  $ info )
191  CALL chkxer( 'SGGHD3', infot, nout, lerr, ok )
192  infot = 5
193  CALL sgghd3( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
194  $ info )
195  CALL chkxer( 'SGGHD3', infot, nout, lerr, ok )
196  infot = 7
197  CALL sgghd3( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
198  $ info )
199  CALL chkxer( 'SGGHD3', infot, nout, lerr, ok )
200  infot = 9
201  CALL sgghd3( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
202  $ info )
203  CALL chkxer( 'SGGHD3', infot, nout, lerr, ok )
204  infot = 11
205  CALL sgghd3( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
206  $ info )
207  CALL chkxer( 'SGGHD3', infot, nout, lerr, ok )
208  infot = 13
209  CALL sgghd3( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
210  $ info )
211  CALL chkxer( 'SGGHD3', infot, nout, lerr, ok )
212  nt = nt + 9
213 *
214 * SHGEQZ
215 *
216  srnamt = 'SHGEQZ'
217  infot = 1
218  CALL shgeqz( '/', 'N', 'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
219  $ 1, z, 1, w, lw, info )
220  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
221  infot = 2
222  CALL shgeqz( 'E', '/', 'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
223  $ 1, z, 1, w, lw, info )
224  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
225  infot = 3
226  CALL shgeqz( 'E', 'N', '/', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
227  $ 1, z, 1, w, lw, info )
228  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
229  infot = 4
230  CALL shgeqz( 'E', 'N', 'N', -1, 0, 0, a, 1, b, 1, r1, r2, r3,
231  $ q, 1, z, 1, w, lw, info )
232  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
233  infot = 5
234  CALL shgeqz( 'E', 'N', 'N', 0, 0, 0, a, 1, b, 1, r1, r2, r3, q,
235  $ 1, z, 1, w, lw, info )
236  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
237  infot = 6
238  CALL shgeqz( 'E', 'N', 'N', 0, 1, 1, a, 1, b, 1, r1, r2, r3, q,
239  $ 1, z, 1, w, lw, info )
240  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
241  infot = 8
242  CALL shgeqz( 'E', 'N', 'N', 2, 1, 1, a, 1, b, 2, r1, r2, r3, q,
243  $ 1, z, 1, w, lw, info )
244  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
245  infot = 10
246  CALL shgeqz( 'E', 'N', 'N', 2, 1, 1, a, 2, b, 1, r1, r2, r3, q,
247  $ 1, z, 1, w, lw, info )
248  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
249  infot = 15
250  CALL shgeqz( 'E', 'V', 'N', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
251  $ 1, z, 1, w, lw, info )
252  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
253  infot = 17
254  CALL shgeqz( 'E', 'N', 'V', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
255  $ 1, z, 1, w, lw, info )
256  CALL chkxer( 'SHGEQZ', infot, nout, lerr, ok )
257  nt = nt + 10
258 *
259 * STGEVC
260 *
261  srnamt = 'STGEVC'
262  infot = 1
263  CALL stgevc( '/', 'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
264  $ info )
265  CALL chkxer( 'STGEVC', infot, nout, lerr, ok )
266  infot = 2
267  CALL stgevc( 'R', '/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
268  $ info )
269  CALL chkxer( 'STGEVC', infot, nout, lerr, ok )
270  infot = 4
271  CALL stgevc( 'R', 'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
272  $ w, info )
273  CALL chkxer( 'STGEVC', infot, nout, lerr, ok )
274  infot = 6
275  CALL stgevc( 'R', 'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
276  $ info )
277  CALL chkxer( 'STGEVC', infot, nout, lerr, ok )
278  infot = 8
279  CALL stgevc( 'R', 'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
280  $ info )
281  CALL chkxer( 'STGEVC', infot, nout, lerr, ok )
282  infot = 10
283  CALL stgevc( 'L', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
284  $ info )
285  CALL chkxer( 'STGEVC', infot, nout, lerr, ok )
286  infot = 12
287  CALL stgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
288  $ info )
289  CALL chkxer( 'STGEVC', infot, nout, lerr, ok )
290  infot = 13
291  CALL stgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
292  $ info )
293  CALL chkxer( 'STGEVC', infot, nout, lerr, ok )
294  nt = nt + 8
295 *
296 * Test error exits for the GSV path.
297 *
298  ELSE IF( lsamen( 3, path, 'GSV' ) ) THEN
299 *
300 * SGGSVD3
301 *
302  srnamt = 'SGGSVD3'
303  infot = 1
304  CALL sggsvd3( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
305  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
306  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
307  infot = 2
308  CALL sggsvd3( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
309  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
310  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
311  infot = 3
312  CALL sggsvd3( 'N', 'N', '/', 0, 0, 0, dummyk, dummyl, a, 1, b,
313  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
314  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
315  infot = 4
316  CALL sggsvd3( 'N', 'N', 'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
317  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
318  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
319  infot = 5
320  CALL sggsvd3( 'N', 'N', 'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
321  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
322  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
323  infot = 6
324  CALL sggsvd3( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
325  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
326  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
327  infot = 10
328  CALL sggsvd3( 'N', 'N', 'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
329  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
330  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
331  infot = 12
332  CALL sggsvd3( 'N', 'N', 'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
333  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
334  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
335  infot = 16
336  CALL sggsvd3( 'U', 'N', 'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
337  $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
338  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
339  infot = 18
340  CALL sggsvd3( 'N', 'V', 'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
341  $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
342  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
343  infot = 20
344  CALL sggsvd3( 'N', 'N', 'Q', 1, 2, 1, dummyk, dummyl, a, 1, b,
345  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
346  CALL chkxer( 'SGGSVD3', infot, nout, lerr, ok )
347  nt = nt + 11
348 *
349 * SGGSVP3
350 *
351  srnamt = 'SGGSVP3'
352  infot = 1
353  CALL sggsvp3( '/', 'N', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
354  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
355  $ lwork, info )
356  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
357  infot = 2
358  CALL sggsvp3( 'N', '/', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
359  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
360  $ lwork, info )
361  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
362  infot = 3
363  CALL sggsvp3( 'N', 'N', '/', 0, 0, 0, a, 1, b, 1, tola, tolb,
364  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
365  $ lwork, info )
366  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
367  infot = 4
368  CALL sggsvp3( 'N', 'N', 'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
369  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
370  $ lwork, info )
371  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
372  infot = 5
373  CALL sggsvp3( 'N', 'N', 'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
374  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
375  $ lwork, info )
376  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
377  infot = 6
378  CALL sggsvp3( 'N', 'N', 'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
379  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
380  $ lwork, info )
381  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
382  infot = 8
383  CALL sggsvp3( 'N', 'N', 'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
384  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
385  $ lwork, info )
386  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
387  infot = 10
388  CALL sggsvp3( 'N', 'N', 'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
389  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
390  $ lwork, info )
391  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
392  infot = 16
393  CALL sggsvp3( 'U', 'N', 'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
394  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
395  $ lwork, info )
396  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
397  infot = 18
398  CALL sggsvp3( 'N', 'V', 'N', 1, 2, 1, a, 1, b, 2, tola, tolb,
399  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
400  $ lwork, info )
401  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
402  infot = 20
403  CALL sggsvp3( 'N', 'N', 'Q', 1, 1, 2, a, 1, b, 1, tola, tolb,
404  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
405  $ lwork, info )
406  CALL chkxer( 'SGGSVP3', infot, nout, lerr, ok )
407  nt = nt + 11
408 *
409 * STGSJA
410 *
411  srnamt = 'STGSJA'
412  infot = 1
413  CALL stgsja( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
414  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
415  $ ncycle, info )
416  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
417  infot = 2
418  CALL stgsja( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
419  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
420  $ ncycle, info )
421  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
422  infot = 3
423  CALL stgsja( 'N', 'N', '/', 0, 0, 0, dummyk, dummyl, a, 1, b,
424  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
425  $ ncycle, info )
426  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
427  infot = 4
428  CALL stgsja( 'N', 'N', 'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
429  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
430  $ ncycle, info )
431  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
432  infot = 5
433  CALL stgsja( 'N', 'N', 'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
434  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
435  $ ncycle, info )
436  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
437  infot = 6
438  CALL stgsja( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
439  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
440  $ ncycle, info )
441  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
442  infot = 10
443  CALL stgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
444  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
445  $ ncycle, info )
446  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
447  infot = 12
448  CALL stgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
449  $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
450  $ ncycle, info )
451  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
452  infot = 18
453  CALL stgsja( 'U', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
454  $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
455  $ ncycle, info )
456  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
457  infot = 20
458  CALL stgsja( 'N', 'V', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
459  $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
460  $ ncycle, info )
461  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
462  infot = 22
463  CALL stgsja( 'N', 'N', 'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
464  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
465  $ ncycle, info )
466  CALL chkxer( 'STGSJA', infot, nout, lerr, ok )
467  nt = nt + 11
468 *
469 * Test error exits for the GLM path.
470 *
471  ELSE IF( lsamen( 3, path, 'GLM' ) ) THEN
472 *
473 * SGGGLM
474 *
475  srnamt = 'SGGGLM'
476  infot = 1
477  CALL sggglm( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
478  CALL chkxer( 'SGGGLM', infot, nout, lerr, ok )
479  infot = 2
480  CALL sggglm( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
481  CALL chkxer( 'SGGGLM', infot, nout, lerr, ok )
482  infot = 2
483  CALL sggglm( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
484  CALL chkxer( 'SGGGLM', infot, nout, lerr, ok )
485  infot = 3
486  CALL sggglm( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
487  CALL chkxer( 'SGGGLM', infot, nout, lerr, ok )
488  infot = 3
489  CALL sggglm( 1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
490  CALL chkxer( 'SGGGLM', infot, nout, lerr, ok )
491  infot = 5
492  CALL sggglm( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
493  CALL chkxer( 'SGGGLM', infot, nout, lerr, ok )
494  infot = 7
495  CALL sggglm( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
496  CALL chkxer( 'SGGGLM', infot, nout, lerr, ok )
497  infot = 12
498  CALL sggglm( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
499  CALL chkxer( 'SGGGLM', infot, nout, lerr, ok )
500  nt = nt + 8
501 *
502 * Test error exits for the LSE path.
503 *
504  ELSE IF( lsamen( 3, path, 'LSE' ) ) THEN
505 *
506 * SGGLSE
507 *
508  srnamt = 'SGGLSE'
509  infot = 1
510  CALL sgglse( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
511  CALL chkxer( 'SGGLSE', infot, nout, lerr, ok )
512  infot = 2
513  CALL sgglse( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
514  CALL chkxer( 'SGGLSE', infot, nout, lerr, ok )
515  infot = 3
516  CALL sgglse( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
517  CALL chkxer( 'SGGLSE', infot, nout, lerr, ok )
518  infot = 3
519  CALL sgglse( 0, 0, 1, a, 1, b, 1, r1, r2, r3, w, lw, info )
520  CALL chkxer( 'SGGLSE', infot, nout, lerr, ok )
521  infot = 3
522  CALL sgglse( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
523  CALL chkxer( 'SGGLSE', infot, nout, lerr, ok )
524  infot = 5
525  CALL sgglse( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
526  CALL chkxer( 'SGGLSE', infot, nout, lerr, ok )
527  infot = 7
528  CALL sgglse( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
529  CALL chkxer( 'SGGLSE', infot, nout, lerr, ok )
530  infot = 12
531  CALL sgglse( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
532  CALL chkxer( 'SGGLSE', infot, nout, lerr, ok )
533  nt = nt + 8
534 *
535 * Test error exits for the CSD path.
536 *
537  ELSE IF( lsamen( 3, path, 'CSD' ) ) THEN
538 *
539 * SORCSD
540 *
541  srnamt = 'SORCSD'
542  infot = 7
543  CALL sorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
544  $ -1, 0, 0, a, 1, a,
545  $ 1, a, 1, a, 1, a,
546  $ a, 1, a, 1, a, 1, a,
547  $ 1, w, lw, iw, info )
548  CALL chkxer( 'SORCSD', infot, nout, lerr, ok )
549  infot = 8
550  CALL sorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
551  $ 1, -1, 0, a, 1, a,
552  $ 1, a, 1, a, 1, a,
553  $ a, 1, a, 1, a, 1, a,
554  $ 1, w, lw, iw, info )
555  CALL chkxer( 'SORCSD', infot, nout, lerr, ok )
556  infot = 9
557  CALL sorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
558  $ 1, 1, -1, a, 1, a,
559  $ 1, a, 1, a, 1, a,
560  $ a, 1, a, 1, a, 1, a,
561  $ 1, w, lw, iw, info )
562  CALL chkxer( 'SORCSD', infot, nout, lerr, ok )
563  infot = 11
564  CALL sorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
565  $ 1, 1, 1, a, -1, a,
566  $ 1, a, 1, a, 1, a,
567  $ a, 1, a, 1, a, 1, a,
568  $ 1, w, lw, iw, info )
569  CALL chkxer( 'SORCSD', infot, nout, lerr, ok )
570  infot = 20
571  CALL sorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
572  $ 1, 1, 1, a, 1, a,
573  $ 1, a, 1, a, 1, a,
574  $ a, -1, a, 1, a, 1, a,
575  $ 1, w, lw, iw, info )
576  CALL chkxer( 'SORCSD', infot, nout, lerr, ok )
577  infot = 22
578  CALL sorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
579  $ 1, 1, 1, a, 1, a,
580  $ 1, a, 1, a, 1, a,
581  $ a, 1, a, -1, a, 1, a,
582  $ 1, w, lw, iw, info )
583  CALL chkxer( 'SORCSD', infot, nout, lerr, ok )
584  infot = 24
585  CALL sorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
586  $ 1, 1, 1, a, 1, a,
587  $ 1, a, 1, a, 1, a,
588  $ a, 1, a, 1, a, -1, a,
589  $ 1, w, lw, iw, info )
590  CALL chkxer( 'SORCSD', infot, nout, lerr, ok )
591  infot = 26
592  CALL sorcsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
593  $ 1, 1, 1, a, 1, a,
594  $ 1, a, 1, a, 1, a,
595  $ a, 1, a, 1, a, 1, a,
596  $ -1, w, lw, iw, info )
597  CALL chkxer( 'SORCSD', infot, nout, lerr, ok )
598  nt = nt + 8
599 *
600 * Test error exits for the GQR path.
601 *
602  ELSE IF( lsamen( 3, path, 'GQR' ) ) THEN
603 *
604 * SGGQRF
605 *
606  srnamt = 'SGGQRF'
607  infot = 1
608  CALL sggqrf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
609  CALL chkxer( 'SGGQRF', infot, nout, lerr, ok )
610  infot = 2
611  CALL sggqrf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
612  CALL chkxer( 'SGGQRF', infot, nout, lerr, ok )
613  infot = 3
614  CALL sggqrf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
615  CALL chkxer( 'SGGQRF', infot, nout, lerr, ok )
616  infot = 5
617  CALL sggqrf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
618  CALL chkxer( 'SGGQRF', infot, nout, lerr, ok )
619  infot = 8
620  CALL sggqrf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
621  CALL chkxer( 'SGGQRF', infot, nout, lerr, ok )
622  infot = 11
623  CALL sggqrf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
624  CALL chkxer( 'SGGQRF', infot, nout, lerr, ok )
625  nt = nt + 6
626 *
627 * SGGRQF
628 *
629  srnamt = 'SGGRQF'
630  infot = 1
631  CALL sggrqf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
632  CALL chkxer( 'SGGRQF', infot, nout, lerr, ok )
633  infot = 2
634  CALL sggrqf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
635  CALL chkxer( 'SGGRQF', infot, nout, lerr, ok )
636  infot = 3
637  CALL sggrqf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
638  CALL chkxer( 'SGGRQF', infot, nout, lerr, ok )
639  infot = 5
640  CALL sggrqf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
641  CALL chkxer( 'SGGRQF', infot, nout, lerr, ok )
642  infot = 8
643  CALL sggrqf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
644  CALL chkxer( 'SGGRQF', infot, nout, lerr, ok )
645  infot = 11
646  CALL sggrqf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
647  CALL chkxer( 'SGGRQF', infot, nout, lerr, ok )
648  nt = nt + 6
649 *
650 * Test error exits for the SGS, SGV, SGX, and SXV paths.
651 *
652  ELSE IF( lsamen( 3, path, 'SGS' ) .OR.
653  $ lsamen( 3, path, 'SGV' ) .OR.
654  $ lsamen( 3, path, 'SGX' ) .OR. lsamen( 3, path, 'SXV' ) )
655  $ THEN
656 *
657 * SGGES
658 *
659  srnamt = 'SGGES '
660  infot = 1
661  CALL sgges( '/', 'N', 'S', slctes, 1, a, 1, b, 1, sdim, r1, r2,
662  $ r3, q, 1, u, 1, w, 1, bw, info )
663  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
664  infot = 2
665  CALL sgges( 'N', '/', 'S', slctes, 1, a, 1, b, 1, sdim, r1, r2,
666  $ r3, q, 1, u, 1, w, 1, bw, info )
667  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
668  infot = 3
669  CALL sgges( 'N', 'V', '/', slctes, 1, a, 1, b, 1, sdim, r1, r2,
670  $ r3, q, 1, u, 1, w, 1, bw, info )
671  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
672  infot = 5
673  CALL sgges( 'N', 'V', 'S', slctes, -1, a, 1, b, 1, sdim, r1,
674  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
675  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
676  infot = 7
677  CALL sgges( 'N', 'V', 'S', slctes, 1, a, 0, b, 1, sdim, r1, r2,
678  $ r3, q, 1, u, 1, w, 1, bw, info )
679  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
680  infot = 9
681  CALL sgges( 'N', 'V', 'S', slctes, 1, a, 1, b, 0, sdim, r1, r2,
682  $ r3, q, 1, u, 1, w, 1, bw, info )
683  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
684  infot = 15
685  CALL sgges( 'N', 'V', 'S', slctes, 1, a, 1, b, 1, sdim, r1, r2,
686  $ r3, q, 0, u, 1, w, 1, bw, info )
687  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
688  infot = 15
689  CALL sgges( 'V', 'V', 'S', slctes, 2, a, 2, b, 2, sdim, r1, r2,
690  $ r3, q, 1, u, 2, w, 1, bw, info )
691  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
692  infot = 17
693  CALL sgges( 'N', 'V', 'S', slctes, 1, a, 1, b, 1, sdim, r1, r2,
694  $ r3, q, 1, u, 0, w, 1, bw, info )
695  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
696  infot = 17
697  CALL sgges( 'V', 'V', 'S', slctes, 2, a, 2, b, 2, sdim, r1, r2,
698  $ r3, q, 2, u, 1, w, 1, bw, info )
699  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
700  infot = 19
701  CALL sgges( 'V', 'V', 'S', slctes, 2, a, 2, b, 2, sdim, r1, r2,
702  $ r3, q, 2, u, 2, w, 1, bw, info )
703  CALL chkxer( 'SGGES ', infot, nout, lerr, ok )
704  nt = nt + 11
705 *
706 * SGGES3
707 *
708  srnamt = 'SGGES3'
709  infot = 1
710  CALL sgges3( '/', 'N', 'S', slctes, 1, a, 1, b, 1, sdim, r1,
711  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
712  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
713  infot = 2
714  CALL sgges3( 'N', '/', 'S', slctes, 1, a, 1, b, 1, sdim, r1,
715  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
716  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
717  infot = 3
718  CALL sgges3( 'N', 'V', '/', slctes, 1, a, 1, b, 1, sdim, r1,
719  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
720  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
721  infot = 5
722  CALL sgges3( 'N', 'V', 'S', slctes, -1, a, 1, b, 1, sdim, r1,
723  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
724  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
725  infot = 7
726  CALL sgges3( 'N', 'V', 'S', slctes, 1, a, 0, b, 1, sdim, r1,
727  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
728  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
729  infot = 9
730  CALL sgges3( 'N', 'V', 'S', slctes, 1, a, 1, b, 0, sdim, r1,
731  $ r2, r3, q, 1, u, 1, w, 1, bw, info )
732  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
733  infot = 15
734  CALL sgges3( 'N', 'V', 'S', slctes, 1, a, 1, b, 1, sdim, r1,
735  $ r2, r3, q, 0, u, 1, w, 1, bw, info )
736  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
737  infot = 15
738  CALL sgges3( 'V', 'V', 'S', slctes, 2, a, 2, b, 2, sdim, r1,
739  $ r2, r3, q, 1, u, 2, w, 1, bw, info )
740  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
741  infot = 17
742  CALL sgges3( 'N', 'V', 'S', slctes, 1, a, 1, b, 1, sdim, r1,
743  $ r2, r3, q, 1, u, 0, w, 1, bw, info )
744  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
745  infot = 17
746  CALL sgges3( 'V', 'V', 'S', slctes, 2, a, 2, b, 2, sdim, r1,
747  $ r2, r3, q, 2, u, 1, w, 1, bw, info )
748  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
749  infot = 19
750  CALL sgges3( 'V', 'V', 'S', slctes, 2, a, 2, b, 2, sdim, r1,
751  $ r2, r3, q, 2, u, 2, w, 1, bw, info )
752  CALL chkxer( 'SGGES3 ', infot, nout, lerr, ok )
753  nt = nt + 11
754 *
755 * SGGESX
756 *
757  srnamt = 'SGGESX'
758  infot = 1
759  CALL sggesx( '/', 'N', 'S', slctsx, 'N', 1, a, 1, b, 1, sdim,
760  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
761  $ info )
762  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
763  infot = 2
764  CALL sggesx( 'N', '/', 'S', slctsx, 'N', 1, a, 1, b, 1, sdim,
765  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
766  $ info )
767  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
768  infot = 3
769  CALL sggesx( 'V', 'V', '/', slctsx, 'N', 1, a, 1, b, 1, sdim,
770  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
771  $ info )
772  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
773  infot = 5
774  CALL sggesx( 'V', 'V', 'S', slctsx, '/', 1, a, 1, b, 1, sdim,
775  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
776  $ info )
777  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
778  infot = 6
779  CALL sggesx( 'V', 'V', 'S', slctsx, 'B', -1, a, 1, b, 1, sdim,
780  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
781  $ info )
782  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
783  infot = 8
784  CALL sggesx( 'V', 'V', 'S', slctsx, 'B', 1, a, 0, b, 1, sdim,
785  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
786  $ info )
787  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
788  infot = 10
789  CALL sggesx( 'V', 'V', 'S', slctsx, 'B', 1, a, 1, b, 0, sdim,
790  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
791  $ info )
792  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
793  infot = 16
794  CALL sggesx( 'V', 'V', 'S', slctsx, 'B', 1, a, 1, b, 1, sdim,
795  $ r1, r2, r3, q, 0, u, 1, rce, rcv, w, 1, iw, 1, bw,
796  $ info )
797  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
798  infot = 16
799  CALL sggesx( 'V', 'V', 'S', slctsx, 'B', 2, a, 2, b, 2, sdim,
800  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
801  $ info )
802  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
803  infot = 18
804  CALL sggesx( 'V', 'V', 'S', slctsx, 'B', 1, a, 1, b, 1, sdim,
805  $ r1, r2, r3, q, 1, u, 0, rce, rcv, w, 1, iw, 1, bw,
806  $ info )
807  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
808  infot = 18
809  CALL sggesx( 'V', 'V', 'S', slctsx, 'B', 2, a, 2, b, 2, sdim,
810  $ r1, r2, r3, q, 2, u, 1, rce, rcv, w, 1, iw, 1, bw,
811  $ info )
812  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
813  infot = 22
814  CALL sggesx( 'V', 'V', 'S', slctsx, 'B', 2, a, 2, b, 2, sdim,
815  $ r1, r2, r3, q, 2, u, 2, rce, rcv, w, 1, iw, 1, bw,
816  $ info )
817  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
818  infot = 24
819  CALL sggesx( 'V', 'V', 'S', slctsx, 'V', 1, a, 1, b, 1, sdim,
820  $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 32, iw, 0,
821  $ bw, info )
822  CALL chkxer( 'SGGESX', infot, nout, lerr, ok )
823  nt = nt + 13
824 *
825 * SGGEV
826 *
827  srnamt = 'SGGEV '
828  infot = 1
829  CALL sggev( '/', 'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
830  $ 1, info )
831  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
832  infot = 2
833  CALL sggev( 'N', '/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
834  $ 1, info )
835  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
836  infot = 3
837  CALL sggev( 'V', 'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
838  $ w, 1, info )
839  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
840  infot = 5
841  CALL sggev( 'V', 'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1, w,
842  $ 1, info )
843  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
844  infot = 7
845  CALL sggev( 'V', 'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1, w,
846  $ 1, info )
847  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
848  infot = 12
849  CALL sggev( 'N', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1, w,
850  $ 1, info )
851  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
852  infot = 12
853  CALL sggev( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2, w,
854  $ 1, info )
855  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
856  infot = 14
857  CALL sggev( 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0, w,
858  $ 1, info )
859  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
860  infot = 14
861  CALL sggev( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1, w,
862  $ 1, info )
863  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
864  infot = 16
865  CALL sggev( 'V', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
866  $ 1, info )
867  CALL chkxer( 'SGGEV ', infot, nout, lerr, ok )
868  nt = nt + 10
869 *
870 * SGGEV3
871 *
872  srnamt = 'SGGEV3 '
873  infot = 1
874  CALL sggev3( '/', 'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
875  $ w, 1, info )
876  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
877  infot = 2
878  CALL sggev3( 'N', '/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
879  $ w, 1, info )
880  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
881  infot = 3
882  CALL sggev3( 'V', 'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
883  $ w, 1, info )
884  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
885  infot = 5
886  CALL sggev3( 'V', 'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1,
887  $ w, 1, info )
888  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
889  infot = 7
890  CALL sggev3( 'V', 'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1,
891  $ w, 1, info )
892  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
893  infot = 12
894  CALL sggev3( 'N', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1,
895  $ w, 1, info )
896  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
897  infot = 12
898  CALL sggev3( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2,
899  $ w, 1, info )
900  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
901  infot = 14
902  CALL sggev3( 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0,
903  $ w, 1, info )
904  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
905  infot = 14
906  CALL sggev3( 'V', 'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1,
907  $ w, 1, info )
908  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
909  infot = 16
910  CALL sggev3( 'V', 'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
911  $ w, 1, info )
912  CALL chkxer( 'SGGEV3 ', infot, nout, lerr, ok )
913  nt = nt + 10
914 *
915 * SGGEVX
916 *
917  srnamt = 'SGGEVX'
918  infot = 1
919  CALL sggevx( '/', 'N', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
920  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
921  $ w, 1, iw, bw, info )
922  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
923  infot = 2
924  CALL sggevx( 'N', '/', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
925  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
926  $ w, 1, iw, bw, info )
927  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
928  infot = 3
929  CALL sggevx( 'N', 'N', '/', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
930  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
931  $ w, 1, iw, bw, info )
932  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
933  infot = 4
934  CALL sggevx( 'N', 'N', 'N', '/', 1, a, 1, b, 1, r1, r2, r3, q,
935  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
936  $ w, 1, iw, bw, info )
937  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
938  infot = 5
939  CALL sggevx( 'N', 'N', 'N', 'N', -1, a, 1, b, 1, r1, r2, r3, q,
940  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
941  $ w, 1, iw, bw, info )
942  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
943  infot = 7
944  CALL sggevx( 'N', 'N', 'N', 'N', 1, a, 0, b, 1, r1, r2, r3, q,
945  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
946  $ w, 1, iw, bw, info )
947  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
948  infot = 9
949  CALL sggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 0, r1, r2, r3, q,
950  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
951  $ w, 1, iw, bw, info )
952  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
953  infot = 14
954  CALL sggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
955  $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
956  $ w, 1, iw, bw, info )
957  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
958  infot = 14
959  CALL sggevx( 'N', 'V', 'N', 'N', 2, a, 2, b, 2, r1, r2, r3, q,
960  $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
961  $ w, 1, iw, bw, info )
962  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
963  infot = 16
964  CALL sggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 1, r1, r2, r3, q,
965  $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
966  $ w, 1, iw, bw, info )
967  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
968  infot = 16
969  CALL sggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q,
970  $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
971  $ w, 1, iw, bw, info )
972  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
973  infot = 26
974  CALL sggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, r1, r2, r3, q,
975  $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
976  $ w, 1, iw, bw, info )
977  CALL chkxer( 'SGGEVX', infot, nout, lerr, ok )
978  nt = nt + 12
979 *
980 * STGEXC
981 *
982  srnamt = 'STGEXC'
983  infot = 3
984  CALL stgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
985  $ ilst, w, 1, info )
986  CALL chkxer( 'STGEXC', infot, nout, lerr, ok )
987  infot = 5
988  CALL stgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
989  $ ilst, w, 1, info )
990  CALL chkxer( 'STGEXC', infot, nout, lerr, ok )
991  infot = 7
992  CALL stgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
993  $ ilst, w, 1, info )
994  CALL chkxer( 'STGEXC', infot, nout, lerr, ok )
995  infot = 9
996  CALL stgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
997  $ ilst, w, 1, info )
998  CALL chkxer( 'STGEXC', infot, nout, lerr, ok )
999  infot = 9
1000  CALL stgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1001  $ ilst, w, 1, info )
1002  CALL chkxer( 'STGEXC', infot, nout, lerr, ok )
1003  infot = 11
1004  CALL stgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1005  $ ilst, w, 1, info )
1006  CALL chkxer( 'STGEXC', infot, nout, lerr, ok )
1007  infot = 11
1008  CALL stgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1009  $ ilst, w, 1, info )
1010  CALL chkxer( 'STGEXC', infot, nout, lerr, ok )
1011  infot = 15
1012  CALL stgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 1, ifst,
1013  $ ilst, w, 0, info )
1014  CALL chkxer( 'STGEXC', infot, nout, lerr, ok )
1015  nt = nt + 8
1016 *
1017 * STGSEN
1018 *
1019  srnamt = 'STGSEN'
1020  infot = 1
1021  CALL stgsen( -1, .true., .true., sel, 1, a, 1, b, 1, r1, r2,
1022  $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1023  $ info )
1024  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1025  infot = 5
1026  CALL stgsen( 1, .true., .true., sel, -1, a, 1, b, 1, r1, r2,
1027  $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1028  $ info )
1029  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1030  infot = 7
1031  CALL stgsen( 1, .true., .true., sel, 1, a, 0, b, 1, r1, r2, r3,
1032  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1033  $ info )
1034  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1035  infot = 9
1036  CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 0, r1, r2, r3,
1037  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1038  $ info )
1039  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1040  infot = 14
1041  CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1042  $ q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1043  $ info )
1044  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1045  infot = 16
1046  CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1047  $ q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1048  $ info )
1049  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1050  infot = 22
1051  CALL stgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1052  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1053  $ info )
1054  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1055  infot = 22
1056  CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1057  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1058  $ info )
1059  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1060  infot = 22
1061  CALL stgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1062  $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1063  $ info )
1064  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1065  infot = 24
1066  CALL stgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1067  $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
1068  $ info )
1069  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1070  infot = 24
1071  CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1072  $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
1073  $ info )
1074  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1075  infot = 24
1076  CALL stgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1077  $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 1,
1078  $ info )
1079  CALL chkxer( 'STGSEN', infot, nout, lerr, ok )
1080  nt = nt + 12
1081 *
1082 * STGSNA
1083 *
1084  srnamt = 'STGSNA'
1085  infot = 1
1086  CALL stgsna( '/', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1087  $ 1, m, w, 1, iw, info )
1088  CALL chkxer( 'STGSNA', infot, nout, lerr, ok )
1089  infot = 2
1090  CALL stgsna( 'B', '/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1091  $ 1, m, w, 1, iw, info )
1092  CALL chkxer( 'STGSNA', infot, nout, lerr, ok )
1093  infot = 4
1094  CALL stgsna( 'B', 'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1095  $ 1, m, w, 1, iw, info )
1096  CALL chkxer( 'STGSNA', infot, nout, lerr, ok )
1097  infot = 6
1098  CALL stgsna( 'B', 'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1099  $ 1, m, w, 1, iw, info )
1100  CALL chkxer( 'STGSNA', infot, nout, lerr, ok )
1101  infot = 8
1102  CALL stgsna( 'B', 'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1103  $ 1, m, w, 1, iw, info )
1104  CALL chkxer( 'STGSNA', infot, nout, lerr, ok )
1105  infot = 10
1106  CALL stgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1107  $ 1, m, w, 1, iw, info )
1108  CALL chkxer( 'STGSNA', infot, nout, lerr, ok )
1109  infot = 12
1110  CALL stgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1111  $ 1, m, w, 1, iw, info )
1112  CALL chkxer( 'STGSNA', infot, nout, lerr, ok )
1113  infot = 15
1114  CALL stgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1115  $ 0, m, w, 1, iw, info )
1116  CALL chkxer( 'STGSNA', infot, nout, lerr, ok )
1117  infot = 18
1118  CALL stgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1119  $ 1, m, w, 0, iw, info )
1120  CALL chkxer( 'STGSNA', infot, nout, lerr, ok )
1121  nt = nt + 9
1122 *
1123 * STGSYL
1124 *
1125  srnamt = 'STGSYL'
1126  infot = 1
1127  CALL stgsyl( '/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1128  $ scale, dif, w, 1, iw, info )
1129  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1130  infot = 2
1131  CALL stgsyl( 'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1132  $ scale, dif, w, 1, iw, info )
1133  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1134  infot = 3
1135  CALL stgsyl( 'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1136  $ scale, dif, w, 1, iw, info )
1137  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1138  infot = 4
1139  CALL stgsyl( 'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1140  $ scale, dif, w, 1, iw, info )
1141  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1142  infot = 6
1143  CALL stgsyl( 'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1144  $ scale, dif, w, 1, iw, info )
1145  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1146  infot = 8
1147  CALL stgsyl( 'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1148  $ scale, dif, w, 1, iw, info )
1149  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1150  infot = 10
1151  CALL stgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1152  $ scale, dif, w, 1, iw, info )
1153  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1154  infot = 12
1155  CALL stgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1156  $ scale, dif, w, 1, iw, info )
1157  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1158  infot = 14
1159  CALL stgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1160  $ scale, dif, w, 1, iw, info )
1161  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1162  infot = 16
1163  CALL stgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1164  $ scale, dif, w, 1, iw, info )
1165  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1166  infot = 20
1167  CALL stgsyl( 'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1168  $ scale, dif, w, 1, iw, info )
1169  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1170  infot = 20
1171  CALL stgsyl( 'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1172  $ scale, dif, w, 1, iw, info )
1173  CALL chkxer( 'STGSYL', infot, nout, lerr, ok )
1174  nt = nt + 12
1175  END IF
1176 *
1177 * Print a summary line.
1178 *
1179  IF( ok ) THEN
1180  WRITE( nout, fmt = 9999 )path, nt
1181  ELSE
1182  WRITE( nout, fmt = 9998 )path
1183  END IF
1184 *
1185  9999 FORMAT( 1x, a3, ' routines passed the tests of the error exits (',
1186  $ i3, ' tests done)' )
1187  9998 FORMAT( ' *** ', a3, ' routines failed the tests of the error ',
1188  $ 'exits ***' )
1189 *
1190  RETURN
1191 *
1192 * End of SERRGG
1193 *
1194  END
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
subroutine stgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, WORK, LWORK, INFO)
STGEXC
Definition: stgexc.f:220
subroutine stgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, INFO)
STGEVC
Definition: stgevc.f:295
subroutine shgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHAR, ALPHAI, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
SHGEQZ
Definition: shgeqz.f:304
subroutine sggevx(BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, ILO, IHI, LSCALE, RSCALE, ABNRM, BBNRM, RCONDE, RCONDV, WORK, LWORK, IWORK, BWORK, INFO)
SGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
Definition: sggevx.f:391
subroutine sggev(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO)
SGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
Definition: sggev.f:226
subroutine sgges(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, BWORK, INFO)
SGGES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE m...
Definition: sgges.f:284
subroutine sggev3(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO)
SGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices (...
Definition: sggev3.f:226
subroutine sgges3(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, BWORK, INFO)
SGGES3 computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
Definition: sgges3.f:282
subroutine sggesx(JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, LDA, B, LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, RCONDE, RCONDV, WORK, LWORK, IWORK, LIWORK, BWORK, INFO)
SGGESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
Definition: sggesx.f:365
subroutine sggsvd3(JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, LWORK, IWORK, INFO)
SGGSVD3 computes the singular value decomposition (SVD) for OTHER matrices
Definition: sggsvd3.f:349
subroutine stgsja(JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, NCYCLE, INFO)
STGSJA
Definition: stgsja.f:378
recursive subroutine sorcsd(JOBU1, JOBU2, JOBV1T, JOBV2T, TRANS, SIGNS, M, P, Q, X11, LDX11, X12, LDX12, X21, LDX21, X22, LDX22, THETA, U1, LDU1, U2, LDU2, V1T, LDV1T, V2T, LDV2T, WORK, LWORK, IWORK, INFO)
SORCSD
Definition: sorcsd.f:300
subroutine stgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
STGSNA
Definition: stgsna.f:381
subroutine stgsen(IJOB, WANTQ, WANTZ, SELECT, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, Q, LDQ, Z, LDZ, M, PL, PR, DIF, WORK, LWORK, IWORK, LIWORK, INFO)
STGSEN
Definition: stgsen.f:451
subroutine sggsvp3(JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, TAU, WORK, LWORK, INFO)
SGGSVP3
Definition: sggsvp3.f:272
subroutine sgghd3(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
SGGHD3
Definition: sgghd3.f:230
subroutine sgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
SGGHRD
Definition: sgghrd.f:207
subroutine sggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
SGGQRF
Definition: sggqrf.f:215
subroutine sggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
SGGRQF
Definition: sggrqf.f:214
subroutine sggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
SGGGLM
Definition: sggglm.f:185
subroutine sgglse(M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO)
SGGLSE solves overdetermined or underdetermined systems for OTHER matrices
Definition: sgglse.f:180
subroutine stgsyl(TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO)
STGSYL
Definition: stgsyl.f:299
subroutine serrgg(PATH, NUNIT)
SERRGG
Definition: serrgg.f:57