71 parameter( nmax = 3, lw = 6*nmax )
73 parameter( one = 1.0e+0, zero = 0.0e+0 )
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
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 )
92 LOGICAL CLCTES, CLCTSX, LSAMEN
108 COMMON / infoc / infot, nout, ok, lerr
109 COMMON / srnamc / srnamt
114 WRITE( nout, fmt = * )
140 IF(
lsamen( 2, c2,
'GG' ) )
THEN
146 CALL cgghrd(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
147 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
149 CALL cgghrd(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
150 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
152 CALL cgghrd(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
153 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
155 CALL cgghrd(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
156 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
158 CALL cgghrd(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
159 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
161 CALL cgghrd(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
162 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
164 CALL cgghrd(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
165 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
167 CALL cgghrd(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
168 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
170 CALL cgghrd(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
171 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
178 CALL cgghd3(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
180 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
182 CALL cgghd3(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
184 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
186 CALL cgghd3(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
188 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
190 CALL cgghd3(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
192 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
194 CALL cgghd3(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
196 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
198 CALL cgghd3(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
200 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
202 CALL cgghd3(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
204 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
206 CALL cgghd3(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
208 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
210 CALL cgghd3(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
212 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
219 CALL chgeqz(
'/',
'N',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
220 $ q, 1, z, 1, w, 1, rw, info )
221 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
223 CALL chgeqz(
'E',
'/',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
224 $ q, 1, z, 1, w, 1, rw, info )
225 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
227 CALL chgeqz(
'E',
'N',
'/', 0, 1, 0, a, 1, b, 1, alpha, beta,
228 $ q, 1, z, 1, w, 1, rw, info )
229 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
231 CALL chgeqz(
'E',
'N',
'N', -1, 0, 0, a, 1, b, 1, alpha, beta,
232 $ q, 1, z, 1, w, 1, rw, info )
233 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
235 CALL chgeqz(
'E',
'N',
'N', 0, 0, 0, a, 1, b, 1, alpha, beta,
236 $ q, 1, z, 1, w, 1, rw, info )
237 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
239 CALL chgeqz(
'E',
'N',
'N', 0, 1, 1, a, 1, b, 1, alpha, beta,
240 $ q, 1, z, 1, w, 1, rw, info )
241 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
243 CALL chgeqz(
'E',
'N',
'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
244 $ q, 1, z, 1, w, 1, rw, info )
245 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
247 CALL chgeqz(
'E',
'N',
'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
248 $ q, 1, z, 1, w, 1, rw, info )
249 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
251 CALL chgeqz(
'E',
'V',
'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
252 $ q, 1, z, 1, w, 1, rw, info )
253 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
255 CALL chgeqz(
'E',
'N',
'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
256 $ q, 1, z, 1, w, 1, rw, info )
257 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
264 CALL ctgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
266 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
268 CALL ctgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
270 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
272 CALL ctgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
274 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
276 CALL ctgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
278 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
280 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
282 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
284 CALL ctgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
286 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
288 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
290 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
292 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
294 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
299 ELSE IF(
lsamen( 3, path,
'GSV' ) )
THEN
305 CALL cggsvd3(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
306 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
308 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
310 CALL cggsvd3(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
311 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
313 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
315 CALL cggsvd3(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
316 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
318 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
320 CALL cggsvd3(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
321 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
323 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
325 CALL cggsvd3(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
326 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
328 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
330 CALL cggsvd3(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
331 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
333 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
335 CALL cggsvd3(
'N',
'N',
'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
336 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
338 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
340 CALL cggsvd3(
'N',
'N',
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
341 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
343 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
345 CALL cggsvd3(
'U',
'N',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
346 $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
348 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
350 CALL cggsvd3(
'N',
'V',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
351 $ 2, r1, r2, u, 2, v, 1, q, 1, w, lwork, rw, idum,
353 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
355 CALL cggsvd3(
'N',
'N',
'Q', 2, 2, 2, dummyk, dummyl, a, 2, b,
356 $ 2, r1, r2, u, 2, v, 2, q, 1, w, lwork, rw, idum,
358 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
365 CALL cggsvp3(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
366 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
368 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
370 CALL cggsvp3(
'N',
'/',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
371 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
373 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
375 CALL cggsvp3(
'N',
'N',
'/', 0, 0, 0, a, 1, b, 1, tola, tolb,
376 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
378 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
380 CALL cggsvp3(
'N',
'N',
'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
381 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
383 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
385 CALL cggsvp3(
'N',
'N',
'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
386 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
388 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
390 CALL cggsvp3(
'N',
'N',
'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
391 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
393 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
395 CALL cggsvp3(
'N',
'N',
'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
396 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
398 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
400 CALL cggsvp3(
'N',
'N',
'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
401 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
403 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
405 CALL cggsvp3(
'U',
'N',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
406 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
408 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
410 CALL cggsvp3(
'N',
'V',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
411 $ dummyk, dummyl, u, 2, v, 1, q, 1, iw, rw, tau, w,
413 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
415 CALL cggsvp3(
'N',
'N',
'Q', 2, 2, 2, a, 2, b, 2, tola, tolb,
416 $ dummyk, dummyl, u, 2, v, 2, q, 1, iw, rw, tau, w,
418 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
425 CALL ctgsja(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
426 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
428 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
430 CALL ctgsja(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
431 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
433 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
435 CALL ctgsja(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
436 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
438 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
440 CALL ctgsja(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
441 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
443 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
445 CALL ctgsja(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
446 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
448 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
450 CALL ctgsja(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
451 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
453 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
455 CALL ctgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
456 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
458 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
460 CALL ctgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
461 $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
463 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
465 CALL ctgsja(
'U',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
466 $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
468 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
470 CALL ctgsja(
'N',
'V',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
471 $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
473 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
475 CALL ctgsja(
'N',
'N',
'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
476 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
478 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
483 ELSE IF(
lsamen( 3, path,
'GLM' ) )
THEN
489 CALL cggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
491 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
493 CALL cggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
495 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
497 CALL cggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
499 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
501 CALL cggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
503 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
505 CALL cggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
507 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
509 CALL cggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
511 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
513 CALL cggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
515 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
517 CALL cggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
519 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
524 ELSE IF(
lsamen( 3, path,
'LSE' ) )
THEN
530 CALL cgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
532 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
534 CALL cgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
536 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
538 CALL cgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
540 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
542 CALL cgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
544 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
546 CALL cgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
548 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
550 CALL cgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
552 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
554 CALL cgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
556 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
558 CALL cgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
560 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
565 ELSE IF(
lsamen( 3, path,
'CSD' ) )
THEN
571 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
574 $ a, 1, a, 1, a, 1, a,
575 $ 1, w, lw, rw, lw, iw, info )
576 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
578 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
581 $ a, 1, a, 1, a, 1, a,
582 $ 1, w, lw, rw, lw, iw, info )
583 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
585 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
588 $ a, 1, a, 1, a, 1, a,
589 $ 1, w, lw, rw, lw, iw, info )
590 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
592 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
595 $ a, 1, a, 1, a, 1, a,
596 $ 1, w, lw, rw, lw, iw, info )
597 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
599 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
602 $ a, -1, a, 1, a, 1, a,
603 $ 1, w, lw, rw, lw, iw, info )
604 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
606 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
609 $ a, 1, a, -1, a, 1, a,
610 $ 1, w, lw, rw, lw, iw, info )
611 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
613 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
616 $ a, 1, a, 1, a, -1, a,
617 $ 1, w, lw, rw, lw, iw, info )
618 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
620 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
623 $ a, 1, a, 1, a, 1, a,
624 $ -1, w, lw, rw, lw, iw, info )
625 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
630 ELSE IF(
lsamen( 3, path,
'GQR' ) )
THEN
636 CALL cggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
637 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
639 CALL cggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
640 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
642 CALL cggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
643 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
645 CALL cggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
646 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
648 CALL cggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
649 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
651 CALL cggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
652 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
659 CALL cggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
660 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
662 CALL cggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
663 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
665 CALL cggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
666 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
668 CALL cggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
669 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
671 CALL cggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
672 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
674 CALL cggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
675 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
680 ELSE IF(
lsamen( 3, path,
'CGS' ) .OR.
681 $
lsamen( 3, path,
'CGV' ) .OR.
682 $
lsamen( 3, path,
'CGX' ) .OR.
lsamen( 3, path,
'CXV' ) )
689 CALL cgges(
'/',
'N',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
690 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
691 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
693 CALL cgges(
'N',
'/',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
694 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
695 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
697 CALL cgges(
'N',
'V',
'/',
clctes, 1, a, 1, b, 1, sdim, alpha,
698 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
699 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
701 CALL cgges(
'N',
'V',
'S',
clctes, -1, a, 1, b, 1, sdim, alpha,
702 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
703 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
705 CALL cgges(
'N',
'V',
'S',
clctes, 1, a, 0, b, 1, sdim, alpha,
706 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
707 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
709 CALL cgges(
'N',
'V',
'S',
clctes, 1, a, 1, b, 0, sdim, alpha,
710 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
711 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
713 CALL cgges(
'N',
'V',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
714 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
715 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
717 CALL cgges(
'V',
'V',
'S',
clctes, 2, a, 2, b, 2, sdim, alpha,
718 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
719 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
721 CALL cgges(
'N',
'V',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
722 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
723 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
725 CALL cgges(
'V',
'V',
'S',
clctes, 2, a, 2, b, 2, sdim, alpha,
726 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
727 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
729 CALL cgges(
'V',
'V',
'S',
clctes, 2, a, 2, b, 2, sdim, alpha,
730 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
731 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
738 CALL cgges3(
'/',
'N',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
739 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
740 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
742 CALL cgges3(
'N',
'/',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
743 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
744 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
746 CALL cgges3(
'N',
'V',
'/',
clctes, 1, a, 1, b, 1, sdim, alpha,
747 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
748 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
750 CALL cgges3(
'N',
'V',
'S',
clctes, -1, a, 1, b, 1, sdim,
751 $ alpha, beta, q, 1, u, 1, w, 1, rw, bw, info )
752 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
754 CALL cgges3(
'N',
'V',
'S',
clctes, 1, a, 0, b, 1, sdim, alpha,
755 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
756 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
758 CALL cgges3(
'N',
'V',
'S',
clctes, 1, a, 1, b, 0, sdim, alpha,
759 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
760 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
762 CALL cgges3(
'N',
'V',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
763 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
764 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
766 CALL cgges3(
'V',
'V',
'S',
clctes, 2, a, 2, b, 2, sdim, alpha,
767 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
768 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
770 CALL cgges3(
'N',
'V',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
771 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
772 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
774 CALL cgges3(
'V',
'V',
'S',
clctes, 2, a, 2, b, 2, sdim, alpha,
775 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
776 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
778 CALL cgges3(
'V',
'V',
'S',
clctes, 2, a, 2, b, 2, sdim, alpha,
779 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
780 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
787 CALL cggesx(
'/',
'N',
'S',
clctsx,
'N', 1, a, 1, b, 1, sdim,
788 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
790 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
792 CALL cggesx(
'N',
'/',
'S',
clctsx,
'N', 1, a, 1, b, 1, sdim,
793 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
795 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
797 CALL cggesx(
'V',
'V',
'/',
clctsx,
'N', 1, a, 1, b, 1, sdim,
798 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
800 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
802 CALL cggesx(
'V',
'V',
'S',
clctsx,
'/', 1, a, 1, b, 1, sdim,
803 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
805 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
807 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', -1, a, 1, b, 1, sdim,
808 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
810 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
812 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 1, a, 0, b, 1, sdim,
813 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
815 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
817 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 1, a, 1, b, 0, sdim,
818 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
820 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
822 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 1, a, 1, b, 1, sdim,
823 $ alpha, beta, q, 0, u, 1, rce, rcv, w, 1, rw, iw,
825 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
827 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 2, a, 2, b, 2, sdim,
828 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
830 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
832 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 1, a, 1, b, 1, sdim,
833 $ alpha, beta, q, 1, u, 0, rce, rcv, w, 1, rw, iw,
835 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
837 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 2, a, 2, b, 2, sdim,
838 $ alpha, beta, q, 2, u, 1, rce, rcv, w, 1, rw, iw,
840 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
842 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 2, a, 2, b, 2, sdim,
843 $ alpha, beta, q, 2, u, 2, rce, rcv, w, 1, rw, iw,
845 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
847 CALL cggesx(
'V',
'V',
'S',
clctsx,
'V', 1, a, 1, b, 1, sdim,
848 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 32, rw, iw,
850 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
857 CALL cggev(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
859 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
861 CALL cggev(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
863 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
865 CALL cggev(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
867 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
869 CALL cggev(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
871 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
873 CALL cggev(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
875 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
877 CALL cggev(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
879 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
881 CALL cggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
883 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
885 CALL cggev(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
887 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
889 CALL cggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
891 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
893 CALL cggev(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
895 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
902 CALL cggev3(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
904 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
906 CALL cggev3(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
908 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
910 CALL cggev3(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
912 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
914 CALL cggev3(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
916 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
918 CALL cggev3(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
920 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
922 CALL cggev3(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
924 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
926 CALL cggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
928 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
930 CALL cggev3(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
932 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
934 CALL cggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
936 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
938 CALL cggev3(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
940 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
947 CALL cggevx(
'/',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
948 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
949 $ w, 1, rw, iw, bw, info )
950 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
952 CALL cggevx(
'N',
'/',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
953 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
954 $ w, 1, rw, iw, bw, info )
955 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
957 CALL cggevx(
'N',
'N',
'/',
'N', 1, a, 1, b, 1, alpha, beta, q,
958 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
959 $ w, 1, rw, iw, bw, info )
960 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
962 CALL cggevx(
'N',
'N',
'N',
'/', 1, a, 1, b, 1, alpha, beta, q,
963 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
964 $ w, 1, rw, iw, bw, info )
965 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
967 CALL cggevx(
'N',
'N',
'N',
'N', -1, a, 1, b, 1, alpha, beta,
968 $ q, 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce,
969 $ rcv, w, 1, rw, iw, bw, info )
970 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
972 CALL cggevx(
'N',
'N',
'N',
'N', 1, a, 0, b, 1, alpha, beta, q,
973 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
974 $ w, 1, rw, iw, bw, info )
975 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
977 CALL cggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 0, alpha, beta, q,
978 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
979 $ w, 1, rw, iw, bw, info )
980 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
982 CALL cggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
983 $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
984 $ w, 1, rw, iw, bw, info )
985 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
987 CALL cggevx(
'N',
'V',
'N',
'N', 2, a, 2, b, 2, alpha, beta, q,
988 $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
989 $ w, 1, rw, iw, bw, info )
990 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
992 CALL cggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
993 $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
994 $ w, 1, rw, iw, bw, info )
995 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
997 CALL cggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
998 $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
999 $ w, 1, rw, iw, bw, info )
1000 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
1002 CALL cggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
1003 $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
1004 $ w, 0, rw, iw, bw, info )
1005 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
1012 CALL ctgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1014 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1016 CALL ctgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1018 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1020 CALL ctgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1022 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1024 CALL ctgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1026 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1028 CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1030 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1032 CALL ctgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1034 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1036 CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1038 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1045 CALL ctgsen( -1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1046 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1048 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1050 CALL ctgsen( 1, .true., .true., sel, -1, a, 1, b, 1, alpha,
1051 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1053 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1055 CALL ctgsen( 1, .true., .true., sel, 1, a, 0, b, 1, alpha,
1056 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1058 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1060 CALL ctgsen( 1, .true., .true., sel, 1, a, 1, b, 0, alpha,
1061 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1063 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1065 CALL ctgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1066 $ beta, q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1068 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1070 CALL ctgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1071 $ beta, q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1073 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1075 CALL ctgsen( 3, .true., .true., sel, 1, a, 1, b, 1, alpha,
1076 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, -5, iw,
1078 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1080 CALL ctgsen( 0, .true., .true., sel, 1, a, 1, b, 1, alpha,
1081 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1083 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1085 CALL ctgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1086 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1088 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1090 CALL ctgsen( 5, .true., .true., sel, 1, a, 1, b, 1, alpha,
1091 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1093 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1100 CALL ctgsna(
'/',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1101 $ 1, m, w, 1, iw, info )
1102 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1104 CALL ctgsna(
'B',
'/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1105 $ 1, m, w, 1, iw, info )
1106 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1108 CALL ctgsna(
'B',
'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1109 $ 1, m, w, 1, iw, info )
1110 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1112 CALL ctgsna(
'B',
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1113 $ 1, m, w, 1, iw, info )
1114 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1116 CALL ctgsna(
'B',
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1117 $ 1, m, w, 1, iw, info )
1118 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1120 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1121 $ 1, m, w, 1, iw, info )
1122 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1124 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1125 $ 1, m, w, 1, iw, info )
1126 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1128 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1129 $ 0, m, w, 1, iw, info )
1130 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1132 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1133 $ 1, m, w, 0, iw, info )
1134 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1141 CALL ctgsyl(
'/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1142 $ scale, dif, w, 1, iw, info )
1143 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1145 CALL ctgsyl(
'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1146 $ scale, dif, w, 1, iw, info )
1147 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1149 CALL ctgsyl(
'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1150 $ scale, dif, w, 1, iw, info )
1151 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1153 CALL ctgsyl(
'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1154 $ scale, dif, w, 1, iw, info )
1155 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1157 CALL ctgsyl(
'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1158 $ scale, dif, w, 1, iw, info )
1159 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1161 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1162 $ scale, dif, w, 1, iw, info )
1163 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1165 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1166 $ scale, dif, w, 1, iw, info )
1167 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1169 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1170 $ scale, dif, w, 1, iw, info )
1171 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1173 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1174 $ scale, dif, w, 1, iw, info )
1175 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1177 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1178 $ scale, dif, w, 1, iw, info )
1179 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1181 CALL ctgsyl(
'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1182 $ scale, dif, w, 1, iw, info )
1183 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1185 CALL ctgsyl(
'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1186 $ scale, dif, w, 1, iw, info )
1187 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1194 WRITE( nout, fmt = 9999 )path, nt
1196 WRITE( nout, fmt = 9998 )path
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 ',
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
logical function lsamen(N, CA, CB)
LSAMEN
logical function clctes(Z, D)
CLCTES
logical function clctsx(ALPHA, BETA)
CLCTSX
subroutine chgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHA, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, RWORK, INFO)
CHGEQZ
subroutine ctgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, INFO)
CTGEXC
subroutine ctgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
CTGEVC
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 (...
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 ...
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
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 ...
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
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...
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
subroutine cggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
CGGRQF
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
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
subroutine cgghd3(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
CGGHD3
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
subroutine ctgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
CTGSNA
subroutine cgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
CGGHRD
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
subroutine cggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
CGGQRF
subroutine cggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
CGGGLM
subroutine cgglse(M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO)
CGGLSE solves overdetermined or underdetermined systems for OTHER matrices
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