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