58 SUBROUTINE cerrgg( PATH, NUNIT )
74 parameter ( nmax = 3, lw = 6*nmax )
76 parameter ( one = 1.0e+0, zero = 0.0e+0 )
80 INTEGER DUMMYK, DUMMYL, I, IFST, IHI, ILO, ILST, INFO,
81 $ j, m, ncycle, nt, sdim, lwork
82 REAL ANRM, BNRM, DIF, SCALE, TOLA, TOLB
85 LOGICAL BW( nmax ), SEL( nmax )
86 INTEGER IW( lw ), IDUM(nmax)
87 REAL LS( nmax ), R1( nmax ), R2( nmax ),
88 $ rce( nmax ), rcv( nmax ), rs( nmax ), rw( lw )
89 COMPLEX A( nmax, nmax ), ALPHA( nmax ),
90 $ b( nmax, nmax ), beta( nmax ), q( nmax, nmax ),
91 $ tau( nmax ), u( nmax, nmax ), v( nmax, nmax ),
92 $ w( lw ), z( nmax, nmax )
95 LOGICAL CLCTES, CLCTSX, LSAMEN
96 EXTERNAL clctes, clctsx, lsamen
111 COMMON / infoc / infot, nout, ok, lerr
112 COMMON / srnamc / srnamt
117 WRITE( nout, fmt = * )
143 IF( lsamen( 2, c2,
'GG' ) )
THEN
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',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
153 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
155 CALL cgghrd(
'N',
'N', -1, 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, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
159 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
161 CALL cgghrd(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
162 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
164 CALL cgghrd(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
165 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
167 CALL cgghrd(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
168 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
170 CALL cgghrd(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
171 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
173 CALL cgghrd(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
174 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
181 CALL cgghd3(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
183 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
185 CALL cgghd3(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
187 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
189 CALL cgghd3(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
191 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
193 CALL cgghd3(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
195 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
197 CALL cgghd3(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
199 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
201 CALL cgghd3(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
203 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
205 CALL cgghd3(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
207 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
209 CALL cgghd3(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
211 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
213 CALL cgghd3(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
215 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
222 CALL chgeqz(
'/',
'N',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
223 $ q, 1, z, 1, w, 1, rw, info )
224 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
226 CALL chgeqz(
'E',
'/',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
227 $ q, 1, z, 1, w, 1, rw, info )
228 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
230 CALL chgeqz(
'E',
'N',
'/', 0, 1, 0, a, 1, b, 1, alpha, beta,
231 $ q, 1, z, 1, w, 1, rw, info )
232 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
234 CALL chgeqz(
'E',
'N',
'N', -1, 0, 0, a, 1, b, 1, alpha, beta,
235 $ q, 1, z, 1, w, 1, rw, info )
236 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
238 CALL chgeqz(
'E',
'N',
'N', 0, 0, 0, a, 1, b, 1, alpha, beta,
239 $ q, 1, z, 1, w, 1, rw, info )
240 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
242 CALL chgeqz(
'E',
'N',
'N', 0, 1, 1, a, 1, b, 1, alpha, beta,
243 $ q, 1, z, 1, w, 1, rw, info )
244 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
246 CALL chgeqz(
'E',
'N',
'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
247 $ q, 1, z, 1, w, 1, rw, info )
248 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
250 CALL chgeqz(
'E',
'N',
'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
251 $ q, 1, z, 1, w, 1, rw, info )
252 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
254 CALL chgeqz(
'E',
'V',
'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
255 $ q, 1, z, 1, w, 1, rw, info )
256 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
258 CALL chgeqz(
'E',
'N',
'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
259 $ q, 1, z, 1, w, 1, rw, info )
260 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
267 CALL ctgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
269 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
271 CALL ctgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
273 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
275 CALL ctgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
277 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
279 CALL ctgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
281 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
283 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
285 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
287 CALL ctgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
289 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
291 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
293 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
295 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
297 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
302 ELSE IF( lsamen( 3, path,
'GSV' ) )
THEN
308 CALL cggsvd3(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
309 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
311 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
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,
316 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
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,
321 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
323 CALL cggsvd3(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
324 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
326 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
328 CALL cggsvd3(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
329 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
331 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
333 CALL cggsvd3(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
334 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
336 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
338 CALL cggsvd3(
'N',
'N',
'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
339 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
341 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
343 CALL cggsvd3(
'N',
'N',
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
344 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
346 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
348 CALL cggsvd3(
'U',
'N',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
349 $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
351 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
353 CALL cggsvd3(
'N',
'V',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
354 $ 2, r1, r2, u, 2, v, 1, q, 1, w, lwork, rw, idum,
356 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
358 CALL cggsvd3(
'N',
'N',
'Q', 2, 2, 2, dummyk, dummyl, a, 2, b,
359 $ 2, r1, r2, u, 2, v, 2, q, 1, w, lwork, rw, idum,
361 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
368 CALL cggsvp3(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
369 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
371 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
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,
376 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
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,
381 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
383 CALL cggsvp3(
'N',
'N',
'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
384 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
386 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
388 CALL cggsvp3(
'N',
'N',
'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
389 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
391 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
393 CALL cggsvp3(
'N',
'N',
'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
394 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
396 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
398 CALL cggsvp3(
'N',
'N',
'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
399 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
401 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
403 CALL cggsvp3(
'N',
'N',
'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
404 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
406 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
408 CALL cggsvp3(
'U',
'N',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
409 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
411 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
413 CALL cggsvp3(
'N',
'V',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
414 $ dummyk, dummyl, u, 2, v, 1, q, 1, iw, rw, tau, w,
416 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
418 CALL cggsvp3(
'N',
'N',
'Q', 2, 2, 2, a, 2, b, 2, tola, tolb,
419 $ dummyk, dummyl, u, 2, v, 2, q, 1, iw, rw, tau, w,
421 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
428 CALL ctgsja(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
429 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
431 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
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,
436 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
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,
441 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
443 CALL ctgsja(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
444 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
446 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
448 CALL ctgsja(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
449 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
451 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
453 CALL ctgsja(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
454 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
456 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
458 CALL ctgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
459 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
461 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
463 CALL ctgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
464 $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
466 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
468 CALL ctgsja(
'U',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
469 $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
471 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
473 CALL ctgsja(
'N',
'V',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
474 $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
476 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
478 CALL ctgsja(
'N',
'N',
'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
479 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
481 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
486 ELSE IF( lsamen( 3, path,
'GLM' ) )
THEN
492 CALL cggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
494 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
496 CALL cggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
498 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
500 CALL cggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
502 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
504 CALL cggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
506 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
508 CALL cggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
510 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
512 CALL cggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
514 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
516 CALL cggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
518 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
520 CALL cggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
522 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
527 ELSE IF( lsamen( 3, path,
'LSE' ) )
THEN
533 CALL cgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
535 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
537 CALL cgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
539 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
541 CALL cgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
543 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
545 CALL cgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
547 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
549 CALL cgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
551 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
553 CALL cgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
555 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
557 CALL cgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
559 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
561 CALL cgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
563 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
568 ELSE IF( lsamen( 3, path,
'CSD' ) )
THEN
574 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
577 $ a, 1, a, 1, a, 1, a,
578 $ 1, w, lw, rw, lw, iw, info )
579 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
581 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
584 $ a, 1, a, 1, a, 1, a,
585 $ 1, w, lw, rw, lw, iw, info )
586 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
588 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
591 $ a, 1, a, 1, a, 1, a,
592 $ 1, w, lw, rw, lw, iw, info )
593 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
595 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
598 $ a, 1, a, 1, a, 1, a,
599 $ 1, w, lw, rw, lw, iw, info )
600 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
602 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
605 $ a, -1, a, 1, a, 1, a,
606 $ 1, w, lw, rw, lw, iw, info )
607 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
609 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
612 $ a, 1, a, -1, a, 1, a,
613 $ 1, w, lw, rw, lw, iw, info )
614 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
616 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
619 $ a, 1, a, 1, a, -1, a,
620 $ 1, w, lw, rw, lw, iw, info )
621 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
623 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
626 $ a, 1, a, 1, a, 1, a,
627 $ -1, w, lw, rw, lw, iw, info )
628 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
633 ELSE IF( lsamen( 3, path,
'GQR' ) )
THEN
639 CALL cggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
640 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
642 CALL cggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
643 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
645 CALL cggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
646 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
648 CALL cggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
649 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
651 CALL cggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
652 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
654 CALL cggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
655 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
662 CALL cggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
663 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
665 CALL cggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
666 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
668 CALL cggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
669 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
671 CALL cggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
672 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
674 CALL cggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
675 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
677 CALL cggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
678 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
683 ELSE IF( lsamen( 3, path,
'CGS' ) .OR.
684 $ lsamen( 3, path,
'CGV' ) .OR.
685 $ lsamen( 3, path,
'CGX' ) .OR. lsamen( 3, path,
'CXV' ) )
692 CALL cgges(
'/',
'N',
'S', clctes, 1, a, 1, b, 1, sdim, alpha,
693 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
694 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
696 CALL cgges(
'N',
'/',
'S', clctes, 1, a, 1, b, 1, sdim, alpha,
697 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
698 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
700 CALL cgges(
'N',
'V',
'/', clctes, 1, a, 1, b, 1, sdim, alpha,
701 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
702 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
704 CALL cgges(
'N',
'V',
'S', clctes, -1, a, 1, b, 1, sdim, alpha,
705 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
706 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
708 CALL cgges(
'N',
'V',
'S', clctes, 1, a, 0, b, 1, sdim, alpha,
709 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
710 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
712 CALL cgges(
'N',
'V',
'S', clctes, 1, a, 1, b, 0, sdim, alpha,
713 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
714 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
716 CALL cgges(
'N',
'V',
'S', clctes, 1, a, 1, b, 1, sdim, alpha,
717 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
718 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
720 CALL cgges(
'V',
'V',
'S', clctes, 2, a, 2, b, 2, sdim, alpha,
721 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
722 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
724 CALL cgges(
'N',
'V',
'S', clctes, 1, a, 1, b, 1, sdim, alpha,
725 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
726 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
728 CALL cgges(
'V',
'V',
'S', clctes, 2, a, 2, b, 2, sdim, alpha,
729 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
730 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
732 CALL cgges(
'V',
'V',
'S', clctes, 2, a, 2, b, 2, sdim, alpha,
733 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
734 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
741 CALL cgges3(
'/',
'N',
'S', clctes, 1, a, 1, b, 1, sdim, alpha,
742 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
743 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
745 CALL cgges3(
'N',
'/',
'S', clctes, 1, a, 1, b, 1, sdim, alpha,
746 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
747 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
749 CALL cgges3(
'N',
'V',
'/', clctes, 1, a, 1, b, 1, sdim, alpha,
750 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
751 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
753 CALL cgges3(
'N',
'V',
'S', clctes, -1, a, 1, b, 1, sdim,
754 $ alpha, beta, q, 1, u, 1, w, 1, rw, bw, info )
755 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
757 CALL cgges3(
'N',
'V',
'S', clctes, 1, a, 0, b, 1, sdim, alpha,
758 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
759 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
761 CALL cgges3(
'N',
'V',
'S', clctes, 1, a, 1, b, 0, sdim, alpha,
762 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
763 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
765 CALL cgges3(
'N',
'V',
'S', clctes, 1, a, 1, b, 1, sdim, alpha,
766 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
767 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
769 CALL cgges3(
'V',
'V',
'S', clctes, 2, a, 2, b, 2, sdim, alpha,
770 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
771 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
773 CALL cgges3(
'N',
'V',
'S', clctes, 1, a, 1, b, 1, sdim, alpha,
774 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
775 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
777 CALL cgges3(
'V',
'V',
'S', clctes, 2, a, 2, b, 2, sdim, alpha,
778 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
779 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
781 CALL cgges3(
'V',
'V',
'S', clctes, 2, a, 2, b, 2, sdim, alpha,
782 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
783 CALL chkxer(
'CGGES3', infot, nout, lerr, ok )
790 CALL cggesx(
'/',
'N',
'S', clctsx,
'N', 1, a, 1, b, 1, sdim,
791 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
793 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
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,
798 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
800 CALL cggesx(
'V',
'V',
'/', clctsx,
'N', 1, a, 1, b, 1, sdim,
801 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
803 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
805 CALL cggesx(
'V',
'V',
'S', clctsx,
'/', 1, a, 1, b, 1, sdim,
806 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
808 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
810 CALL cggesx(
'V',
'V',
'S', clctsx,
'B', -1, a, 1, b, 1, sdim,
811 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
813 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
815 CALL cggesx(
'V',
'V',
'S', clctsx,
'B', 1, a, 0, b, 1, sdim,
816 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
818 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
820 CALL cggesx(
'V',
'V',
'S', clctsx,
'B', 1, a, 1, b, 0, sdim,
821 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
823 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
825 CALL cggesx(
'V',
'V',
'S', clctsx,
'B', 1, a, 1, b, 1, sdim,
826 $ alpha, beta, q, 0, u, 1, rce, rcv, w, 1, rw, iw,
828 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
830 CALL cggesx(
'V',
'V',
'S', clctsx,
'B', 2, a, 2, b, 2, sdim,
831 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
833 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
835 CALL cggesx(
'V',
'V',
'S', clctsx,
'B', 1, a, 1, b, 1, sdim,
836 $ alpha, beta, q, 1, u, 0, rce, rcv, w, 1, rw, iw,
838 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
840 CALL cggesx(
'V',
'V',
'S', clctsx,
'B', 2, a, 2, b, 2, sdim,
841 $ alpha, beta, q, 2, u, 1, rce, rcv, w, 1, rw, iw,
843 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
845 CALL cggesx(
'V',
'V',
'S', clctsx,
'B', 2, a, 2, b, 2, sdim,
846 $ alpha, beta, q, 2, u, 2, rce, rcv, w, 1, rw, iw,
848 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
850 CALL cggesx(
'V',
'V',
'S', clctsx,
'V', 1, a, 1, b, 1, sdim,
851 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 32, rw, iw,
853 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
860 CALL cggev(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
862 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
864 CALL cggev(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
866 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
868 CALL cggev(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
870 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
872 CALL cggev(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
874 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
876 CALL cggev(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
878 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
880 CALL cggev(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
882 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
884 CALL cggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
886 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
888 CALL cggev(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
890 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
892 CALL cggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
894 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
896 CALL cggev(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
898 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
905 CALL cggev3(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
907 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
909 CALL cggev3(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
911 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
913 CALL cggev3(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
915 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
917 CALL cggev3(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
919 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
921 CALL cggev3(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
923 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
925 CALL cggev3(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
927 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
929 CALL cggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
931 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
933 CALL cggev3(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
935 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
937 CALL cggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
939 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
941 CALL cggev3(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
943 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
950 CALL cggevx(
'/',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
951 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
952 $ w, 1, rw, iw, bw, info )
953 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
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 )
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 )
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 )
970 CALL cggevx(
'N',
'N',
'N',
'N', -1, a, 1, b, 1, alpha, beta,
971 $ q, 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce,
972 $ rcv, w, 1, rw, iw, bw, info )
973 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
975 CALL cggevx(
'N',
'N',
'N',
'N', 1, a, 0, b, 1, alpha, beta, q,
976 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
977 $ w, 1, rw, iw, bw, info )
978 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
980 CALL cggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 0, alpha, beta, q,
981 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
982 $ w, 1, rw, iw, bw, info )
983 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
985 CALL cggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
986 $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
987 $ w, 1, rw, iw, bw, info )
988 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
990 CALL cggevx(
'N',
'V',
'N',
'N', 2, a, 2, b, 2, alpha, beta, q,
991 $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
992 $ w, 1, rw, iw, bw, info )
993 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
995 CALL cggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
996 $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
997 $ w, 1, rw, iw, bw, info )
998 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
1000 CALL cggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
1001 $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
1002 $ w, 1, rw, iw, bw, info )
1003 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
1005 CALL cggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
1006 $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
1007 $ w, 0, rw, iw, bw, info )
1008 CALL chkxer(
'CGGEVX', infot, nout, lerr, ok )
1015 CALL ctgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1017 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1019 CALL ctgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1021 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1023 CALL ctgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1025 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1027 CALL ctgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1029 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1031 CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1033 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1035 CALL ctgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1037 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1039 CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1041 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1048 CALL ctgsen( -1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1049 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1051 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
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,
1056 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1058 CALL ctgsen( 1, .true., .true., sel, 1, a, 0, b, 1, alpha,
1059 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1061 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1063 CALL ctgsen( 1, .true., .true., sel, 1, a, 1, b, 0, alpha,
1064 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1066 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1068 CALL ctgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1069 $ beta, q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1071 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1073 CALL ctgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1074 $ beta, q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1076 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1078 CALL ctgsen( 3, .true., .true., sel, 1, a, 1, b, 1, alpha,
1079 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, -5, iw,
1081 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1083 CALL ctgsen( 0, .true., .true., sel, 1, a, 1, b, 1, alpha,
1084 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1086 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1088 CALL ctgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1089 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1091 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1093 CALL ctgsen( 5, .true., .true., sel, 1, a, 1, b, 1, alpha,
1094 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1096 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
1103 CALL ctgsna(
'/',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1104 $ 1, m, w, 1, iw, info )
1105 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1107 CALL ctgsna(
'B',
'/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1108 $ 1, m, w, 1, iw, info )
1109 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1111 CALL ctgsna(
'B',
'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1112 $ 1, m, w, 1, iw, info )
1113 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1115 CALL ctgsna(
'B',
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1116 $ 1, m, w, 1, iw, info )
1117 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1119 CALL ctgsna(
'B',
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1120 $ 1, m, w, 1, iw, info )
1121 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1123 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1124 $ 1, m, w, 1, iw, info )
1125 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1127 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1128 $ 1, m, w, 1, iw, info )
1129 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1131 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1132 $ 0, m, w, 1, iw, info )
1133 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1135 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1136 $ 1, m, w, 0, iw, info )
1137 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
1144 CALL ctgsyl(
'/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1145 $ scale, dif, w, 1, iw, info )
1146 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1148 CALL ctgsyl(
'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1149 $ scale, dif, w, 1, iw, info )
1150 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1152 CALL ctgsyl(
'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1153 $ scale, dif, w, 1, iw, info )
1154 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1156 CALL ctgsyl(
'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1157 $ scale, dif, w, 1, iw, info )
1158 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1160 CALL ctgsyl(
'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1161 $ scale, dif, w, 1, iw, info )
1162 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1164 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1165 $ scale, dif, w, 1, iw, info )
1166 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1168 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1169 $ scale, dif, w, 1, iw, info )
1170 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1172 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1173 $ scale, dif, w, 1, iw, info )
1174 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1176 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1177 $ scale, dif, w, 1, iw, info )
1178 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1180 CALL ctgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1181 $ scale, dif, w, 1, iw, info )
1182 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1184 CALL ctgsyl(
'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1185 $ scale, dif, w, 1, iw, info )
1186 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1188 CALL ctgsyl(
'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1189 $ scale, dif, w, 1, iw, info )
1190 CALL chkxer(
'CTGSYL', infot, nout, lerr, ok )
1197 WRITE( nout, fmt = 9999 )path, nt
1199 WRITE( nout, fmt = 9998 )path
1202 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits (',
1203 $ i3,
' tests done)' )
1204 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',
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 cggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
CGGRQF
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 cgghd3(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
CGGHD3
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
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 cggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
CGGQRF
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 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 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 chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
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 chgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHA, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, RWORK, INFO)
CHGEQZ
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
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 ...
subroutine cggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
CGGGLM
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 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
subroutine ctgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, INFO)
CTGEXC
subroutine cerrgg(PATH, NUNIT)
CERRGG
subroutine ctgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
CTGEVC
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 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