LAPACK  3.9.1
LAPACK: Linear Algebra PACKage

◆ zerrgg()

subroutine zerrgg ( character*3  PATH,
integer  NUNIT 
)

ZERRGG

Purpose:
 ZERRGG tests the error exits for ZGGES, ZGGESX, ZGGEV, ZGGEVX,
 ZGGES3, ZGGEV3, ZGGGLM, ZGGHRD, ZGGLSE, ZGGQRF, ZGGRQF,
 ZGGSVD3, ZGGSVP3, ZHGEQZ, ZTGEVC, ZTGEXC, ZTGSEN, ZTGSJA,
 ZTGSNA, ZTGSYL, and ZUNCSD.
Parameters
[in]PATH
          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.
[in]NUNIT
          NUNIT is INTEGER
          The unit number for output.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 56 of file zerrgg.f.

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,
100  $ zggsvd3, zggsvp3
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 * Test error exits for the GG path.
139 *
140  IF( lsamen( 2, c2, 'GG' ) ) THEN
141 *
142 * ZGGHRD
143 *
144  srnamt = 'ZGGHRD'
145  infot = 1
146  CALL zgghrd( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
147  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
148  infot = 2
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 = 3
152  CALL zgghrd( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
153  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
154  infot = 4
155  CALL zgghrd( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
156  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
157  infot = 5
158  CALL zgghrd( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
159  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
160  infot = 7
161  CALL zgghrd( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
162  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
163  infot = 9
164  CALL zgghrd( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
165  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
166  infot = 11
167  CALL zgghrd( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
168  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
169  infot = 13
170  CALL zgghrd( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
171  CALL chkxer( 'ZGGHRD', infot, nout, lerr, ok )
172  nt = nt + 9
173 *
174 * ZGGHD3
175 *
176  srnamt = 'ZGGHD3'
177  infot = 1
178  CALL zgghd3( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
179  $ info )
180  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
181  infot = 2
182  CALL zgghd3( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
183  $ info )
184  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
185  infot = 3
186  CALL zgghd3( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
187  $ info )
188  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
189  infot = 4
190  CALL zgghd3( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
191  $ info )
192  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
193  infot = 5
194  CALL zgghd3( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
195  $ info )
196  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
197  infot = 7
198  CALL zgghd3( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
199  $ info )
200  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
201  infot = 9
202  CALL zgghd3( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
203  $ info )
204  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
205  infot = 11
206  CALL zgghd3( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
207  $ info )
208  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
209  infot = 13
210  CALL zgghd3( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
211  $ info )
212  CALL chkxer( 'ZGGHD3', infot, nout, lerr, ok )
213  nt = nt + 9
214 *
215 * ZHGEQZ
216 *
217  srnamt = 'ZHGEQZ'
218  infot = 1
219  CALL zhgeqz( '/', 'N', 'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
220  $ q, 1, z, 1, w, 1, rw, info )
221  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
222  infot = 2
223  CALL zhgeqz( 'E', '/', 'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
224  $ q, 1, z, 1, w, 1, rw, info )
225  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
226  infot = 3
227  CALL zhgeqz( 'E', '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 = 4
231  CALL zhgeqz( 'E', 'N', 'N', -1, 0, 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 = 5
235  CALL zhgeqz( 'E', 'N', 'N', 0, 0, 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 = 6
239  CALL zhgeqz( 'E', 'N', 'N', 0, 1, 1, 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 = 8
243  CALL zhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
244  $ q, 1, z, 1, w, 1, rw, info )
245  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
246  infot = 10
247  CALL zhgeqz( 'E', 'N', 'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
248  $ q, 1, z, 1, w, 1, rw, info )
249  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
250  infot = 14
251  CALL zhgeqz( 'E', 'V', 'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
252  $ q, 1, z, 1, w, 1, rw, info )
253  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
254  infot = 16
255  CALL zhgeqz( 'E', 'N', 'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
256  $ q, 1, z, 1, w, 1, rw, info )
257  CALL chkxer( 'ZHGEQZ', infot, nout, lerr, ok )
258  nt = nt + 10
259 *
260 * ZTGEVC
261 *
262  srnamt = 'ZTGEVC'
263  infot = 1
264  CALL ztgevc( '/', 'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
265  $ rw, info )
266  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
267  infot = 2
268  CALL ztgevc( 'R', '/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
269  $ rw, info )
270  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
271  infot = 4
272  CALL ztgevc( 'R', 'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
273  $ w, rw, info )
274  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
275  infot = 6
276  CALL ztgevc( 'R', 'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
277  $ rw, info )
278  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
279  infot = 8
280  CALL ztgevc( 'R', 'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
281  $ rw, info )
282  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
283  infot = 10
284  CALL ztgevc( 'L', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
285  $ rw, info )
286  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
287  infot = 12
288  CALL ztgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
289  $ rw, info )
290  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
291  infot = 13
292  CALL ztgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
293  $ rw, info )
294  CALL chkxer( 'ZTGEVC', infot, nout, lerr, ok )
295  nt = nt + 8
296 *
297 * Test error exits for the GSV path.
298 *
299  ELSE IF( lsamen( 3, path, 'GSV' ) ) THEN
300 *
301 * ZGGSVD3
302 *
303  srnamt = 'ZGGSVD3'
304  infot = 1
305  CALL zggsvd3( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
306  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
307  $ info )
308  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
309  infot = 2
310  CALL zggsvd3( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
311  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
312  $ info )
313  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
314  infot = 3
315  CALL zggsvd3( 'N', 'N', '/', 0, 0, 0, dummyk, dummyl, a, 1, b,
316  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
317  $ info )
318  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
319  infot = 4
320  CALL zggsvd3( 'N', 'N', 'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
321  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
322  $ info )
323  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
324  infot = 5
325  CALL zggsvd3( 'N', 'N', 'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
326  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
327  $ info )
328  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
329  infot = 6
330  CALL zggsvd3( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
331  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
332  $ info )
333  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
334  infot = 10
335  CALL zggsvd3( 'N', 'N', 'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
336  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
337  $ info )
338  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
339  infot = 12
340  CALL zggsvd3( 'N', 'N', 'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
341  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
342  $ info )
343  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
344  infot = 16
345  CALL zggsvd3( 'U', 'N', 'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
346  $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
347  $ info )
348  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
349  infot = 18
350  CALL zggsvd3( 'N', 'V', 'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
351  $ 2, r1, r2, u, 2, v, 1, q, 1, w, lwork, rw, idum,
352  $ info )
353  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
354  infot = 20
355  CALL zggsvd3( 'N', 'N', 'Q', 2, 2, 2, dummyk, dummyl, a, 2, b,
356  $ 2, r1, r2, u, 2, v, 2, q, 1, w, lwork, rw, idum,
357  $ info )
358  CALL chkxer( 'ZGGSVD3', infot, nout, lerr, ok )
359  nt = nt + 11
360 *
361 * ZGGSVP3
362 *
363  srnamt = 'ZGGSVP3'
364  infot = 1
365  CALL zggsvp3( '/', 'N', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
366  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
367  $ lwork, info )
368  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
369  infot = 2
370  CALL zggsvp3( 'N', '/', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
371  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
372  $ lwork, info )
373  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
374  infot = 3
375  CALL zggsvp3( 'N', 'N', '/', 0, 0, 0, a, 1, b, 1, tola, tolb,
376  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
377  $ lwork, info )
378  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
379  infot = 4
380  CALL zggsvp3( 'N', 'N', 'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
381  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
382  $ lwork, info )
383  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
384  infot = 5
385  CALL zggsvp3( 'N', 'N', 'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
386  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
387  $ lwork, info )
388  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
389  infot = 6
390  CALL zggsvp3( 'N', 'N', 'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
391  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
392  $ lwork, info )
393  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
394  infot = 8
395  CALL zggsvp3( 'N', 'N', 'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
396  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
397  $ lwork, info )
398  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
399  infot = 10
400  CALL zggsvp3( 'N', 'N', 'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
401  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
402  $ lwork, info )
403  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
404  infot = 16
405  CALL zggsvp3( 'U', 'N', 'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
406  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
407  $ lwork, info )
408  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
409  infot = 18
410  CALL zggsvp3( 'N', 'V', 'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
411  $ dummyk, dummyl, u, 2, v, 1, q, 1, iw, rw, tau, w,
412  $ lwork, info )
413  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
414  infot = 20
415  CALL zggsvp3( 'N', 'N', 'Q', 2, 2, 2, a, 2, b, 2, tola, tolb,
416  $ dummyk, dummyl, u, 2, v, 2, q, 1, iw, rw, tau, w,
417  $ lwork, info )
418  CALL chkxer( 'ZGGSVP3', infot, nout, lerr, ok )
419  nt = nt + 11
420 *
421 * ZTGSJA
422 *
423  srnamt = 'ZTGSJA'
424  infot = 1
425  CALL ztgsja( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
426  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
427  $ ncycle, info )
428  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
429  infot = 2
430  CALL ztgsja( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
431  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
432  $ ncycle, info )
433  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
434  infot = 3
435  CALL ztgsja( 'N', 'N', '/', 0, 0, 0, dummyk, dummyl, a, 1, b,
436  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
437  $ ncycle, info )
438  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
439  infot = 4
440  CALL ztgsja( 'N', 'N', 'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
441  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
442  $ ncycle, info )
443  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
444  infot = 5
445  CALL ztgsja( 'N', 'N', 'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
446  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
447  $ ncycle, info )
448  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
449  infot = 6
450  CALL ztgsja( 'N', 'N', 'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
451  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
452  $ ncycle, info )
453  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
454  infot = 10
455  CALL ztgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
456  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
457  $ ncycle, info )
458  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
459  infot = 12
460  CALL ztgsja( 'N', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
461  $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
462  $ ncycle, info )
463  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
464  infot = 18
465  CALL ztgsja( 'U', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
466  $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
467  $ ncycle, info )
468  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
469  infot = 20
470  CALL ztgsja( 'N', 'V', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
471  $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
472  $ ncycle, info )
473  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
474  infot = 22
475  CALL ztgsja( 'N', 'N', 'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
476  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
477  $ ncycle, info )
478  CALL chkxer( 'ZTGSJA', infot, nout, lerr, ok )
479  nt = nt + 11
480 *
481 * Test error exits for the GLM path.
482 *
483  ELSE IF( lsamen( 3, path, 'GLM' ) ) THEN
484 *
485 * ZGGGLM
486 *
487  srnamt = 'ZGGGLM'
488  infot = 1
489  CALL zggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
490  $ info )
491  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
492  infot = 2
493  CALL zggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
494  $ info )
495  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
496  infot = 2
497  CALL zggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
498  $ info )
499  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
500  infot = 3
501  CALL zggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
502  $ info )
503  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
504  infot = 3
505  CALL zggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
506  $ info )
507  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
508  infot = 5
509  CALL zggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
510  $ info )
511  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
512  infot = 7
513  CALL zggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
514  $ info )
515  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
516  infot = 12
517  CALL zggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
518  $ info )
519  CALL chkxer( 'ZGGGLM', infot, nout, lerr, ok )
520  nt = nt + 8
521 *
522 * Test error exits for the LSE path.
523 *
524  ELSE IF( lsamen( 3, path, 'LSE' ) ) THEN
525 *
526 * ZGGLSE
527 *
528  srnamt = 'ZGGLSE'
529  infot = 1
530  CALL zgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
531  $ info )
532  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
533  infot = 2
534  CALL zgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
535  $ info )
536  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
537  infot = 3
538  CALL zgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
539  $ info )
540  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
541  infot = 3
542  CALL zgglse( 0, 0, 1, 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, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
547  $ info )
548  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
549  infot = 5
550  CALL zgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
551  $ info )
552  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
553  infot = 7
554  CALL zgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
555  $ info )
556  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
557  infot = 12
558  CALL zgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
559  $ info )
560  CALL chkxer( 'ZGGLSE', infot, nout, lerr, ok )
561  nt = nt + 8
562 *
563 * Test error exits for the CSD path.
564 *
565  ELSE IF( lsamen( 3, path, 'CSD' ) ) THEN
566 *
567 * ZUNCSD
568 *
569  srnamt = 'ZUNCSD'
570  infot = 7
571  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
572  $ -1, 0, 0, a, 1, a,
573  $ 1, a, 1, a, 1, rs,
574  $ a, 1, a, 1, a, 1, a,
575  $ 1, w, lw, rw, lw, iw, info )
576  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
577  infot = 8
578  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
579  $ 1, -1, 0, a, 1, a,
580  $ 1, a, 1, a, 1, rs,
581  $ a, 1, a, 1, a, 1, a,
582  $ 1, w, lw, rw, lw, iw, info )
583  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
584  infot = 9
585  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
586  $ 1, 1, -1, a, 1, a,
587  $ 1, a, 1, a, 1, rs,
588  $ a, 1, a, 1, a, 1, a,
589  $ 1, w, lw, rw, lw, iw, info )
590  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
591  infot = 11
592  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
593  $ 1, 1, 1, a, -1, a,
594  $ 1, a, 1, a, 1, rs,
595  $ a, 1, a, 1, a, 1, a,
596  $ 1, w, lw, rw, lw, iw, info )
597  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
598  infot = 20
599  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
600  $ 1, 1, 1, a, 1, a,
601  $ 1, a, 1, a, 1, rs,
602  $ a, -1, a, 1, a, 1, a,
603  $ 1, w, lw, rw, lw, iw, info )
604  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
605  infot = 22
606  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
607  $ 1, 1, 1, a, 1, a,
608  $ 1, a, 1, a, 1, rs,
609  $ a, 1, a, -1, a, 1, a,
610  $ 1, w, lw, rw, lw, iw, info )
611  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
612  infot = 24
613  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
614  $ 1, 1, 1, a, 1, a,
615  $ 1, a, 1, a, 1, rs,
616  $ a, 1, a, 1, a, -1, a,
617  $ 1, w, lw, rw, lw, iw, info )
618  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
619  infot = 26
620  CALL zuncsd( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
621  $ 1, 1, 1, a, 1, a,
622  $ 1, a, 1, a, 1, rs,
623  $ a, 1, a, 1, a, 1, a,
624  $ -1, w, lw, rw, lw, iw, info )
625  CALL chkxer( 'ZUNCSD', infot, nout, lerr, ok )
626  nt = nt + 8
627 *
628 * Test error exits for the GQR path.
629 *
630  ELSE IF( lsamen( 3, path, 'GQR' ) ) THEN
631 *
632 * ZGGQRF
633 *
634  srnamt = 'ZGGQRF'
635  infot = 1
636  CALL zggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
637  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
638  infot = 2
639  CALL zggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
640  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
641  infot = 3
642  CALL zggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
643  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
644  infot = 5
645  CALL zggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
646  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
647  infot = 8
648  CALL zggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
649  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
650  infot = 11
651  CALL zggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
652  CALL chkxer( 'ZGGQRF', infot, nout, lerr, ok )
653  nt = nt + 6
654 *
655 * ZGGRQF
656 *
657  srnamt = 'ZGGRQF'
658  infot = 1
659  CALL zggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
660  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
661  infot = 2
662  CALL zggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
663  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
664  infot = 3
665  CALL zggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
666  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
667  infot = 5
668  CALL zggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
669  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
670  infot = 8
671  CALL zggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
672  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
673  infot = 11
674  CALL zggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
675  CALL chkxer( 'ZGGRQF', infot, nout, lerr, ok )
676  nt = nt + 6
677 *
678 * Test error exits for the ZGS, ZGV, ZGX, and ZXV paths.
679 *
680  ELSE IF( lsamen( 3, path, 'ZGS' ) .OR.
681  $ lsamen( 3, path, 'ZGV' ) .OR.
682  $ lsamen( 3, path, 'ZGX' ) .OR. lsamen( 3, path, 'ZXV' ) )
683  $ THEN
684 *
685 * ZGGES
686 *
687  srnamt = 'ZGGES '
688  infot = 1
689  CALL zgges( '/', 'N', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
690  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
691  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
692  infot = 2
693  CALL zgges( 'N', '/', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
694  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
695  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
696  infot = 3
697  CALL zgges( 'N', 'V', '/', 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 = 5
701  CALL zgges( 'N', 'V', '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 = 7
705  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 0, 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 = 9
709  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 1, b, 0, sdim, alpha,
710  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
711  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
712  infot = 14
713  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
714  $ beta, q, 0, u, 1, w, 1, rw, bw, info )
715  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
716  infot = 14
717  CALL zgges( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
718  $ beta, q, 1, u, 2, w, 1, rw, bw, info )
719  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
720  infot = 16
721  CALL zgges( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
722  $ beta, q, 1, u, 0, w, 1, rw, bw, info )
723  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
724  infot = 16
725  CALL zgges( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
726  $ beta, q, 2, u, 1, w, 1, rw, bw, info )
727  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
728  infot = 18
729  CALL zgges( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
730  $ beta, q, 2, u, 2, w, 1, rw, bw, info )
731  CALL chkxer( 'ZGGES ', infot, nout, lerr, ok )
732  nt = nt + 11
733 *
734 * ZGGES3
735 *
736  srnamt = 'ZGGES3'
737  infot = 1
738  CALL zgges3( '/', 'N', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
739  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
740  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
741  infot = 2
742  CALL zgges3( 'N', '/', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
743  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
744  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
745  infot = 3
746  CALL zgges3( 'N', 'V', '/', 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 = 5
750  CALL zgges3( 'N', 'V', 'S', zlctes, -1, a, 1, b, 1, sdim,
751  $ alpha, beta, q, 1, u, 1, w, 1, rw, bw, info )
752  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
753  infot = 7
754  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 0, 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 = 9
758  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 1, b, 0, sdim, alpha,
759  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
760  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
761  infot = 14
762  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
763  $ beta, q, 0, u, 1, w, 1, rw, bw, info )
764  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
765  infot = 14
766  CALL zgges3( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
767  $ beta, q, 1, u, 2, w, 1, rw, bw, info )
768  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
769  infot = 16
770  CALL zgges3( 'N', 'V', 'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
771  $ beta, q, 1, u, 0, w, 1, rw, bw, info )
772  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
773  infot = 16
774  CALL zgges3( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
775  $ beta, q, 2, u, 1, w, 1, rw, bw, info )
776  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
777  infot = 18
778  CALL zgges3( 'V', 'V', 'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
779  $ beta, q, 2, u, 2, w, 1, rw, bw, info )
780  CALL chkxer( 'ZGGES3', infot, nout, lerr, ok )
781  nt = nt + 11
782 *
783 * ZGGESX
784 *
785  srnamt = 'ZGGESX'
786  infot = 1
787  CALL zggesx( '/', 'N', 'S', zlctsx, 'N', 1, a, 1, b, 1, sdim,
788  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
789  $ 1, bw, info )
790  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
791  infot = 2
792  CALL zggesx( 'N', '/', 'S', zlctsx, 'N', 1, a, 1, b, 1, sdim,
793  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
794  $ 1, bw, info )
795  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
796  infot = 3
797  CALL zggesx( 'V', 'V', '/', zlctsx, 'N', 1, a, 1, b, 1, sdim,
798  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
799  $ 1, bw, info )
800  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
801  infot = 5
802  CALL zggesx( 'V', 'V', 'S', zlctsx, '/', 1, a, 1, b, 1, sdim,
803  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
804  $ 1, bw, info )
805  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
806  infot = 6
807  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', -1, a, 1, b, 1, sdim,
808  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
809  $ 1, bw, info )
810  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
811  infot = 8
812  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 1, a, 0, b, 1, sdim,
813  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
814  $ 1, bw, info )
815  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
816  infot = 10
817  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 1, a, 1, b, 0, sdim,
818  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
819  $ 1, bw, info )
820  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
821  infot = 15
822  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 1, a, 1, b, 1, sdim,
823  $ alpha, beta, q, 0, u, 1, rce, rcv, w, 1, rw, iw,
824  $ 1, bw, info )
825  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
826  infot = 15
827  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 2, a, 2, b, 2, sdim,
828  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
829  $ 1, bw, info )
830  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
831  infot = 17
832  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 1, a, 1, b, 1, sdim,
833  $ alpha, beta, q, 1, u, 0, rce, rcv, w, 1, rw, iw,
834  $ 1, bw, info )
835  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
836  infot = 17
837  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 2, a, 2, b, 2, sdim,
838  $ alpha, beta, q, 2, u, 1, rce, rcv, w, 1, rw, iw,
839  $ 1, bw, info )
840  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
841  infot = 21
842  CALL zggesx( 'V', 'V', 'S', zlctsx, 'B', 2, a, 2, b, 2, sdim,
843  $ alpha, beta, q, 2, u, 2, rce, rcv, w, 1, rw, iw,
844  $ 1, bw, info )
845  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
846  infot = 24
847  CALL zggesx( 'V', 'V', 'S', zlctsx, 'V', 1, a, 1, b, 1, sdim,
848  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 32, rw, iw,
849  $ 0, bw, info )
850  CALL chkxer( 'ZGGESX', infot, nout, lerr, ok )
851  nt = nt + 13
852 *
853 * ZGGEV
854 *
855  srnamt = 'ZGGEV '
856  infot = 1
857  CALL zggev( '/', 'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
858  $ w, 1, rw, info )
859  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
860  infot = 2
861  CALL zggev( 'N', '/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
862  $ w, 1, rw, info )
863  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
864  infot = 3
865  CALL zggev( 'V', 'V', -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 = 5
869  CALL zggev( 'V', 'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
870  $ w, 1, rw, info )
871  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
872  infot = 7
873  CALL zggev( 'V', 'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
874  $ w, 1, rw, info )
875  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
876  infot = 11
877  CALL zggev( 'N', 'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
878  $ w, 1, rw, info )
879  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
880  infot = 11
881  CALL zggev( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
882  $ w, 1, rw, info )
883  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
884  infot = 13
885  CALL zggev( 'V', 'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
886  $ w, 1, rw, info )
887  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
888  infot = 13
889  CALL zggev( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
890  $ w, 1, rw, info )
891  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
892  infot = 15
893  CALL zggev( 'V', 'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
894  $ w, 1, rw, info )
895  CALL chkxer( 'ZGGEV ', infot, nout, lerr, ok )
896  nt = nt + 10
897 *
898 * ZGGEV3
899 *
900  srnamt = 'ZGGEV3'
901  infot = 1
902  CALL zggev3( '/', 'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
903  $ w, 1, rw, info )
904  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
905  infot = 2
906  CALL zggev3( 'N', '/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
907  $ w, 1, rw, info )
908  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
909  infot = 3
910  CALL zggev3( 'V', 'V', -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 = 5
914  CALL zggev3( 'V', 'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
915  $ w, 1, rw, info )
916  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
917  infot = 7
918  CALL zggev3( 'V', 'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
919  $ w, 1, rw, info )
920  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
921  infot = 11
922  CALL zggev3( 'N', 'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
923  $ w, 1, rw, info )
924  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
925  infot = 11
926  CALL zggev3( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
927  $ w, 1, rw, info )
928  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
929  infot = 13
930  CALL zggev3( 'V', 'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
931  $ w, 1, rw, info )
932  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
933  infot = 13
934  CALL zggev3( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
935  $ w, 1, rw, info )
936  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
937  infot = 15
938  CALL zggev3( 'V', 'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
939  $ w, 1, rw, info )
940  CALL chkxer( 'ZGGEV3', infot, nout, lerr, ok )
941  nt = nt + 10
942 *
943 * ZGGEVX
944 *
945  srnamt = 'ZGGEVX'
946  infot = 1
947  CALL zggevx( '/', 'N', 'N', 'N', 1, a, 1, b, 1, alpha, beta, q,
948  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
949  $ w, 1, rw, iw, bw, info )
950  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
951  infot = 2
952  CALL zggevx( 'N', '/', 'N', 'N', 1, a, 1, b, 1, alpha, beta, q,
953  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
954  $ w, 1, rw, iw, bw, info )
955  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
956  infot = 3
957  CALL zggevx( 'N', 'N', '/', 'N', 1, a, 1, b, 1, alpha, beta, q,
958  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
959  $ w, 1, rw, iw, bw, info )
960  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
961  infot = 4
962  CALL zggevx( 'N', 'N', 'N', '/', 1, a, 1, b, 1, alpha, beta, q,
963  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
964  $ w, 1, rw, iw, bw, info )
965  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
966  infot = 5
967  CALL zggevx( 'N', 'N', 'N', 'N', -1, a, 1, b, 1, alpha, beta,
968  $ q, 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce,
969  $ rcv, w, 1, rw, iw, bw, info )
970  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
971  infot = 7
972  CALL zggevx( 'N', 'N', 'N', 'N', 1, a, 0, b, 1, alpha, beta, q,
973  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
974  $ w, 1, rw, iw, bw, info )
975  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
976  infot = 9
977  CALL zggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 0, alpha, beta, q,
978  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
979  $ w, 1, rw, iw, bw, info )
980  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
981  infot = 13
982  CALL zggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 1, alpha, beta, q,
983  $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
984  $ w, 1, rw, iw, bw, info )
985  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
986  infot = 13
987  CALL zggevx( 'N', 'V', 'N', 'N', 2, a, 2, b, 2, alpha, beta, q,
988  $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
989  $ w, 1, rw, iw, bw, info )
990  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
991  infot = 15
992  CALL zggevx( 'N', 'N', 'N', 'N', 1, a, 1, b, 1, alpha, beta, q,
993  $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
994  $ w, 1, rw, iw, bw, info )
995  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
996  infot = 15
997  CALL zggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, alpha, beta, q,
998  $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
999  $ w, 1, rw, iw, bw, info )
1000  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
1001  infot = 25
1002  CALL zggevx( 'N', 'N', 'V', 'N', 2, a, 2, b, 2, alpha, beta, q,
1003  $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
1004  $ w, 0, rw, iw, bw, info )
1005  CALL chkxer( 'ZGGEVX', infot, nout, lerr, ok )
1006  nt = nt + 12
1007 *
1008 * ZTGEXC
1009 *
1010  srnamt = 'ZTGEXC'
1011  infot = 3
1012  CALL ztgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1013  $ ilst, info )
1014  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1015  infot = 5
1016  CALL ztgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1017  $ ilst, info )
1018  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1019  infot = 7
1020  CALL ztgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1021  $ ilst, info )
1022  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1023  infot = 9
1024  CALL ztgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1025  $ ilst, info )
1026  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1027  infot = 9
1028  CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1029  $ ilst, info )
1030  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1031  infot = 11
1032  CALL ztgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1033  $ ilst, info )
1034  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1035  infot = 11
1036  CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1037  $ ilst, info )
1038  CALL chkxer( 'ZTGEXC', infot, nout, lerr, ok )
1039  nt = nt + 7
1040 *
1041 * ZTGSEN
1042 *
1043  srnamt = 'ZTGSEN'
1044  infot = 1
1045  CALL ztgsen( -1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1046  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1047  $ info )
1048  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1049  infot = 5
1050  CALL ztgsen( 1, .true., .true., sel, -1, a, 1, b, 1, alpha,
1051  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1052  $ info )
1053  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1054  infot = 7
1055  CALL ztgsen( 1, .true., .true., sel, 1, a, 0, b, 1, alpha,
1056  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1057  $ info )
1058  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1059  infot = 9
1060  CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 0, alpha,
1061  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1062  $ info )
1063  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1064  infot = 13
1065  CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1066  $ beta, q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1067  $ info )
1068  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1069  infot = 15
1070  CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1071  $ beta, q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1072  $ info )
1073  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1074  infot = 21
1075  CALL ztgsen( 3, .true., .true., sel, 1, a, 1, b, 1, alpha,
1076  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, -5, iw,
1077  $ 1, info )
1078  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1079  infot = 23
1080  CALL ztgsen( 0, .true., .true., sel, 1, a, 1, b, 1, alpha,
1081  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1082  $ 0, info )
1083  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1084  infot = 23
1085  CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1086  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1087  $ 0, info )
1088  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1089  infot = 23
1090  CALL ztgsen( 5, .true., .true., sel, 1, a, 1, b, 1, alpha,
1091  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1092  $ 1, info )
1093  CALL chkxer( 'ZTGSEN', infot, nout, lerr, ok )
1094  nt = nt + 11
1095 *
1096 * ZTGSNA
1097 *
1098  srnamt = 'ZTGSNA'
1099  infot = 1
1100  CALL ztgsna( '/', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1101  $ 1, m, w, 1, iw, info )
1102  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1103  infot = 2
1104  CALL ztgsna( 'B', '/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1105  $ 1, m, w, 1, iw, info )
1106  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1107  infot = 4
1108  CALL ztgsna( 'B', '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 = 6
1112  CALL ztgsna( 'B', 'A', sel, 1, a, 0, 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 = 8
1116  CALL ztgsna( 'B', 'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1117  $ 1, m, w, 1, iw, info )
1118  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1119  infot = 10
1120  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1121  $ 1, m, w, 1, iw, info )
1122  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1123  infot = 12
1124  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1125  $ 1, m, w, 1, iw, info )
1126  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1127  infot = 15
1128  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1129  $ 0, m, w, 1, iw, info )
1130  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1131  infot = 18
1132  CALL ztgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1133  $ 1, m, w, 0, iw, info )
1134  CALL chkxer( 'ZTGSNA', infot, nout, lerr, ok )
1135  nt = nt + 9
1136 *
1137 * ZTGSYL
1138 *
1139  srnamt = 'ZTGSYL'
1140  infot = 1
1141  CALL ztgsyl( '/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1142  $ scale, dif, w, 1, iw, info )
1143  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1144  infot = 2
1145  CALL ztgsyl( 'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1146  $ scale, dif, w, 1, iw, info )
1147  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1148  infot = 3
1149  CALL ztgsyl( 'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1150  $ scale, dif, w, 1, iw, info )
1151  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1152  infot = 4
1153  CALL ztgsyl( 'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1154  $ scale, dif, w, 1, iw, info )
1155  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1156  infot = 6
1157  CALL ztgsyl( 'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1158  $ scale, dif, w, 1, iw, info )
1159  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1160  infot = 8
1161  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1162  $ scale, dif, w, 1, iw, info )
1163  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1164  infot = 10
1165  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1166  $ scale, dif, w, 1, iw, info )
1167  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1168  infot = 12
1169  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1170  $ scale, dif, w, 1, iw, info )
1171  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1172  infot = 14
1173  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1174  $ scale, dif, w, 1, iw, info )
1175  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1176  infot = 16
1177  CALL ztgsyl( 'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1178  $ scale, dif, w, 1, iw, info )
1179  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1180  infot = 20
1181  CALL ztgsyl( 'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1182  $ scale, dif, w, 1, iw, info )
1183  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1184  infot = 20
1185  CALL ztgsyl( 'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1186  $ scale, dif, w, 1, iw, info )
1187  CALL chkxer( 'ZTGSYL', infot, nout, lerr, ok )
1188  nt = nt + 12
1189  END IF
1190 *
1191 * Print a summary line.
1192 *
1193  IF( ok ) THEN
1194  WRITE( nout, fmt = 9999 )path, nt
1195  ELSE
1196  WRITE( nout, fmt = 9998 )path
1197  END IF
1198 *
1199  9999 FORMAT( 1x, a3, ' routines passed the tests of the error exits (',
1200  $ i3, ' tests done)' )
1201  9998 FORMAT( ' *** ', a3, ' routines failed the tests of the error ',
1202  $ 'exits ***' )
1203 *
1204  RETURN
1205 *
1206 * End of ZERRGG
1207 *
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
logical function lsamen(N, CA, CB)
LSAMEN
Definition: lsamen.f:74
logical function zlctes(Z, D)
ZLCTES
Definition: zlctes.f:58
logical function zlctsx(ALPHA, BETA)
ZLCTSX
Definition: zlctsx.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
Here is the call graph for this function:
Here is the caller graph for this function: