LAPACK  3.10.1
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 *> \ingroup complex16_eig
54 *
55 * =====================================================================
56  SUBROUTINE zerrgg( 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  DOUBLE PRECISION ONE, ZERO
73  parameter( one = 1.0d+0, zero = 0.0d+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  DOUBLE PRECISION ANRM, BNRM, DIF, SCALE, TOLA, TOLB
80 * ..
81 * .. Local Arrays ..
82  LOGICAL BW( NMAX ), SEL( NMAX )
83  INTEGER IW( LW ), IDUM(NMAX)
84  DOUBLE PRECISION LS( NMAX ), R1( NMAX ), R2( NMAX ),
85  $ RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW )
86  COMPLEX*16 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 LSAMEN, ZLCTES, ZLCTSX
93  EXTERNAL lsamen, zlctes, zlctsx
94 * ..
95 * .. External Subroutines ..
96  EXTERNAL chkxer, zgges, zggesx, zggev, zggevx, zggglm,
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.0d0
132  tolb = 1.0d0
133  ifst = 1
134  ilst = 1
135  nt = 0
136  lwork = 1
137 *
138 * Call XLAENV to set the parameters used in CLAQZ0
139 *
140  CALL xlaenv( 12, 10 )
141  CALL xlaenv( 13, 12 )
142  CALL xlaenv( 14, 13 )
143  CALL xlaenv( 15, 2 )
144  CALL xlaenv( 17, 10 )
145 *
146 * Test error exits for the GG path.
147 *
148  IF( lsamen( 2, c2, 'GG' ) ) THEN
149 *
150 * ZGGHRD
151 *
152  srnamt = 'ZGGHRD'
153  infot = 1
154  CALL zgghrd( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
155  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
156  infot = 2
157  CALL zgghrd( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
158  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
159  infot = 3
160  CALL zgghrd( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
161  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
162  infot = 4
163  CALL zgghrd( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
164  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
165  infot = 5
166  CALL zgghrd( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
167  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
168  infot = 7
169  CALL zgghrd( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
170  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
171  infot = 9
172  CALL zgghrd( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
173  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
174  infot = 11
175  CALL zgghrd( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
176  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
177  infot = 13
178  CALL zgghrd( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
179  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
180  nt = nt + 9
181 *
182 * ZGGHD3
183 *
184  srnamt = 'ZGGHD3'
185  infot = 1
186  CALL zgghd3( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
187  $ info )
188  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
189  infot = 2
190  CALL zgghd3( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
191  $ info )
192  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
193  infot = 3
194  CALL zgghd3( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
195  $ info )
196  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
197  infot = 4
198  CALL zgghd3( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
199  $ info )
200  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
201  infot = 5
202  CALL zgghd3( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
203  $ info )
204  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
205  infot = 7
206  CALL zgghd3( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
207  $ info )
208  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
209  infot = 9
210  CALL zgghd3( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
211  $ info )
212  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
213  infot = 11
214  CALL zgghd3( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
215  $ info )
216  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
217  infot = 13
218  CALL zgghd3( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
219  $ info )
220  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
221  nt = nt + 9
222 *
223 * ZHGEQZ
224 *
225  srnamt = 'ZHGEQZ'
226  infot = 1
227  CALL zhgeqz( '/', 'N', 'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
228  $ q, 1, z, 1, w, 1, rw, info )
229  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
230  infot = 2
231  CALL zhgeqz( 'E', '/', 'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
232  $ q, 1, z, 1, w, 1, rw, info )
233  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
234  infot = 3
235  CALL zhgeqz( 'E', 'N', '/', 0, 1, 0, a, 1, b, 1, alpha, beta,
236  $ q, 1, z, 1, w, 1, rw, info )
237  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
238  infot = 4
239  CALL zhgeqz( 'E', 'N', 'N', -1, 0, 0, a, 1, b, 1, alpha, beta,
240  $ q, 1, z, 1, w, 1, rw, info )
241  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
242  infot = 5
243  CALL zhgeqz( 'E', 'N', 'N', 0, 0, 0, a, 1, b, 1, alpha, beta,
244  $ q, 1, z, 1, w, 1, rw, info )
245  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
246  infot = 6
247  CALL zhgeqz( 'E', 'N', 'N', 0, 1, 1, a, 1, b, 1, alpha, beta,
248  $ q, 1, z, 1, w, 1, rw, info )
249  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
250  infot = 8
251  CALL zhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
252  $ q, 1, z, 1, w, 1, rw, info )
253  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
254  infot = 10
255  CALL zhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
256  $ q, 1, z, 1, w, 1, rw, info )
257  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
258  infot = 14
259  CALL zhgeqz( 'E', 'V', 'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
260  $ q, 1, z, 1, w, 1, rw, info )
261  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
262  infot = 16
263  CALL zhgeqz( 'E', 'N', 'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
264  $ q, 1, z, 1, w, 1, rw, info )
265  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
266  nt = nt + 10
267 *
268 * ZTGEVC
269 *
270  srnamt = 'ZTGEVC'
271  infot = 1
272  CALL ztgevc( '/', 'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
273  $ rw, info )
274  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
275  infot = 2
276  CALL ztgevc( 'R', '/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
277  $ rw, info )
278  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
279  infot = 4
280  CALL ztgevc( 'R', 'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
281  $ w, rw, info )
282  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
283  infot = 6
284  CALL ztgevc( 'R', 'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
285  $ rw, info )
286  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
287  infot = 8
288  CALL ztgevc( 'R', 'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
289  $ rw, info )
290  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
291  infot = 10
292  CALL ztgevc( 'L', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
293  $ rw, info )
294  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
295  infot = 12
296  CALL ztgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
297  $ rw, info )
298  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
299  infot = 13
300  CALL ztgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
301  $ rw, info )
302  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
303  nt = nt + 8
304 *
305 * Test error exits for the GSV path.
306 *
307  ELSE IF( lsamen( 3, path, 'GSV' ) ) THEN
308 *
309 * ZGGSVD3
310 *
311  srnamt = 'ZGGSVD3'
312  infot = 1
313  CALL zggsvd3( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
314  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
315  $ info )
316  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
317  infot = 2
318  CALL zggsvd3( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
319  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
320  $ info )
321  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
322  infot = 3
323  CALL zggsvd3( 'N', 'N', '/', 0, 0, 0, dummyk, dummyl, a, 1, b,
324  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
325  $ info )
326  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
327  infot = 4
328  CALL zggsvd3( 'N', 'N', 'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
329  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
330  $ info )
331  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
332  infot = 5
333  CALL zggsvd3( 'N', 'N', 'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
334  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
335  $ info )
336  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
337  infot = 6
338  CALL zggsvd3( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
339  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
340  $ info )
341  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
342  infot = 10
343  CALL zggsvd3( 'N', 'N', 'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
344  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
345  $ info )
346  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
347  infot = 12
348  CALL zggsvd3( 'N', 'N', 'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
349  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
350  $ info )
351  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
352  infot = 16
353  CALL zggsvd3( 'U', 'N', 'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
354  $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
355  $ info )
356  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
357  infot = 18
358  CALL zggsvd3( 'N', 'V', 'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
359  $ 2, r1, r2, u, 2, v, 1, q, 1, w, lwork, rw, idum,
360  $ info )
361  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
362  infot = 20
363  CALL zggsvd3( 'N', 'N', 'Q', 2, 2, 2, dummyk, dummyl, a, 2, b,
364  $ 2, r1, r2, u, 2, v, 2, q, 1, w, lwork, rw, idum,
365  $ info )
366  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
367  nt = nt + 11
368 *
369 * ZGGSVP3
370 *
371  srnamt = 'ZGGSVP3'
372  infot = 1
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 = 2
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 = 3
383  CALL zggsvp3( 'N', 'N', '/', 0, 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 = 4
388  CALL zggsvp3( 'N', 'N', 'N', -1, 0, 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 = 5
393  CALL zggsvp3( 'N', 'N', 'N', 0, -1, 0, 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 = 6
398  CALL zggsvp3( 'N', 'N', 'N', 0, 0, -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 = 8
403  CALL zggsvp3( 'N', 'N', 'N', 2, 1, 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 = 10
408  CALL zggsvp3( 'N', 'N', 'N', 1, 2, 1, a, 1, b, 1, 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 = 16
413  CALL zggsvp3( 'U', 'N', 'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
414  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
415  $ lwork, info )
416  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
417  infot = 18
418  CALL zggsvp3( 'N', 'V', 'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
419  $ dummyk, dummyl, u, 2, v, 1, q, 1, iw, rw, tau, w,
420  $ lwork, info )
421  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
422  infot = 20
423  CALL zggsvp3( 'N', 'N', 'Q', 2, 2, 2, a, 2, b, 2, tola, tolb,
424  $ dummyk, dummyl, u, 2, v, 2, q, 1, iw, rw, tau, w,
425  $ lwork, info )
426  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
427  nt = nt + 11
428 *
429 * ZTGSJA
430 *
431  srnamt = 'ZTGSJA'
432  infot = 1
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 = 2
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 = 3
443  CALL ztgsja( 'N', 'N', '/', 0, 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 = 4
448  CALL ztgsja( 'N', 'N', 'N', -1, 0, 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 = 5
453  CALL ztgsja( 'N', 'N', 'N', 0, -1, 0, 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 = 6
458  CALL ztgsja( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, 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 = 10
463  CALL ztgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
464  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
465  $ ncycle, info )
466  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
467  infot = 12
468  CALL ztgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
469  $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
470  $ ncycle, info )
471  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
472  infot = 18
473  CALL ztgsja( 'U', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
474  $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
475  $ ncycle, info )
476  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
477  infot = 20
478  CALL ztgsja( 'N', 'V', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
479  $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
480  $ ncycle, info )
481  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
482  infot = 22
483  CALL ztgsja( 'N', 'N', 'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
484  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
485  $ ncycle, info )
486  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
487  nt = nt + 11
488 *
489 * Test error exits for the GLM path.
490 *
491  ELSE IF( lsamen( 3, path, 'GLM' ) ) THEN
492 *
493 * ZGGGLM
494 *
495  srnamt = 'ZGGGLM'
496  infot = 1
497  CALL zggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
498  $ info )
499  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
500  infot = 2
501  CALL zggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
502  $ info )
503  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
504  infot = 2
505  CALL zggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
506  $ info )
507  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
508  infot = 3
509  CALL zggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
510  $ info )
511  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
512  infot = 3
513  CALL zggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
514  $ info )
515  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
516  infot = 5
517  CALL zggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
518  $ info )
519  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
520  infot = 7
521  CALL zggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
522  $ info )
523  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
524  infot = 12
525  CALL zggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
526  $ info )
527  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
528  nt = nt + 8
529 *
530 * Test error exits for the LSE path.
531 *
532  ELSE IF( lsamen( 3, path, 'LSE' ) ) THEN
533 *
534 * ZGGLSE
535 *
536  srnamt = 'ZGGLSE'
537  infot = 1
538  CALL zgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
539  $ info )
540  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
541  infot = 2
542  CALL zgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
543  $ info )
544  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
545  infot = 3
546  CALL zgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
547  $ info )
548  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
549  infot = 3
550  CALL zgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
551  $ info )
552  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
553  infot = 3
554  CALL zgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
555  $ info )
556  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
557  infot = 5
558  CALL zgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
559  $ info )
560  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
561  infot = 7
562  CALL zgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
563  $ info )
564  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
565  infot = 12
566  CALL zgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
567  $ info )
568  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
569  nt = nt + 8
570 *
571 * Test error exits for the CSD path.
572 *
573  ELSE IF( lsamen( 3, path, 'CSD' ) ) THEN
574 *
575 * ZUNCSD
576 *
577  srnamt = 'ZUNCSD'
578  infot = 7
579  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
580  $ -1, 0, 0, a, 1, a,
581  $ 1, a, 1, a, 1, rs,
582  $ a, 1, a, 1, a, 1, a,
583  $ 1, w, lw, rw, lw, iw, info )
584  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
585  infot = 8
586  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
587  $ 1, -1, 0, a, 1, a,
588  $ 1, a, 1, a, 1, rs,
589  $ a, 1, a, 1, a, 1, a,
590  $ 1, w, lw, rw, lw, iw, info )
591  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
592  infot = 9
593  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
594  $ 1, 1, -1, a, 1, a,
595  $ 1, a, 1, a, 1, rs,
596  $ a, 1, a, 1, a, 1, a,
597  $ 1, w, lw, rw, lw, iw, info )
598  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
599  infot = 11
600  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
601  $ 1, 1, 1, a, -1, a,
602  $ 1, a, 1, a, 1, rs,
603  $ a, 1, a, 1, a, 1, a,
604  $ 1, w, lw, rw, lw, iw, info )
605  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
606  infot = 20
607  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
608  $ 1, 1, 1, a, 1, a,
609  $ 1, a, 1, a, 1, rs,
610  $ a, -1, a, 1, a, 1, a,
611  $ 1, w, lw, rw, lw, iw, info )
612  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
613  infot = 22
614  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
615  $ 1, 1, 1, a, 1, a,
616  $ 1, a, 1, a, 1, rs,
617  $ a, 1, a, -1, a, 1, a,
618  $ 1, w, lw, rw, lw, iw, info )
619  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
620  infot = 24
621  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
622  $ 1, 1, 1, a, 1, a,
623  $ 1, a, 1, a, 1, rs,
624  $ a, 1, a, 1, a, -1, a,
625  $ 1, w, lw, rw, lw, iw, info )
626  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
627  infot = 26
628  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
629  $ 1, 1, 1, a, 1, a,
630  $ 1, a, 1, a, 1, rs,
631  $ a, 1, a, 1, a, 1, a,
632  $ -1, w, lw, rw, lw, iw, info )
633  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
634  nt = nt + 8
635 *
636 * Test error exits for the GQR path.
637 *
638  ELSE IF( lsamen( 3, path, 'GQR' ) ) THEN
639 *
640 * ZGGQRF
641 *
642  srnamt = 'ZGGQRF'
643  infot = 1
644  CALL zggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
645  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
646  infot = 2
647  CALL zggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
648  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
649  infot = 3
650  CALL zggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
651  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
652  infot = 5
653  CALL zggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
654  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
655  infot = 8
656  CALL zggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
657  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
658  infot = 11
659  CALL zggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
660  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
661  nt = nt + 6
662 *
663 * ZGGRQF
664 *
665  srnamt = 'ZGGRQF'
666  infot = 1
667  CALL zggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
668  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
669  infot = 2
670  CALL zggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
671  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
672  infot = 3
673  CALL zggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
674  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
675  infot = 5
676  CALL zggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
677  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
678  infot = 8
679  CALL zggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
680  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
681  infot = 11
682  CALL zggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
683  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
684  nt = nt + 6
685 *
686 * Test error exits for the ZGS, ZGV, ZGX, and ZXV paths.
687 *
688  ELSE IF( lsamen( 3, path, 'ZGS' ) .OR.
689  $ lsamen( 3, path, 'ZGV' ) .OR.
690  $ lsamen( 3, path, 'ZGX' ) .OR. lsamen( 3, path, 'ZXV' ) )
691  $ THEN
692 *
693 * ZGGES
694 *
695  srnamt = 'ZGGES '
696  infot = 1
697  CALL zgges( '/', 'N', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
698  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
699  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
700  infot = 2
701  CALL zgges( 'N', '/', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
702  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
703  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
704  infot = 3
705  CALL zgges( 'N', 'V', '/', zlctes, 1, a, 1, b, 1, sdim, alpha,
706  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
707  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
708  infot = 5
709  CALL zgges( 'N', 'V', 'S', zlctes, -1, a, 1, b, 1, sdim, alpha,
710  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
711  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
712  infot = 7
713  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 0, b, 1, sdim, alpha,
714  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
715  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
716  infot = 9
717  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 1, b, 0, sdim, alpha,
718  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
719  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
720  infot = 14
721  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
722  $ beta, q, 0, u, 1, w, 1, rw, bw, info )
723  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
724  infot = 14
725  CALL zgges( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
726  $ beta, q, 1, u, 2, w, 1, rw, bw, info )
727  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
728  infot = 16
729  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
730  $ beta, q, 1, u, 0, w, 1, rw, bw, info )
731  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
732  infot = 16
733  CALL zgges( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
734  $ beta, q, 2, u, 1, w, 1, rw, bw, info )
735  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
736  infot = 18
737  CALL zgges( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
738  $ beta, q, 2, u, 2, w, 1, rw, bw, info )
739  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
740  nt = nt + 11
741 *
742 * ZGGES3
743 *
744  srnamt = 'ZGGES3'
745  infot = 1
746  CALL zgges3( '/', 'N', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
747  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
748  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
749  infot = 2
750  CALL zgges3( 'N', '/', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
751  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
752  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
753  infot = 3
754  CALL zgges3( 'N', 'V', '/', zlctes, 1, a, 1, b, 1, sdim, alpha,
755  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
756  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
757  infot = 5
758  CALL zgges3( 'N', 'V', 'S', zlctes, -1, a, 1, b, 1, sdim,
759  $ alpha, beta, q, 1, u, 1, w, 1, rw, bw, info )
760  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
761  infot = 7
762  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 0, b, 1, sdim, alpha,
763  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
764  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
765  infot = 9
766  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 1, b, 0, sdim, alpha,
767  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
768  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
769  infot = 14
770  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
771  $ beta, q, 0, u, 1, w, 1, rw, bw, info )
772  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
773  infot = 14
774  CALL zgges3( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
775  $ beta, q, 1, u, 2, w, 1, rw, bw, info )
776  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
777  infot = 16
778  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
779  $ beta, q, 1, u, 0, w, 1, rw, bw, info )
780  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
781  infot = 16
782  CALL zgges3( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
783  $ beta, q, 2, u, 1, w, 1, rw, bw, info )
784  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
785  infot = 18
786  CALL zgges3( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
787  $ beta, q, 2, u, 2, w, 1, rw, bw, info )
788  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
789  nt = nt + 11
790 *
791 * ZGGESX
792 *
793  srnamt = 'ZGGESX'
794  infot = 1
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 = 2
800  CALL zggesx( 'N', '/', 'S', 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 = 3
805  CALL zggesx( 'V', 'V', '/', zlctsx, 'N', 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 = 5
810  CALL zggesx( 'V', 'V', 'S', zlctsx, '/', 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 = 6
815  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', -1, a, 1, 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 = 8
820  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 1, a, 0, b, 1, 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 = 10
825  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 1, a, 1, b, 0, sdim,
826  $ alpha, beta, q, 1, 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', 1, a, 1, b, 1, sdim,
831  $ alpha, beta, q, 0, u, 1, rce, rcv, w, 1, rw, iw,
832  $ 1, bw, info )
833  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
834  infot = 15
835  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 2, a, 2, b, 2, sdim,
836  $ alpha, beta, q, 1, u, 1, 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', 1, a, 1, b, 1, sdim,
841  $ alpha, beta, q, 1, u, 0, rce, rcv, w, 1, rw, iw,
842  $ 1, bw, info )
843  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
844  infot = 17
845  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 2, a, 2, b, 2, sdim,
846  $ alpha, beta, q, 2, u, 1, rce, rcv, w, 1, rw, iw,
847  $ 1, bw, info )
848  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
849  infot = 21
850  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 2, a, 2, b, 2, sdim,
851  $ alpha, beta, q, 2, u, 2, rce, rcv, w, 1, rw, iw,
852  $ 1, bw, info )
853  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
854  infot = 24
855  CALL zggesx( 'V', 'V', 'S', zlctsx, 'V', 1, a, 1, b, 1, sdim,
856  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 32, rw, iw,
857  $ 0, bw, info )
858  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
859  nt = nt + 13
860 *
861 * ZGGEV
862 *
863  srnamt = 'ZGGEV '
864  infot = 1
865  CALL zggev( '/', 'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
866  $ w, 1, rw, info )
867  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
868  infot = 2
869  CALL zggev( 'N', '/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
870  $ w, 1, rw, info )
871  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
872  infot = 3
873  CALL zggev( 'V', 'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
874  $ w, 1, rw, info )
875  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
876  infot = 5
877  CALL zggev( 'V', 'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
878  $ w, 1, rw, info )
879  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
880  infot = 7
881  CALL zggev( 'V', 'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
882  $ w, 1, rw, info )
883  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
884  infot = 11
885  CALL zggev( 'N', 'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
886  $ w, 1, rw, info )
887  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
888  infot = 11
889  CALL zggev( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
890  $ w, 1, rw, info )
891  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
892  infot = 13
893  CALL zggev( 'V', 'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
894  $ w, 1, rw, info )
895  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
896  infot = 13
897  CALL zggev( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
898  $ w, 1, rw, info )
899  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
900  infot = 15
901  CALL zggev( 'V', 'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
902  $ w, 1, rw, info )
903  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
904  nt = nt + 10
905 *
906 * ZGGEV3
907 *
908  srnamt = 'ZGGEV3'
909  infot = 1
910  CALL zggev3( '/', 'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
911  $ w, 1, rw, info )
912  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
913  infot = 2
914  CALL zggev3( 'N', '/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
915  $ w, 1, rw, info )
916  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
917  infot = 3
918  CALL zggev3( 'V', 'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
919  $ w, 1, rw, info )
920  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
921  infot = 5
922  CALL zggev3( 'V', 'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
923  $ w, 1, rw, info )
924  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
925  infot = 7
926  CALL zggev3( 'V', 'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
927  $ w, 1, rw, info )
928  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
929  infot = 11
930  CALL zggev3( 'N', 'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
931  $ w, 1, rw, info )
932  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
933  infot = 11
934  CALL zggev3( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
935  $ w, 1, rw, info )
936  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
937  infot = 13
938  CALL zggev3( 'V', 'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
939  $ w, 1, rw, info )
940  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
941  infot = 13
942  CALL zggev3( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
943  $ w, 1, rw, info )
944  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
945  infot = 15
946  CALL zggev3( 'V', 'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
947  $ w, 1, rw, info )
948  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
949  nt = nt + 10
950 *
951 * ZGGEVX
952 *
953  srnamt = 'ZGGEVX'
954  infot = 1
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 = 2
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 = 3
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 = 4
970  CALL zggevx( 'N', 'N', 'N', '/', 1, a, 1, b, 1, alpha, beta, q,
971  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
972  $ w, 1, rw, iw, bw, info )
973  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
974  infot = 5
975  CALL zggevx( 'N', 'N', 'N', 'N', -1, a, 1, b, 1, alpha, beta,
976  $ q, 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce,
977  $ rcv, w, 1, rw, iw, bw, info )
978  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
979  infot = 7
980  CALL zggevx( 'N', 'N', 'N', 'N', 1, a, 0, b, 1, 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 = 9
985  CALL zggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 0, alpha, beta, q,
986  $ 1, 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', 'N', 'N', 'N', 1, a, 1, b, 1, alpha, beta, q,
991  $ 0, u, 1, 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 = 13
995  CALL zggevx( 'N', 'V', 'N', 'N', 2, a, 2, b, 2, alpha, beta, q,
996  $ 1, u, 2, 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', 'N', 'N', 1, a, 1, b, 1, alpha, beta, q,
1001  $ 1, u, 0, 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 = 15
1005  CALL zggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, alpha, beta, q,
1006  $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
1007  $ w, 1, rw, iw, bw, info )
1008  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
1009  infot = 25
1010  CALL zggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, alpha, beta, q,
1011  $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
1012  $ w, 0, rw, iw, bw, info )
1013  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
1014  nt = nt + 12
1015 *
1016 * ZTGEXC
1017 *
1018  srnamt = 'ZTGEXC'
1019  infot = 3
1020  CALL ztgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1021  $ ilst, info )
1022  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1023  infot = 5
1024  CALL ztgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1025  $ ilst, info )
1026  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1027  infot = 7
1028  CALL ztgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1029  $ ilst, info )
1030  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1031  infot = 9
1032  CALL ztgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1033  $ ilst, info )
1034  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1035  infot = 9
1036  CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1037  $ ilst, info )
1038  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1039  infot = 11
1040  CALL ztgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1041  $ ilst, info )
1042  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1043  infot = 11
1044  CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1045  $ ilst, info )
1046  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1047  nt = nt + 7
1048 *
1049 * ZTGSEN
1050 *
1051  srnamt = 'ZTGSEN'
1052  infot = 1
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 = 5
1058  CALL ztgsen( 1, .true., .true., sel, -1, a, 1, 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 = 7
1063  CALL ztgsen( 1, .true., .true., sel, 1, a, 0, b, 1, 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 = 9
1068  CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 0, alpha,
1069  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1070  $ info )
1071  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1072  infot = 13
1073  CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1074  $ beta, q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1075  $ info )
1076  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1077  infot = 15
1078  CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1079  $ beta, q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1080  $ info )
1081  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1082  infot = 21
1083  CALL ztgsen( 3, .true., .true., sel, 1, a, 1, b, 1, alpha,
1084  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, -5, iw,
1085  $ 1, info )
1086  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1087  infot = 23
1088  CALL ztgsen( 0, .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( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1094  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1095  $ 0, info )
1096  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1097  infot = 23
1098  CALL ztgsen( 5, .true., .true., sel, 1, a, 1, b, 1, alpha,
1099  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1100  $ 1, info )
1101  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1102  nt = nt + 11
1103 *
1104 * ZTGSNA
1105 *
1106  srnamt = 'ZTGSNA'
1107  infot = 1
1108  CALL ztgsna( '/', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1109  $ 1, m, w, 1, iw, info )
1110  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1111  infot = 2
1112  CALL ztgsna( 'B', '/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1113  $ 1, m, w, 1, iw, info )
1114  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1115  infot = 4
1116  CALL ztgsna( 'B', 'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1117  $ 1, m, w, 1, iw, info )
1118  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1119  infot = 6
1120  CALL ztgsna( 'B', 'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1121  $ 1, m, w, 1, iw, info )
1122  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1123  infot = 8
1124  CALL ztgsna( 'B', 'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1125  $ 1, m, w, 1, iw, info )
1126  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1127  infot = 10
1128  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1129  $ 1, m, w, 1, iw, info )
1130  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1131  infot = 12
1132  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1133  $ 1, m, w, 1, iw, info )
1134  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1135  infot = 15
1136  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1137  $ 0, m, w, 1, iw, info )
1138  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1139  infot = 18
1140  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1141  $ 1, m, w, 0, iw, info )
1142  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1143  nt = nt + 9
1144 *
1145 * ZTGSYL
1146 *
1147  srnamt = 'ZTGSYL'
1148  infot = 1
1149  CALL ztgsyl( '/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1150  $ scale, dif, w, 1, iw, info )
1151  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1152  infot = 2
1153  CALL ztgsyl( 'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1154  $ scale, dif, w, 1, iw, info )
1155  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1156  infot = 3
1157  CALL ztgsyl( 'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1158  $ scale, dif, w, 1, iw, info )
1159  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1160  infot = 4
1161  CALL ztgsyl( 'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1162  $ scale, dif, w, 1, iw, info )
1163  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1164  infot = 6
1165  CALL ztgsyl( 'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1166  $ scale, dif, w, 1, iw, info )
1167  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1168  infot = 8
1169  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1170  $ scale, dif, w, 1, iw, info )
1171  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1172  infot = 10
1173  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1174  $ scale, dif, w, 1, iw, info )
1175  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1176  infot = 12
1177  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1178  $ scale, dif, w, 1, iw, info )
1179  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1180  infot = 14
1181  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1182  $ scale, dif, w, 1, iw, info )
1183  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1184  infot = 16
1185  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1186  $ scale, dif, w, 1, iw, info )
1187  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1188  infot = 20
1189  CALL ztgsyl( 'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1190  $ scale, dif, w, 1, iw, info )
1191  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1192  infot = 20
1193  CALL ztgsyl( 'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1194  $ scale, dif, w, 1, iw, info )
1195  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1196  nt = nt + 12
1197  END IF
1198 *
1199 * Print a summary line.
1200 *
1201  IF( ok ) THEN
1202  WRITE( nout, fmt = 9999 )path, nt
1203  ELSE
1204  WRITE( nout, fmt = 9998 )path
1205  END IF
1206 *
1207  9999 FORMAT( 1x, a3, ' routines passed the tests of the error exits (',
1208  $ i3, ' tests done)' )
1209  9998 FORMAT( ' *** ', a3, ' routines failed the tests of the error ',
1210  $ 'exits ***' )
1211 *
1212  RETURN
1213 *
1214 * End of ZERRGG
1215 *
1216  END
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
Definition: xlaenv.f:81
subroutine zerrgg(PATH, NUNIT)
ZERRGG
Definition: zerrgg.f:57
subroutine ztgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
ZTGEVC
Definition: ztgevc.f:219
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:284
subroutine ztgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, INFO)
ZTGEXC
Definition: ztgexc.f:200
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:269
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:216
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:330
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 m...
Definition: zgges.f:270
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:217
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:374
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:353
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:278
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:433
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:320
subroutine zggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGQRF
Definition: zggqrf.f:215
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:311
subroutine zggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGRQF
Definition: zggrqf.f:214
subroutine zgghd3(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
ZGGHD3
Definition: zgghd3.f:227
subroutine zgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
ZGGHRD
Definition: zgghrd.f:204
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:379
subroutine zggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
ZGGGLM
Definition: zggglm.f:185
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:180
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:295