LAPACK  3.10.0
LAPACK: Linear Algebra PACKage

◆ cerrgg()

subroutine cerrgg ( character*3  PATH,
integer  NUNIT 
)

CERRGG

Purpose:
 CERRGG tests the error exits for CGGES, CGGESX, CGGEV, CGGEVX,
 CGGES3, CGGEV3, CGGGLM, CGGHRD, CGGLSE, CGGQRF, CGGRQF,
 CGGSVD3, CGGSVP3, CHGEQZ, CTGEVC, CTGEXC, CTGSEN, CTGSJA,
 CTGSNA, CTGSYL, and CUNCSD.
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 cerrgg.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  REAL ONE, ZERO
73  parameter( one = 1.0e+0, zero = 0.0e+0 )
74 * ..
75 * .. Local Scalars ..
76  CHARACTER*2 C2
77  INTEGER DUMMYK, DUMMYL, I, IFST, IHI, ILO, ILST, INFO,
78  $ J, M, NCYCLE, NT, SDIM, LWORK
79  REAL ANRM, BNRM, DIF, SCALE, TOLA, TOLB
80 * ..
81 * .. Local Arrays ..
82  LOGICAL BW( NMAX ), SEL( NMAX )
83  INTEGER IW( LW ), IDUM(NMAX)
84  REAL LS( NMAX ), R1( NMAX ), R2( NMAX ),
85  $ RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW )
86  COMPLEX A( NMAX, NMAX ), ALPHA( NMAX ),
87  $ B( NMAX, NMAX ), BETA( NMAX ), Q( NMAX, NMAX ),
88  $ TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
89  $ W( LW ), Z( NMAX, NMAX )
90 * ..
91 * .. External Functions ..
92  LOGICAL CLCTES, CLCTSX, LSAMEN
93  EXTERNAL clctes, clctsx, lsamen
94 * ..
95 * .. External Subroutines ..
96  EXTERNAL cgges, cggesx, cggev, cggevx, cggglm, cgghrd,
101 * ..
102 * .. Scalars in Common ..
103  LOGICAL LERR, OK
104  CHARACTER*32 SRNAMT
105  INTEGER INFOT, NOUT
106 * ..
107 * .. Common blocks ..
108  COMMON / infoc / infot, nout, ok, lerr
109  COMMON / srnamc / srnamt
110 * ..
111 * .. Executable Statements ..
112 *
113  nout = nunit
114  WRITE( nout, fmt = * )
115  c2 = path( 2: 3 )
116 *
117 * Set the variables to innocuous values.
118 *
119  DO 20 j = 1, nmax
120  sel( j ) = .true.
121  DO 10 i = 1, nmax
122  a( i, j ) = zero
123  b( i, j ) = zero
124  10 CONTINUE
125  20 CONTINUE
126  DO 30 i = 1, nmax
127  a( i, i ) = one
128  b( i, i ) = one
129  30 CONTINUE
130  ok = .true.
131  tola = 1.0e0
132  tolb = 1.0e0
133  ifst = 1
134  ilst = 1
135  nt = 0
136  lwork = 1
137 *
138 * 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 * CGGHRD
151 *
152  srnamt = 'CGGHRD'
153  infot = 1
154  CALL cgghrd( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
155  CALL chkxer( 'CGGHRD', infot, nout, lerr, ok )
156  infot = 2
157  CALL cgghrd( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
158  CALL chkxer( 'CGGHRD', infot, nout, lerr, ok )
159  infot = 3
160  CALL cgghrd( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
161  CALL chkxer( 'CGGHRD', infot, nout, lerr, ok )
162  infot = 4
163  CALL cgghrd( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
164  CALL chkxer( 'CGGHRD', infot, nout, lerr, ok )
165  infot = 5
166  CALL cgghrd( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
167  CALL chkxer( 'CGGHRD', infot, nout, lerr, ok )
168  infot = 7
169  CALL cgghrd( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
170  CALL chkxer( 'CGGHRD', infot, nout, lerr, ok )
171  infot = 9
172  CALL cgghrd( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
173  CALL chkxer( 'CGGHRD', infot, nout, lerr, ok )
174  infot = 11
175  CALL cgghrd( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
176  CALL chkxer( 'CGGHRD', infot, nout, lerr, ok )
177  infot = 13
178  CALL cgghrd( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
179  CALL chkxer( 'CGGHRD', infot, nout, lerr, ok )
180  nt = nt + 9
181 *
182 * CGGHD3
183 *
184  srnamt = 'CGGHD3'
185  infot = 1
186  CALL cgghd3( '/', 'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
187  $ info )
188  CALL chkxer( 'CGGHD3', infot, nout, lerr, ok )
189  infot = 2
190  CALL cgghd3( 'N', '/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
191  $ info )
192  CALL chkxer( 'CGGHD3', infot, nout, lerr, ok )
193  infot = 3
194  CALL cgghd3( 'N', 'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
195  $ info )
196  CALL chkxer( 'CGGHD3', infot, nout, lerr, ok )
197  infot = 4
198  CALL cgghd3( 'N', 'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
199  $ info )
200  CALL chkxer( 'CGGHD3', infot, nout, lerr, ok )
201  infot = 5
202  CALL cgghd3( 'N', 'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
203  $ info )
204  CALL chkxer( 'CGGHD3', infot, nout, lerr, ok )
205  infot = 7
206  CALL cgghd3( 'N', 'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
207  $ info )
208  CALL chkxer( 'CGGHD3', infot, nout, lerr, ok )
209  infot = 9
210  CALL cgghd3( 'N', 'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
211  $ info )
212  CALL chkxer( 'CGGHD3', infot, nout, lerr, ok )
213  infot = 11
214  CALL cgghd3( 'V', 'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
215  $ info )
216  CALL chkxer( 'CGGHD3', infot, nout, lerr, ok )
217  infot = 13
218  CALL cgghd3( 'N', 'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
219  $ info )
220  CALL chkxer( 'CGGHD3', infot, nout, lerr, ok )
221  nt = nt + 9
222 *
223 * CHGEQZ
224 *
225  srnamt = 'CHGEQZ'
226  infot = 1
227  CALL chgeqz( '/', 'N', 'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
228  $ q, 1, z, 1, w, 1, rw, info )
229  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
230  infot = 2
231  CALL chgeqz( 'E', '/', 'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
232  $ q, 1, z, 1, w, 1, rw, info )
233  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
234  infot = 3
235  CALL chgeqz( 'E', 'N', '/', 0, 1, 0, a, 1, b, 1, alpha, beta,
236  $ q, 1, z, 1, w, 1, rw, info )
237  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
238  infot = 4
239  CALL chgeqz( 'E', 'N', 'N', -1, 0, 0, a, 1, b, 1, alpha, beta,
240  $ q, 1, z, 1, w, 1, rw, info )
241  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
242  infot = 5
243  CALL chgeqz( 'E', 'N', 'N', 0, 0, 0, a, 1, b, 1, alpha, beta,
244  $ q, 1, z, 1, w, 1, rw, info )
245  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
246  infot = 6
247  CALL chgeqz( 'E', 'N', 'N', 0, 1, 1, a, 1, b, 1, alpha, beta,
248  $ q, 1, z, 1, w, 1, rw, info )
249  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
250  infot = 8
251  CALL chgeqz( 'E', 'N', 'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
252  $ q, 1, z, 1, w, 1, rw, info )
253  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
254  infot = 10
255  CALL chgeqz( 'E', 'N', 'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
256  $ q, 1, z, 1, w, 1, rw, info )
257  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
258  infot = 14
259  CALL chgeqz( 'E', 'V', 'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
260  $ q, 1, z, 1, w, 1, rw, info )
261  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
262  infot = 16
263  CALL chgeqz( 'E', 'N', 'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
264  $ q, 1, z, 1, w, 1, rw, info )
265  CALL chkxer( 'CHGEQZ', infot, nout, lerr, ok )
266  nt = nt + 10
267 *
268 * CTGEVC
269 *
270  srnamt = 'CTGEVC'
271  infot = 1
272  CALL ctgevc( '/', 'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
273  $ rw, info )
274  CALL chkxer( 'CTGEVC', infot, nout, lerr, ok )
275  infot = 2
276  CALL ctgevc( 'R', '/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
277  $ rw, info )
278  CALL chkxer( 'CTGEVC', infot, nout, lerr, ok )
279  infot = 4
280  CALL ctgevc( 'R', 'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
281  $ w, rw, info )
282  CALL chkxer( 'CTGEVC', infot, nout, lerr, ok )
283  infot = 6
284  CALL ctgevc( 'R', 'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
285  $ rw, info )
286  CALL chkxer( 'CTGEVC', infot, nout, lerr, ok )
287  infot = 8
288  CALL ctgevc( 'R', 'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
289  $ rw, info )
290  CALL chkxer( 'CTGEVC', infot, nout, lerr, ok )
291  infot = 10
292  CALL ctgevc( 'L', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
293  $ rw, info )
294  CALL chkxer( 'CTGEVC', infot, nout, lerr, ok )
295  infot = 12
296  CALL ctgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
297  $ rw, info )
298  CALL chkxer( 'CTGEVC', infot, nout, lerr, ok )
299  infot = 13
300  CALL ctgevc( 'R', 'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
301  $ rw, info )
302  CALL chkxer( 'CTGEVC', 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 * CGGSVD3
310 *
311  srnamt = 'CGGSVD3'
312  infot = 1
313  CALL cggsvd3( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
314  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
315  $ info )
316  CALL chkxer( 'CGGSVD3', infot, nout, lerr, ok )
317  infot = 2
318  CALL cggsvd3( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
319  $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
320  $ info )
321  CALL chkxer( 'CGGSVD3', infot, nout, lerr, ok )
322  infot = 3
323  CALL cggsvd3( '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( 'CGGSVD3', infot, nout, lerr, ok )
327  infot = 4
328  CALL cggsvd3( '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( 'CGGSVD3', infot, nout, lerr, ok )
332  infot = 5
333  CALL cggsvd3( '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( 'CGGSVD3', infot, nout, lerr, ok )
337  infot = 6
338  CALL cggsvd3( '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( 'CGGSVD3', infot, nout, lerr, ok )
342  infot = 10
343  CALL cggsvd3( '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( 'CGGSVD3', infot, nout, lerr, ok )
347  infot = 12
348  CALL cggsvd3( '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( 'CGGSVD3', infot, nout, lerr, ok )
352  infot = 16
353  CALL cggsvd3( '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( 'CGGSVD3', infot, nout, lerr, ok )
357  infot = 18
358  CALL cggsvd3( '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( 'CGGSVD3', infot, nout, lerr, ok )
362  infot = 20
363  CALL cggsvd3( '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( 'CGGSVD3', infot, nout, lerr, ok )
367  nt = nt + 11
368 *
369 * CGGSVP3
370 *
371  srnamt = 'CGGSVP3'
372  infot = 1
373  CALL cggsvp3( '/', 'N', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
374  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
375  $ lwork, info )
376  CALL chkxer( 'CGGSVP3', infot, nout, lerr, ok )
377  infot = 2
378  CALL cggsvp3( 'N', '/', 'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
379  $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
380  $ lwork, info )
381  CALL chkxer( 'CGGSVP3', infot, nout, lerr, ok )
382  infot = 3
383  CALL cggsvp3( '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( 'CGGSVP3', infot, nout, lerr, ok )
387  infot = 4
388  CALL cggsvp3( '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( 'CGGSVP3', infot, nout, lerr, ok )
392  infot = 5
393  CALL cggsvp3( '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( 'CGGSVP3', infot, nout, lerr, ok )
397  infot = 6
398  CALL cggsvp3( '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( 'CGGSVP3', infot, nout, lerr, ok )
402  infot = 8
403  CALL cggsvp3( '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( 'CGGSVP3', infot, nout, lerr, ok )
407  infot = 10
408  CALL cggsvp3( '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( 'CGGSVP3', infot, nout, lerr, ok )
412  infot = 16
413  CALL cggsvp3( '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( 'CGGSVP3', infot, nout, lerr, ok )
417  infot = 18
418  CALL cggsvp3( '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( 'CGGSVP3', infot, nout, lerr, ok )
422  infot = 20
423  CALL cggsvp3( '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( 'CGGSVP3', infot, nout, lerr, ok )
427  nt = nt + 11
428 *
429 * CTGSJA
430 *
431  srnamt = 'CTGSJA'
432  infot = 1
433  CALL ctgsja( '/', 'N', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
434  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
435  $ ncycle, info )
436  CALL chkxer( 'CTGSJA', infot, nout, lerr, ok )
437  infot = 2
438  CALL ctgsja( 'N', '/', 'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
439  $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
440  $ ncycle, info )
441  CALL chkxer( 'CTGSJA', infot, nout, lerr, ok )
442  infot = 3
443  CALL ctgsja( '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( 'CTGSJA', infot, nout, lerr, ok )
447  infot = 4
448  CALL ctgsja( '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( 'CTGSJA', infot, nout, lerr, ok )
452  infot = 5
453  CALL ctgsja( '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( 'CTGSJA', infot, nout, lerr, ok )
457  infot = 6
458  CALL ctgsja( '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( 'CTGSJA', infot, nout, lerr, ok )
462  infot = 10
463  CALL ctgsja( '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( 'CTGSJA', infot, nout, lerr, ok )
467  infot = 12
468  CALL ctgsja( '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( 'CTGSJA', infot, nout, lerr, ok )
472  infot = 18
473  CALL ctgsja( '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( 'CTGSJA', infot, nout, lerr, ok )
477  infot = 20
478  CALL ctgsja( '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( 'CTGSJA', infot, nout, lerr, ok )
482  infot = 22
483  CALL ctgsja( '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( 'CTGSJA', 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 * CGGGLM
494 *
495  srnamt = 'CGGGLM'
496  infot = 1
497  CALL cggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
498  $ info )
499  CALL chkxer( 'CGGGLM', infot, nout, lerr, ok )
500  infot = 2
501  CALL cggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
502  $ info )
503  CALL chkxer( 'CGGGLM', infot, nout, lerr, ok )
504  infot = 2
505  CALL cggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
506  $ info )
507  CALL chkxer( 'CGGGLM', infot, nout, lerr, ok )
508  infot = 3
509  CALL cggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
510  $ info )
511  CALL chkxer( 'CGGGLM', infot, nout, lerr, ok )
512  infot = 3
513  CALL cggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
514  $ info )
515  CALL chkxer( 'CGGGLM', infot, nout, lerr, ok )
516  infot = 5
517  CALL cggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
518  $ info )
519  CALL chkxer( 'CGGGLM', infot, nout, lerr, ok )
520  infot = 7
521  CALL cggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
522  $ info )
523  CALL chkxer( 'CGGGLM', infot, nout, lerr, ok )
524  infot = 12
525  CALL cggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
526  $ info )
527  CALL chkxer( 'CGGGLM', 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 * CGGLSE
535 *
536  srnamt = 'CGGLSE'
537  infot = 1
538  CALL cgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
539  $ info )
540  CALL chkxer( 'CGGLSE', infot, nout, lerr, ok )
541  infot = 2
542  CALL cgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
543  $ info )
544  CALL chkxer( 'CGGLSE', infot, nout, lerr, ok )
545  infot = 3
546  CALL cgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
547  $ info )
548  CALL chkxer( 'CGGLSE', infot, nout, lerr, ok )
549  infot = 3
550  CALL cgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
551  $ info )
552  CALL chkxer( 'CGGLSE', infot, nout, lerr, ok )
553  infot = 3
554  CALL cgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
555  $ info )
556  CALL chkxer( 'CGGLSE', infot, nout, lerr, ok )
557  infot = 5
558  CALL cgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
559  $ info )
560  CALL chkxer( 'CGGLSE', infot, nout, lerr, ok )
561  infot = 7
562  CALL cgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
563  $ info )
564  CALL chkxer( 'CGGLSE', infot, nout, lerr, ok )
565  infot = 12
566  CALL cgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
567  $ info )
568  CALL chkxer( 'CGGLSE', 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 * CUNCSD
576 *
577  srnamt = 'CUNCSD'
578  infot = 7
579  CALL cuncsd( '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( 'CUNCSD', infot, nout, lerr, ok )
585  infot = 8
586  CALL cuncsd( '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( 'CUNCSD', infot, nout, lerr, ok )
592  infot = 9
593  CALL cuncsd( '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( 'CUNCSD', infot, nout, lerr, ok )
599  infot = 11
600  CALL cuncsd( '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( 'CUNCSD', infot, nout, lerr, ok )
606  infot = 20
607  CALL cuncsd( '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( 'CUNCSD', infot, nout, lerr, ok )
613  infot = 22
614  CALL cuncsd( '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( 'CUNCSD', infot, nout, lerr, ok )
620  infot = 24
621  CALL cuncsd( '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( 'CUNCSD', infot, nout, lerr, ok )
627  infot = 26
628  CALL cuncsd( '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( 'CUNCSD', 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 * CGGQRF
641 *
642  srnamt = 'CGGQRF'
643  infot = 1
644  CALL cggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
645  CALL chkxer( 'CGGQRF', infot, nout, lerr, ok )
646  infot = 2
647  CALL cggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
648  CALL chkxer( 'CGGQRF', infot, nout, lerr, ok )
649  infot = 3
650  CALL cggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
651  CALL chkxer( 'CGGQRF', infot, nout, lerr, ok )
652  infot = 5
653  CALL cggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
654  CALL chkxer( 'CGGQRF', infot, nout, lerr, ok )
655  infot = 8
656  CALL cggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
657  CALL chkxer( 'CGGQRF', infot, nout, lerr, ok )
658  infot = 11
659  CALL cggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
660  CALL chkxer( 'CGGQRF', infot, nout, lerr, ok )
661  nt = nt + 6
662 *
663 * CGGRQF
664 *
665  srnamt = 'CGGRQF'
666  infot = 1
667  CALL cggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
668  CALL chkxer( 'CGGRQF', infot, nout, lerr, ok )
669  infot = 2
670  CALL cggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
671  CALL chkxer( 'CGGRQF', infot, nout, lerr, ok )
672  infot = 3
673  CALL cggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
674  CALL chkxer( 'CGGRQF', infot, nout, lerr, ok )
675  infot = 5
676  CALL cggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
677  CALL chkxer( 'CGGRQF', infot, nout, lerr, ok )
678  infot = 8
679  CALL cggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
680  CALL chkxer( 'CGGRQF', infot, nout, lerr, ok )
681  infot = 11
682  CALL cggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
683  CALL chkxer( 'CGGRQF', infot, nout, lerr, ok )
684  nt = nt + 6
685 *
686 * Test error exits for the CGS, CGV, CGX, and CXV paths.
687 *
688  ELSE IF( lsamen( 3, path, 'CGS' ) .OR.
689  $ lsamen( 3, path, 'CGV' ) .OR.
690  $ lsamen( 3, path, 'CGX' ) .OR. lsamen( 3, path, 'CXV' ) )
691  $ THEN
692 *
693 * CGGES
694 *
695  srnamt = 'CGGES '
696  infot = 1
697  CALL cgges( '/', 'N', 'S', clctes, 1, a, 1, b, 1, sdim, alpha,
698  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
699  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
700  infot = 2
701  CALL cgges( 'N', '/', 'S', clctes, 1, a, 1, b, 1, sdim, alpha,
702  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
703  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
704  infot = 3
705  CALL cgges( 'N', 'V', '/', clctes, 1, a, 1, b, 1, sdim, alpha,
706  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
707  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
708  infot = 5
709  CALL cgges( 'N', 'V', 'S', clctes, -1, a, 1, b, 1, sdim, alpha,
710  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
711  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
712  infot = 7
713  CALL cgges( 'N', 'V', 'S', clctes, 1, a, 0, b, 1, sdim, alpha,
714  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
715  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
716  infot = 9
717  CALL cgges( 'N', 'V', 'S', clctes, 1, a, 1, b, 0, sdim, alpha,
718  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
719  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
720  infot = 14
721  CALL cgges( 'N', 'V', 'S', clctes, 1, a, 1, b, 1, sdim, alpha,
722  $ beta, q, 0, u, 1, w, 1, rw, bw, info )
723  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
724  infot = 14
725  CALL cgges( 'V', 'V', 'S', clctes, 2, a, 2, b, 2, sdim, alpha,
726  $ beta, q, 1, u, 2, w, 1, rw, bw, info )
727  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
728  infot = 16
729  CALL cgges( 'N', 'V', 'S', clctes, 1, a, 1, b, 1, sdim, alpha,
730  $ beta, q, 1, u, 0, w, 1, rw, bw, info )
731  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
732  infot = 16
733  CALL cgges( 'V', 'V', 'S', clctes, 2, a, 2, b, 2, sdim, alpha,
734  $ beta, q, 2, u, 1, w, 1, rw, bw, info )
735  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
736  infot = 18
737  CALL cgges( 'V', 'V', 'S', clctes, 2, a, 2, b, 2, sdim, alpha,
738  $ beta, q, 2, u, 2, w, 1, rw, bw, info )
739  CALL chkxer( 'CGGES ', infot, nout, lerr, ok )
740  nt = nt + 11
741 *
742 * CGGES3
743 *
744  srnamt = 'CGGES3'
745  infot = 1
746  CALL cgges3( '/', 'N', 'S', clctes, 1, a, 1, b, 1, sdim, alpha,
747  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
748  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
749  infot = 2
750  CALL cgges3( 'N', '/', 'S', clctes, 1, a, 1, b, 1, sdim, alpha,
751  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
752  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
753  infot = 3
754  CALL cgges3( 'N', 'V', '/', clctes, 1, a, 1, b, 1, sdim, alpha,
755  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
756  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
757  infot = 5
758  CALL cgges3( 'N', 'V', 'S', clctes, -1, a, 1, b, 1, sdim,
759  $ alpha, beta, q, 1, u, 1, w, 1, rw, bw, info )
760  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
761  infot = 7
762  CALL cgges3( 'N', 'V', 'S', clctes, 1, a, 0, b, 1, sdim, alpha,
763  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
764  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
765  infot = 9
766  CALL cgges3( 'N', 'V', 'S', clctes, 1, a, 1, b, 0, sdim, alpha,
767  $ beta, q, 1, u, 1, w, 1, rw, bw, info )
768  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
769  infot = 14
770  CALL cgges3( 'N', 'V', 'S', clctes, 1, a, 1, b, 1, sdim, alpha,
771  $ beta, q, 0, u, 1, w, 1, rw, bw, info )
772  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
773  infot = 14
774  CALL cgges3( 'V', 'V', 'S', clctes, 2, a, 2, b, 2, sdim, alpha,
775  $ beta, q, 1, u, 2, w, 1, rw, bw, info )
776  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
777  infot = 16
778  CALL cgges3( 'N', 'V', 'S', clctes, 1, a, 1, b, 1, sdim, alpha,
779  $ beta, q, 1, u, 0, w, 1, rw, bw, info )
780  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
781  infot = 16
782  CALL cgges3( 'V', 'V', 'S', clctes, 2, a, 2, b, 2, sdim, alpha,
783  $ beta, q, 2, u, 1, w, 1, rw, bw, info )
784  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
785  infot = 18
786  CALL cgges3( 'V', 'V', 'S', clctes, 2, a, 2, b, 2, sdim, alpha,
787  $ beta, q, 2, u, 2, w, 1, rw, bw, info )
788  CALL chkxer( 'CGGES3', infot, nout, lerr, ok )
789  nt = nt + 11
790 *
791 * CGGESX
792 *
793  srnamt = 'CGGESX'
794  infot = 1
795  CALL cggesx( '/', 'N', 'S', clctsx, 'N', 1, a, 1, b, 1, sdim,
796  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
797  $ 1, bw, info )
798  CALL chkxer( 'CGGESX', infot, nout, lerr, ok )
799  infot = 2
800  CALL cggesx( 'N', '/', 'S', clctsx, 'N', 1, a, 1, b, 1, sdim,
801  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
802  $ 1, bw, info )
803  CALL chkxer( 'CGGESX', infot, nout, lerr, ok )
804  infot = 3
805  CALL cggesx( 'V', 'V', '/', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
809  infot = 5
810  CALL cggesx( 'V', 'V', 'S', clctsx, '/', 1, a, 1, b, 1, sdim,
811  $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
812  $ 1, bw, info )
813  CALL chkxer( 'CGGESX', infot, nout, lerr, ok )
814  infot = 6
815  CALL cggesx( 'V', 'V', 'S', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
819  infot = 8
820  CALL cggesx( 'V', 'V', 'S', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
824  infot = 10
825  CALL cggesx( 'V', 'V', 'S', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
829  infot = 15
830  CALL cggesx( 'V', 'V', 'S', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
834  infot = 15
835  CALL cggesx( 'V', 'V', 'S', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
839  infot = 17
840  CALL cggesx( 'V', 'V', 'S', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
844  infot = 17
845  CALL cggesx( 'V', 'V', 'S', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
849  infot = 21
850  CALL cggesx( 'V', 'V', 'S', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
854  infot = 24
855  CALL cggesx( 'V', 'V', 'S', clctsx, '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( 'CGGESX', infot, nout, lerr, ok )
859  nt = nt + 13
860 *
861 * CGGEV
862 *
863  srnamt = 'CGGEV '
864  infot = 1
865  CALL cggev( '/', 'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
866  $ w, 1, rw, info )
867  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
868  infot = 2
869  CALL cggev( 'N', '/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
870  $ w, 1, rw, info )
871  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
872  infot = 3
873  CALL cggev( 'V', 'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
874  $ w, 1, rw, info )
875  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
876  infot = 5
877  CALL cggev( 'V', 'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
878  $ w, 1, rw, info )
879  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
880  infot = 7
881  CALL cggev( 'V', 'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
882  $ w, 1, rw, info )
883  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
884  infot = 11
885  CALL cggev( 'N', 'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
886  $ w, 1, rw, info )
887  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
888  infot = 11
889  CALL cggev( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
890  $ w, 1, rw, info )
891  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
892  infot = 13
893  CALL cggev( 'V', 'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
894  $ w, 1, rw, info )
895  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
896  infot = 13
897  CALL cggev( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
898  $ w, 1, rw, info )
899  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
900  infot = 15
901  CALL cggev( 'V', 'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
902  $ w, 1, rw, info )
903  CALL chkxer( 'CGGEV ', infot, nout, lerr, ok )
904  nt = nt + 10
905 *
906 * CGGEV3
907 *
908  srnamt = 'CGGEV3'
909  infot = 1
910  CALL cggev3( '/', 'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
911  $ w, 1, rw, info )
912  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
913  infot = 2
914  CALL cggev3( 'N', '/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
915  $ w, 1, rw, info )
916  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
917  infot = 3
918  CALL cggev3( 'V', 'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
919  $ w, 1, rw, info )
920  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
921  infot = 5
922  CALL cggev3( 'V', 'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
923  $ w, 1, rw, info )
924  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
925  infot = 7
926  CALL cggev3( 'V', 'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
927  $ w, 1, rw, info )
928  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
929  infot = 11
930  CALL cggev3( 'N', 'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
931  $ w, 1, rw, info )
932  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
933  infot = 11
934  CALL cggev3( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
935  $ w, 1, rw, info )
936  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
937  infot = 13
938  CALL cggev3( 'V', 'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
939  $ w, 1, rw, info )
940  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
941  infot = 13
942  CALL cggev3( 'V', 'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
943  $ w, 1, rw, info )
944  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
945  infot = 15
946  CALL cggev3( 'V', 'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
947  $ w, 1, rw, info )
948  CALL chkxer( 'CGGEV3', infot, nout, lerr, ok )
949  nt = nt + 10
950 *
951 * CGGEVX
952 *
953  srnamt = 'CGGEVX'
954  infot = 1
955  CALL cggevx( '/', 'N', 'N', 'N', 1, a, 1, b, 1, alpha, beta, q,
956  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
957  $ w, 1, rw, iw, bw, info )
958  CALL chkxer( 'CGGEVX', infot, nout, lerr, ok )
959  infot = 2
960  CALL cggevx( 'N', '/', 'N', 'N', 1, a, 1, b, 1, alpha, beta, q,
961  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
962  $ w, 1, rw, iw, bw, info )
963  CALL chkxer( 'CGGEVX', infot, nout, lerr, ok )
964  infot = 3
965  CALL cggevx( 'N', 'N', '/', 'N', 1, a, 1, b, 1, alpha, beta, q,
966  $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
967  $ w, 1, rw, iw, bw, info )
968  CALL chkxer( 'CGGEVX', infot, nout, lerr, ok )
969  infot = 4
970  CALL cggevx( '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( 'CGGEVX', infot, nout, lerr, ok )
974  infot = 5
975  CALL cggevx( '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( 'CGGEVX', infot, nout, lerr, ok )
979  infot = 7
980  CALL cggevx( '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( 'CGGEVX', infot, nout, lerr, ok )
984  infot = 9
985  CALL cggevx( '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( 'CGGEVX', infot, nout, lerr, ok )
989  infot = 13
990  CALL cggevx( '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( 'CGGEVX', infot, nout, lerr, ok )
994  infot = 13
995  CALL cggevx( '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( 'CGGEVX', infot, nout, lerr, ok )
999  infot = 15
1000  CALL cggevx( '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( 'CGGEVX', infot, nout, lerr, ok )
1004  infot = 15
1005  CALL cggevx( '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( 'CGGEVX', infot, nout, lerr, ok )
1009  infot = 25
1010  CALL cggevx( '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( 'CGGEVX', infot, nout, lerr, ok )
1014  nt = nt + 12
1015 *
1016 * CTGEXC
1017 *
1018  srnamt = 'CTGEXC'
1019  infot = 3
1020  CALL ctgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1021  $ ilst, info )
1022  CALL chkxer( 'CTGEXC', infot, nout, lerr, ok )
1023  infot = 5
1024  CALL ctgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1025  $ ilst, info )
1026  CALL chkxer( 'CTGEXC', infot, nout, lerr, ok )
1027  infot = 7
1028  CALL ctgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1029  $ ilst, info )
1030  CALL chkxer( 'CTGEXC', infot, nout, lerr, ok )
1031  infot = 9
1032  CALL ctgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1033  $ ilst, info )
1034  CALL chkxer( 'CTGEXC', infot, nout, lerr, ok )
1035  infot = 9
1036  CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1037  $ ilst, info )
1038  CALL chkxer( 'CTGEXC', infot, nout, lerr, ok )
1039  infot = 11
1040  CALL ctgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1041  $ ilst, info )
1042  CALL chkxer( 'CTGEXC', infot, nout, lerr, ok )
1043  infot = 11
1044  CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1045  $ ilst, info )
1046  CALL chkxer( 'CTGEXC', infot, nout, lerr, ok )
1047  nt = nt + 7
1048 *
1049 * CTGSEN
1050 *
1051  srnamt = 'CTGSEN'
1052  infot = 1
1053  CALL ctgsen( -1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1054  $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1055  $ info )
1056  CALL chkxer( 'CTGSEN', infot, nout, lerr, ok )
1057  infot = 5
1058  CALL ctgsen( 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( 'CTGSEN', infot, nout, lerr, ok )
1062  infot = 7
1063  CALL ctgsen( 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( 'CTGSEN', infot, nout, lerr, ok )
1067  infot = 9
1068  CALL ctgsen( 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( 'CTGSEN', infot, nout, lerr, ok )
1072  infot = 13
1073  CALL ctgsen( 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( 'CTGSEN', infot, nout, lerr, ok )
1077  infot = 15
1078  CALL ctgsen( 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( 'CTGSEN', infot, nout, lerr, ok )
1082  infot = 21
1083  CALL ctgsen( 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( 'CTGSEN', infot, nout, lerr, ok )
1087  infot = 23
1088  CALL ctgsen( 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( 'CTGSEN', infot, nout, lerr, ok )
1092  infot = 23
1093  CALL ctgsen( 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( 'CTGSEN', infot, nout, lerr, ok )
1097  infot = 23
1098  CALL ctgsen( 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( 'CTGSEN', infot, nout, lerr, ok )
1102  nt = nt + 11
1103 *
1104 * CTGSNA
1105 *
1106  srnamt = 'CTGSNA'
1107  infot = 1
1108  CALL ctgsna( '/', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1109  $ 1, m, w, 1, iw, info )
1110  CALL chkxer( 'CTGSNA', infot, nout, lerr, ok )
1111  infot = 2
1112  CALL ctgsna( 'B', '/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1113  $ 1, m, w, 1, iw, info )
1114  CALL chkxer( 'CTGSNA', infot, nout, lerr, ok )
1115  infot = 4
1116  CALL ctgsna( 'B', 'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1117  $ 1, m, w, 1, iw, info )
1118  CALL chkxer( 'CTGSNA', infot, nout, lerr, ok )
1119  infot = 6
1120  CALL ctgsna( 'B', 'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1121  $ 1, m, w, 1, iw, info )
1122  CALL chkxer( 'CTGSNA', infot, nout, lerr, ok )
1123  infot = 8
1124  CALL ctgsna( 'B', 'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1125  $ 1, m, w, 1, iw, info )
1126  CALL chkxer( 'CTGSNA', infot, nout, lerr, ok )
1127  infot = 10
1128  CALL ctgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1129  $ 1, m, w, 1, iw, info )
1130  CALL chkxer( 'CTGSNA', infot, nout, lerr, ok )
1131  infot = 12
1132  CALL ctgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1133  $ 1, m, w, 1, iw, info )
1134  CALL chkxer( 'CTGSNA', infot, nout, lerr, ok )
1135  infot = 15
1136  CALL ctgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1137  $ 0, m, w, 1, iw, info )
1138  CALL chkxer( 'CTGSNA', infot, nout, lerr, ok )
1139  infot = 18
1140  CALL ctgsna( 'E', 'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1141  $ 1, m, w, 0, iw, info )
1142  CALL chkxer( 'CTGSNA', infot, nout, lerr, ok )
1143  nt = nt + 9
1144 *
1145 * CTGSYL
1146 *
1147  srnamt = 'CTGSYL'
1148  infot = 1
1149  CALL ctgsyl( '/', 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( 'CTGSYL', infot, nout, lerr, ok )
1152  infot = 2
1153  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1156  infot = 3
1157  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1160  infot = 4
1161  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1164  infot = 6
1165  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1168  infot = 8
1169  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1172  infot = 10
1173  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1176  infot = 12
1177  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1180  infot = 14
1181  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1184  infot = 16
1185  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1188  infot = 20
1189  CALL ctgsyl( '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( 'CTGSYL', infot, nout, lerr, ok )
1192  infot = 20
1193  CALL ctgsyl( '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( 'CTGSYL', 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 CERRGG
1215 *
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
logical function lsamen(N, CA, CB)
LSAMEN
Definition: lsamen.f:74
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
Definition: xlaenv.f:81
logical function clctes(Z, D)
CLCTES
Definition: clctes.f:58
logical function clctsx(ALPHA, BETA)
CLCTSX
Definition: clctsx.f:57
subroutine chgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHA, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, RWORK, INFO)
CHGEQZ
Definition: chgeqz.f:284
subroutine ctgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, INFO)
CTGEXC
Definition: ctgexc.f:200
subroutine ctgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
CTGEVC
Definition: ctgevc.f:219
subroutine cggev3(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO)
CGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices (...
Definition: cggev3.f:216
subroutine cgges3(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, BWORK, INFO)
CGGES3 computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
Definition: cgges3.f:269
subroutine cggev(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO)
CGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
Definition: cggev.f:217
subroutine cggesx(JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, RCONDE, RCONDV, WORK, LWORK, RWORK, IWORK, LIWORK, BWORK, INFO)
CGGESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
Definition: cggesx.f:330
subroutine cggevx(BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, ILO, IHI, LSCALE, RSCALE, ABNRM, BBNRM, RCONDE, RCONDV, WORK, LWORK, RWORK, IWORK, BWORK, INFO)
CGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
Definition: cggevx.f:374
subroutine cgges(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, BWORK, INFO)
CGGES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE m...
Definition: cgges.f:270
subroutine cggsvd3(JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, LWORK, RWORK, IWORK, INFO)
CGGSVD3 computes the singular value decomposition (SVD) for OTHER matrices
Definition: cggsvd3.f:354
subroutine cggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
CGGRQF
Definition: cggrqf.f:214
subroutine ctgsen(IJOB, WANTQ, WANTZ, SELECT, N, A, LDA, B, LDB, ALPHA, BETA, Q, LDQ, Z, LDZ, M, PL, PR, DIF, WORK, LWORK, IWORK, LIWORK, INFO)
CTGSEN
Definition: ctgsen.f:433
recursive subroutine cuncsd(JOBU1, JOBU2, JOBV1T, JOBV2T, TRANS, SIGNS, M, P, Q, X11, LDX11, X12, LDX12, X21, LDX21, X22, LDX22, THETA, U1, LDU1, U2, LDU2, V1T, LDV1T, V2T, LDV2T, WORK, LWORK, RWORK, LRWORK, IWORK, INFO)
CUNCSD
Definition: cuncsd.f:320
subroutine cgghd3(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
CGGHD3
Definition: cgghd3.f:231
subroutine cggsvp3(JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, RWORK, TAU, WORK, LWORK, INFO)
CGGSVP3
Definition: cggsvp3.f:278
subroutine ctgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
CTGSNA
Definition: ctgsna.f:311
subroutine cgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
CGGHRD
Definition: cgghrd.f:204
subroutine ctgsja(JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, NCYCLE, INFO)
CTGSJA
Definition: ctgsja.f:379
subroutine cggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
CGGQRF
Definition: cggqrf.f:215
subroutine cggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
CGGGLM
Definition: cggglm.f:185
subroutine cgglse(M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO)
CGGLSE solves overdetermined or underdetermined systems for OTHER matrices
Definition: cgglse.f:180
subroutine ctgsyl(TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO)
CTGSYL
Definition: ctgsyl.f:295
Here is the call graph for this function:
Here is the caller graph for this function: