LAPACK  3.6.0
LAPACK: Linear Algebra PACKage
zerrgg.f
Go to the documentation of this file.
1 *> \brief \b ZERRGG
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 ZERRGG( 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 *> ZERRGG tests the error exits for ZGGES, ZGGESX, ZGGEV, ZGGEVX,
25 *> ZGGES3, ZGGEV3, ZGGGLM, ZGGHRD, ZGGLSE, ZGGQRF, ZGGRQF,
26 *> ZGGSVD3, ZGGSVP3, ZHGEQZ, ZTGEVC, ZTGEXC, ZTGSEN, ZTGSJA,
27 *> ZTGSNA, ZTGSYL, and ZUNCSD.
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 November 2015
54 *
55 *> \ingroup complex16_eig
56 *
57 * =====================================================================
58  SUBROUTINE zerrgg( PATH, NUNIT )
59 *
60 * -- LAPACK test routine (version 3.6.0) --
61 * -- LAPACK is a software package provided by Univ. of Tennessee, --
62 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
63 * November 2015
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  DOUBLE PRECISION ONE, ZERO
76  parameter( one = 1.0d+0, zero = 0.0d+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  DOUBLE PRECISION ANRM, BNRM, DIF, SCALE, TOLA, TOLB
83 * ..
84 * .. Local Arrays ..
85  LOGICAL BW( nmax ), SEL( nmax )
86  INTEGER IW( lw )
87  DOUBLE PRECISION LS( nmax ), R1( nmax ), R2( nmax ),
88  $ rce( nmax ), rcv( nmax ), rs( nmax ), rw( lw )
89  COMPLEX*16 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 LSAMEN, ZLCTES, ZLCTSX
96  EXTERNAL lsamen, zlctes, zlctsx
97 * ..
98 * .. External Subroutines ..
99  EXTERNAL chkxer, zgges, zggesx, zggev, zggevx, zggglm,
100  $ zgghrd, zgglse, zggqrf, zggrqf,
103  $ zggsvd3, zggsvp3
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.0d0
135  tolb = 1.0d0
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 * ZGGHRD
146 *
147  srnamt = 'ZGGHRD'
148  infot = 1
149  CALL zgghrd( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
150  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
151  infot = 2
152  CALL zgghrd( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
153  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
154  infot = 3
155  CALL zgghrd( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
156  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
157  infot = 4
158  CALL zgghrd( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
159  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
160  infot = 5
161  CALL zgghrd( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
162  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
163  infot = 7
164  CALL zgghrd( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
165  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
166  infot = 9
167  CALL zgghrd( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
168  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
169  infot = 11
170  CALL zgghrd( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
171  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
172  infot = 13
173  CALL zgghrd( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
174  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
175  nt = nt + 9
176 *
177 * ZGGHD3
178 *
179  srnamt = 'ZGGHD3'
180  infot = 1
181  CALL zgghd3( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
182  $ info )
183  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
184  infot = 2
185  CALL zgghd3( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
186  $ info )
187  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
188  infot = 3
189  CALL zgghd3( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
190  $ info )
191  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
192  infot = 4
193  CALL zgghd3( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
194  $ info )
195  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
196  infot = 5
197  CALL zgghd3( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
198  $ info )
199  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
200  infot = 7
201  CALL zgghd3( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
202  $ info )
203  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
204  infot = 9
205  CALL zgghd3( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
206  $ info )
207  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
208  infot = 11
209  CALL zgghd3( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
210  $ info )
211  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
212  infot = 13
213  CALL zgghd3( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
214  $ info )
215  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
216  nt = nt + 9
217 *
218 * ZHGEQZ
219 *
220  srnamt = 'ZHGEQZ'
221  infot = 1
222  CALL zhgeqz( '/', 'N', 'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
223  $ q, 1, z, 1, w, 1, rw, info )
224  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
225  infot = 2
226  CALL zhgeqz( 'E', '/', 'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
227  $ q, 1, z, 1, w, 1, rw, info )
228  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
229  infot = 3
230  CALL zhgeqz( 'E', 'N', '/', 0, 1, 0, a, 1, b, 1, alpha, beta,
231  $ q, 1, z, 1, w, 1, rw, info )
232  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
233  infot = 4
234  CALL zhgeqz( 'E', 'N', 'N', -1, 0, 0, a, 1, b, 1, alpha, beta,
235  $ q, 1, z, 1, w, 1, rw, info )
236  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
237  infot = 5
238  CALL zhgeqz( 'E', 'N', 'N', 0, 0, 0, a, 1, b, 1, alpha, beta,
239  $ q, 1, z, 1, w, 1, rw, info )
240  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
241  infot = 6
242  CALL zhgeqz( 'E', 'N', 'N', 0, 1, 1, a, 1, b, 1, alpha, beta,
243  $ q, 1, z, 1, w, 1, rw, info )
244  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
245  infot = 8
246  CALL zhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
247  $ q, 1, z, 1, w, 1, rw, info )
248  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
249  infot = 10
250  CALL zhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
251  $ q, 1, z, 1, w, 1, rw, info )
252  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
253  infot = 14
254  CALL zhgeqz( 'E', 'V', 'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
255  $ q, 1, z, 1, w, 1, rw, info )
256  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
257  infot = 16
258  CALL zhgeqz( 'E', 'N', 'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
259  $ q, 1, z, 1, w, 1, rw, info )
260  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
261  nt = nt + 10
262 *
263 * ZTGEVC
264 *
265  srnamt = 'ZTGEVC'
266  infot = 1
267  CALL ztgevc( '/', 'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
268  $ rw, info )
269  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
270  infot = 2
271  CALL ztgevc( 'R', '/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
272  $ rw, info )
273  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
274  infot = 4
275  CALL ztgevc( 'R', 'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
276  $ w, rw, info )
277  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
278  infot = 6
279  CALL ztgevc( 'R', 'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
280  $ rw, info )
281  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
282  infot = 8
283  CALL ztgevc( 'R', 'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
284  $ rw, info )
285  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
286  infot = 10
287  CALL ztgevc( 'L', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
288  $ rw, info )
289  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
290  infot = 12
291  CALL ztgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
292  $ rw, info )
293  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
294  infot = 13
295  CALL ztgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
296  $ rw, info )
297  CALL chkxer( 'ZTGEVC', 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 * ZGGSVD3
305 *
306  srnamt = 'ZGGSVD3'
307  infot = 1
308  CALL zggsvd3( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
309  $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, lwork,
310  $ info )
311  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
312  infot = 2
313  CALL zggsvd3( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
314  $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, lwork,
315  $ info )
316  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
317  infot = 3
318  CALL zggsvd3( 'N', 'N', '/', 0, 0, 0, dummyk, dummyl, a, 1, b,
319  $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, lwork,
320  $ info )
321  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
322  infot = 4
323  CALL zggsvd3( 'N', 'N', 'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
324  $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, lwork,
325  $ info )
326  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
327  infot = 5
328  CALL zggsvd3( 'N', 'N', 'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
329  $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, lwork,
330  $ info )
331  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
332  infot = 6
333  CALL zggsvd3( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
334  $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, lwork,
335  $ info )
336  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
337  infot = 10
338  CALL zggsvd3( 'N', 'N', 'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
339  $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, lwork,
340  $ info )
341  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
342  infot = 12
343  CALL zggsvd3( 'N', 'N', 'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
344  $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, lwork,
345  $ info )
346  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
347  infot = 16
348  CALL zggsvd3( 'U', 'N', 'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
349  $ 2, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, lwork,
350  $ info )
351  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
352  infot = 18
353  CALL zggsvd3( 'N', 'V', 'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
354  $ 2, r1, r2, u, 2, v, 1, q, 1, w, rw, iw, lwork,
355  $ info )
356  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
357  infot = 20
358  CALL zggsvd3( 'N', 'N', 'Q', 2, 2, 2, dummyk, dummyl, a, 2, b,
359  $ 2, r1, r2, u, 2, v, 2, q, 1, w, rw, iw, lwork,
360  $ info )
361  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
362  nt = nt + 11
363 *
364 * ZGGSVP3
365 *
366  srnamt = 'ZGGSVP3'
367  infot = 1
368  CALL zggsvp3( '/', '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( 'ZGGSVP3', infot, nout, lerr, ok )
372  infot = 2
373  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
377  infot = 3
378  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
382  infot = 4
383  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
387  infot = 5
388  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
392  infot = 6
393  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
397  infot = 8
398  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
402  infot = 10
403  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
407  infot = 16
408  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
412  infot = 18
413  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
417  infot = 20
418  CALL zggsvp3( '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( 'ZGGSVP3', infot, nout, lerr, ok )
422  nt = nt + 11
423 *
424 * ZTGSJA
425 *
426  srnamt = 'ZTGSJA'
427  infot = 1
428  CALL ztgsja( '/', '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( 'ZTGSJA', infot, nout, lerr, ok )
432  infot = 2
433  CALL ztgsja( '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( 'ZTGSJA', infot, nout, lerr, ok )
437  infot = 3
438  CALL ztgsja( '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( 'ZTGSJA', infot, nout, lerr, ok )
442  infot = 4
443  CALL ztgsja( '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( 'ZTGSJA', infot, nout, lerr, ok )
447  infot = 5
448  CALL ztgsja( '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( 'ZTGSJA', infot, nout, lerr, ok )
452  infot = 6
453  CALL ztgsja( '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( 'ZTGSJA', infot, nout, lerr, ok )
457  infot = 10
458  CALL ztgsja( '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( 'ZTGSJA', infot, nout, lerr, ok )
462  infot = 12
463  CALL ztgsja( '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( 'ZTGSJA', infot, nout, lerr, ok )
467  infot = 18
468  CALL ztgsja( '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( 'ZTGSJA', infot, nout, lerr, ok )
472  infot = 20
473  CALL ztgsja( '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( 'ZTGSJA', infot, nout, lerr, ok )
477  infot = 22
478  CALL ztgsja( '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( 'ZTGSJA', 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 * ZGGGLM
489 *
490  srnamt = 'ZGGGLM'
491  infot = 1
492  CALL zggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
493  $ info )
494  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
495  infot = 2
496  CALL zggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
497  $ info )
498  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
499  infot = 2
500  CALL zggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
501  $ info )
502  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
503  infot = 3
504  CALL zggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
505  $ info )
506  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
507  infot = 3
508  CALL zggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
509  $ info )
510  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
511  infot = 5
512  CALL zggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
513  $ info )
514  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
515  infot = 7
516  CALL zggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
517  $ info )
518  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
519  infot = 12
520  CALL zggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
521  $ info )
522  CALL chkxer( 'ZGGGLM', 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 * ZGGLSE
530 *
531  srnamt = 'ZGGLSE'
532  infot = 1
533  CALL zgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
534  $ info )
535  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
536  infot = 2
537  CALL zgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
538  $ info )
539  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
540  infot = 3
541  CALL zgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
542  $ info )
543  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
544  infot = 3
545  CALL zgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
546  $ info )
547  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
548  infot = 3
549  CALL zgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
550  $ info )
551  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
552  infot = 5
553  CALL zgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
554  $ info )
555  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
556  infot = 7
557  CALL zgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
558  $ info )
559  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
560  infot = 12
561  CALL zgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
562  $ info )
563  CALL chkxer( 'ZGGLSE', 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 * ZUNCSD
571 *
572  srnamt = 'ZUNCSD'
573  infot = 7
574  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
575  $ -1, 0, 0, a, 1, a,
576  $ 1, a, 1, a, 1, a,
577  $ a, 1, a, 1, a, 1, a,
578  $ 1, w, lw, rw, lw, iw, info )
579  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
580  infot = 8
581  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
582  $ 1, -1, 0, a, 1, a,
583  $ 1, a, 1, a, 1, a,
584  $ a, 1, a, 1, a, 1, a,
585  $ 1, w, lw, rw, lw, iw, info )
586  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
587  infot = 9
588  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
589  $ 1, 1, -1, a, 1, a,
590  $ 1, a, 1, a, 1, a,
591  $ a, 1, a, 1, a, 1, a,
592  $ 1, w, lw, rw, lw, iw, info )
593  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
594  infot = 11
595  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
596  $ 1, 1, 1, a, -1, a,
597  $ 1, a, 1, a, 1, a,
598  $ a, 1, a, 1, a, 1, a,
599  $ 1, w, lw, rw, lw, iw, info )
600  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
601  infot = 20
602  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
603  $ 1, 1, 1, a, 1, a,
604  $ 1, a, 1, a, 1, a,
605  $ a, -1, a, 1, a, 1, a,
606  $ 1, w, lw, rw, lw, iw, info )
607  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
608  infot = 22
609  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
610  $ 1, 1, 1, a, 1, a,
611  $ 1, a, 1, a, 1, a,
612  $ a, 1, a, -1, a, 1, a,
613  $ 1, w, lw, rw, lw, iw, info )
614  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
615  infot = 24
616  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
617  $ 1, 1, 1, a, 1, a,
618  $ 1, a, 1, a, 1, a,
619  $ a, 1, a, 1, a, -1, a,
620  $ 1, w, lw, rw, lw, iw, info )
621  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
622  infot = 26
623  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
624  $ 1, 1, 1, a, 1, a,
625  $ 1, a, 1, a, 1, a,
626  $ a, 1, a, 1, a, 1, a,
627  $ -1, w, lw, rw, lw, iw, info )
628  CALL chkxer( 'ZUNCSD', 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 * ZGGQRF
636 *
637  srnamt = 'ZGGQRF'
638  infot = 1
639  CALL zggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
640  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
641  infot = 2
642  CALL zggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
643  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
644  infot = 3
645  CALL zggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
646  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
647  infot = 5
648  CALL zggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
649  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
650  infot = 8
651  CALL zggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
652  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
653  infot = 11
654  CALL zggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
655  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
656  nt = nt + 6
657 *
658 * ZGGRQF
659 *
660  srnamt = 'ZGGRQF'
661  infot = 1
662  CALL zggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
663  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
664  infot = 2
665  CALL zggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
666  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
667  infot = 3
668  CALL zggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
669  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
670  infot = 5
671  CALL zggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
672  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
673  infot = 8
674  CALL zggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
675  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
676  infot = 11
677  CALL zggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
678  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
679  nt = nt + 6
680 *
681 * Test error exits for the ZGS, ZGV, ZGX, and ZXV paths.
682 *
683  ELSE IF( lsamen( 3, path, 'ZGS' ) .OR.
684  $ lsamen( 3, path, 'ZGV' ) .OR.
685  $ lsamen( 3, path, 'ZGX' ) .OR. lsamen( 3, path, 'ZXV' ) )
686  $ THEN
687 *
688 * ZGGES
689 *
690  srnamt = 'ZGGES '
691  infot = 1
692  CALL zgges( '/', 'N', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
693  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
694  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
695  infot = 2
696  CALL zgges( 'N', '/', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
697  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
698  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
699  infot = 3
700  CALL zgges( 'N', 'V', '/', zlctes, 1, a, 1, b, 1, sdim, alpha,
701  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
702  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
703  infot = 5
704  CALL zgges( 'N', 'V', 'S', zlctes, -1, a, 1, b, 1, sdim, alpha,
705  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
706  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
707  infot = 7
708  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 0, b, 1, sdim, alpha,
709  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
710  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
711  infot = 9
712  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 1, b, 0, sdim, alpha,
713  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
714  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
715  infot = 14
716  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
717  $ beta, q, 0, u, 1, w, 1, rw, bw, info )
718  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
719  infot = 14
720  CALL zgges( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
721  $ beta, q, 1, u, 2, w, 1, rw, bw, info )
722  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
723  infot = 16
724  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
725  $ beta, q, 1, u, 0, w, 1, rw, bw, info )
726  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
727  infot = 16
728  CALL zgges( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
729  $ beta, q, 2, u, 1, w, 1, rw, bw, info )
730  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
731  infot = 18
732  CALL zgges( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
733  $ beta, q, 2, u, 2, w, 1, rw, bw, info )
734  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
735  nt = nt + 11
736 *
737 * ZGGES3
738 *
739  srnamt = 'ZGGES3'
740  infot = 1
741  CALL zgges3( '/', 'N', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
742  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
743  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
744  infot = 2
745  CALL zgges3( 'N', '/', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
746  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
747  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
748  infot = 3
749  CALL zgges3( 'N', 'V', '/', zlctes, 1, a, 1, b, 1, sdim, alpha,
750  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
751  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
752  infot = 5
753  CALL zgges3( 'N', 'V', 'S', zlctes, -1, a, 1, b, 1, sdim,
754  $ alpha, beta, q, 1, u, 1, w, 1, rw, bw, info )
755  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
756  infot = 7
757  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 0, b, 1, sdim, alpha,
758  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
759  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
760  infot = 9
761  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 1, b, 0, sdim, alpha,
762  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
763  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
764  infot = 14
765  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
766  $ beta, q, 0, u, 1, w, 1, rw, bw, info )
767  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
768  infot = 14
769  CALL zgges3( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
770  $ beta, q, 1, u, 2, w, 1, rw, bw, info )
771  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
772  infot = 16
773  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
774  $ beta, q, 1, u, 0, w, 1, rw, bw, info )
775  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
776  infot = 16
777  CALL zgges3( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
778  $ beta, q, 2, u, 1, w, 1, rw, bw, info )
779  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
780  infot = 18
781  CALL zgges3( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
782  $ beta, q, 2, u, 2, w, 1, rw, bw, info )
783  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
784  nt = nt + 11
785 *
786 * ZGGESX
787 *
788  srnamt = 'ZGGESX'
789  infot = 1
790  CALL zggesx( '/', 'N', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
794  infot = 2
795  CALL zggesx( 'N', '/', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
799  infot = 3
800  CALL zggesx( 'V', 'V', '/', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
804  infot = 5
805  CALL zggesx( 'V', 'V', 'S', zlctsx, '/', 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( 'ZGGESX', infot, nout, lerr, ok )
809  infot = 6
810  CALL zggesx( 'V', 'V', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
814  infot = 8
815  CALL zggesx( 'V', 'V', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
819  infot = 10
820  CALL zggesx( 'V', 'V', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
824  infot = 15
825  CALL zggesx( 'V', 'V', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
829  infot = 15
830  CALL zggesx( 'V', 'V', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
834  infot = 17
835  CALL zggesx( 'V', 'V', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
839  infot = 17
840  CALL zggesx( 'V', 'V', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
844  infot = 21
845  CALL zggesx( 'V', 'V', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
849  infot = 24
850  CALL zggesx( 'V', 'V', 'S', zlctsx, '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( 'ZGGESX', infot, nout, lerr, ok )
854  nt = nt + 13
855 *
856 * ZGGEV
857 *
858  srnamt = 'ZGGEV '
859  infot = 1
860  CALL zggev( '/', 'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
861  $ w, 1, rw, info )
862  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
863  infot = 2
864  CALL zggev( 'N', '/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
865  $ w, 1, rw, info )
866  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
867  infot = 3
868  CALL zggev( 'V', 'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
869  $ w, 1, rw, info )
870  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
871  infot = 5
872  CALL zggev( 'V', 'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
873  $ w, 1, rw, info )
874  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
875  infot = 7
876  CALL zggev( 'V', 'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
877  $ w, 1, rw, info )
878  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
879  infot = 11
880  CALL zggev( 'N', 'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
881  $ w, 1, rw, info )
882  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
883  infot = 11
884  CALL zggev( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
885  $ w, 1, rw, info )
886  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
887  infot = 13
888  CALL zggev( 'V', 'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
889  $ w, 1, rw, info )
890  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
891  infot = 13
892  CALL zggev( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
893  $ w, 1, rw, info )
894  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
895  infot = 15
896  CALL zggev( 'V', 'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
897  $ w, 1, rw, info )
898  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
899  nt = nt + 10
900 *
901 * ZGGEV3
902 *
903  srnamt = 'ZGGEV3'
904  infot = 1
905  CALL zggev3( '/', 'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
906  $ w, 1, rw, info )
907  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
908  infot = 2
909  CALL zggev3( 'N', '/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
910  $ w, 1, rw, info )
911  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
912  infot = 3
913  CALL zggev3( 'V', 'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
914  $ w, 1, rw, info )
915  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
916  infot = 5
917  CALL zggev3( 'V', 'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
918  $ w, 1, rw, info )
919  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
920  infot = 7
921  CALL zggev3( 'V', 'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
922  $ w, 1, rw, info )
923  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
924  infot = 11
925  CALL zggev3( 'N', 'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
926  $ w, 1, rw, info )
927  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
928  infot = 11
929  CALL zggev3( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
930  $ w, 1, rw, info )
931  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
932  infot = 13
933  CALL zggev3( 'V', 'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
934  $ w, 1, rw, info )
935  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
936  infot = 13
937  CALL zggev3( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
938  $ w, 1, rw, info )
939  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
940  infot = 15
941  CALL zggev3( 'V', 'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
942  $ w, 1, rw, info )
943  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
944  nt = nt + 10
945 *
946 * ZGGEVX
947 *
948  srnamt = 'ZGGEVX'
949  infot = 1
950  CALL zggevx( '/', '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( 'ZGGEVX', infot, nout, lerr, ok )
954  infot = 2
955  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
959  infot = 3
960  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
964  infot = 4
965  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
969  infot = 5
970  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
974  infot = 7
975  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
979  infot = 9
980  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
984  infot = 13
985  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
989  infot = 13
990  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
994  infot = 15
995  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
999  infot = 15
1000  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
1004  infot = 25
1005  CALL zggevx( '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( 'ZGGEVX', infot, nout, lerr, ok )
1009  nt = nt + 12
1010 *
1011 * ZTGEXC
1012 *
1013  srnamt = 'ZTGEXC'
1014  infot = 3
1015  CALL ztgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1016  $ ilst, info )
1017  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1018  infot = 5
1019  CALL ztgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1020  $ ilst, info )
1021  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1022  infot = 7
1023  CALL ztgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1024  $ ilst, info )
1025  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1026  infot = 9
1027  CALL ztgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1028  $ ilst, info )
1029  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1030  infot = 9
1031  CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1032  $ ilst, info )
1033  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1034  infot = 11
1035  CALL ztgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1036  $ ilst, info )
1037  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1038  infot = 11
1039  CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1040  $ ilst, info )
1041  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1042  nt = nt + 7
1043 *
1044 * ZTGSEN
1045 *
1046  srnamt = 'ZTGSEN'
1047  infot = 1
1048  CALL ztgsen( -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( 'ZTGSEN', infot, nout, lerr, ok )
1052  infot = 5
1053  CALL ztgsen( 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( 'ZTGSEN', infot, nout, lerr, ok )
1057  infot = 7
1058  CALL ztgsen( 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( 'ZTGSEN', infot, nout, lerr, ok )
1062  infot = 9
1063  CALL ztgsen( 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( 'ZTGSEN', infot, nout, lerr, ok )
1067  infot = 13
1068  CALL ztgsen( 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( 'ZTGSEN', infot, nout, lerr, ok )
1072  infot = 15
1073  CALL ztgsen( 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( 'ZTGSEN', infot, nout, lerr, ok )
1077  infot = 21
1078  CALL ztgsen( 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( 'ZTGSEN', infot, nout, lerr, ok )
1082  infot = 23
1083  CALL ztgsen( 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( 'ZTGSEN', infot, nout, lerr, ok )
1087  infot = 23
1088  CALL ztgsen( 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( 'ZTGSEN', infot, nout, lerr, ok )
1092  infot = 23
1093  CALL ztgsen( 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( 'ZTGSEN', infot, nout, lerr, ok )
1097  nt = nt + 11
1098 *
1099 * ZTGSNA
1100 *
1101  srnamt = 'ZTGSNA'
1102  infot = 1
1103  CALL ztgsna( '/', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1104  $ 1, m, w, 1, iw, info )
1105  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1106  infot = 2
1107  CALL ztgsna( 'B', '/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1108  $ 1, m, w, 1, iw, info )
1109  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1110  infot = 4
1111  CALL ztgsna( 'B', 'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1112  $ 1, m, w, 1, iw, info )
1113  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1114  infot = 6
1115  CALL ztgsna( 'B', 'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1116  $ 1, m, w, 1, iw, info )
1117  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1118  infot = 8
1119  CALL ztgsna( 'B', 'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1120  $ 1, m, w, 1, iw, info )
1121  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1122  infot = 10
1123  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1124  $ 1, m, w, 1, iw, info )
1125  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1126  infot = 12
1127  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1128  $ 1, m, w, 1, iw, info )
1129  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1130  infot = 15
1131  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1132  $ 0, m, w, 1, iw, info )
1133  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1134  infot = 18
1135  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1136  $ 1, m, w, 0, iw, info )
1137  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1138  nt = nt + 9
1139 *
1140 * ZTGSYL
1141 *
1142  srnamt = 'ZTGSYL'
1143  infot = 1
1144  CALL ztgsyl( '/', 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( 'ZTGSYL', infot, nout, lerr, ok )
1147  infot = 2
1148  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1151  infot = 3
1152  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1155  infot = 4
1156  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1159  infot = 6
1160  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1163  infot = 8
1164  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1167  infot = 10
1168  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1171  infot = 12
1172  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1175  infot = 14
1176  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1179  infot = 16
1180  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1183  infot = 20
1184  CALL ztgsyl( '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( 'ZTGSYL', infot, nout, lerr, ok )
1187  infot = 20
1188  CALL ztgsyl( '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( 'ZTGSYL', 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 ZERRGG
1210 *
1211  END
subroutine zggev3(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO)
ZGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices ...
Definition: zggev3.f:218
subroutine ztgsen(IJOB, WANTQ, WANTZ, SELECT, N, A, LDA, B, LDB, ALPHA, BETA, Q, LDQ, Z, LDZ, M, PL, PR, DIF, WORK, LWORK, IWORK, LIWORK, INFO)
ZTGSEN
Definition: ztgsen.f:435
subroutine zggsvd3(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)
ZGGSVD3 computes the singular value decomposition (SVD) for OTHER matrices
Definition: zggsvd3.f:355
subroutine zggsvp3(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)
ZGGSVP3
Definition: zggsvp3.f:280
subroutine ztgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
ZTGSNA
Definition: ztgsna.f:313
subroutine zggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
ZGGGLM
Definition: zggglm.f:187
recursive subroutine zuncsd(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)
ZUNCSD
Definition: zuncsd.f:322
subroutine zggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGQRF
Definition: zggqrf.f:217
subroutine zerrgg(PATH, NUNIT)
ZERRGG
Definition: zerrgg.f:59
subroutine zggev(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO)
ZGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices ...
Definition: zggev.f:219
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3199
subroutine zgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
ZGGHRD
Definition: zgghrd.f:206
subroutine zggesx(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)
ZGGESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE...
Definition: zggesx.f:332
subroutine zgghd3(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
ZGGHD3
Definition: zgghd3.f:229
subroutine ztgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
ZTGEVC
Definition: ztgevc.f:221
subroutine zggevx(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)
ZGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices ...
Definition: zggevx.f:376
subroutine ztgsyl(TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO)
ZTGSYL
Definition: ztgsyl.f:297
subroutine zgges3(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, BWORK, INFO)
ZGGES3 computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE...
Definition: zgges3.f:271
subroutine ztgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, INFO)
ZTGEXC
Definition: ztgexc.f:202
subroutine ztgsja(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)
ZTGSJA
Definition: ztgsja.f:381
subroutine zgges(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, BWORK, INFO)
ZGGES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
Definition: zgges.f:272
subroutine zhgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHA, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, RWORK, INFO)
ZHGEQZ
Definition: zhgeqz.f:286
subroutine zggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGRQF
Definition: zggrqf.f:216
subroutine zgglse(M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO)
ZGGLSE solves overdetermined or underdetermined systems for OTHER matrices
Definition: zgglse.f:182