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