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
93 EXTERNAL clctes, clctsx, lsamen
108 COMMON / infoc / infot, nout, ok, lerr
109 COMMON / srnamc / srnamt
114 WRITE( nout, fmt = * )
148 IF( lsamen( 2, c2,
'GG' ) )
THEN
154 CALL cgghrd(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
155 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
157 CALL cgghrd(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
158 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
186 CALL cgghd3(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
188 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
190 CALL cgghd3(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
192 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
194 CALL cgghd3(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
196 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
198 CALL cgghd3(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
200 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
202 CALL cgghd3(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
204 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
206 CALL cgghd3(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
208 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
210 CALL cgghd3(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
212 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
214 CALL cgghd3(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
216 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
218 CALL cgghd3(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
220 CALL chkxer(
'CGGHD3', infot, nout, lerr, ok )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
272 CALL ctgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
274 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
276 CALL ctgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
278 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
280 CALL ctgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
282 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
284 CALL ctgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
286 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
288 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
290 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
292 CALL ctgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
294 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
296 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
298 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
300 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
302 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
307 ELSE IF( lsamen( 3, path,
'GSV' ) )
THEN
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',
'/', 0, 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', -1, 0, 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, -1, 0, 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', 0, 0, -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', 2, 1, 1, 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(
'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,
351 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
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,
356 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
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,
361 CALL chkxer(
'CGGSVD3', infot, nout, lerr, ok )
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,
366 CALL chkxer(
'CGGSVD3', 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',
'/', 0, 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', -1, 0, 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, -1, 0, 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', 0, 0, -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', 2, 1, 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(
'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,
411 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
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,
416 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
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,
421 CALL chkxer(
'CGGSVP3', infot, nout, lerr, ok )
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,
426 CALL chkxer(
'CGGSVP3', 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',
'/', 0, 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', -1, 0, 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, -1, 0, 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, -1, dummyk, dummyl, a, 1, 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, 0, b,
464 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
466 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
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,
471 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
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,
476 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
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,
481 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
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,
486 CALL chkxer(
'CTGSJA', infot, nout, lerr, ok )
491 ELSE IF( lsamen( 3, path,
'GLM' ) )
THEN
497 CALL cggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
499 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
501 CALL cggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
503 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
505 CALL cggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
507 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
509 CALL cggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
511 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
513 CALL cggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
515 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
517 CALL cggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
519 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
521 CALL cggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
523 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
525 CALL cggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
527 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
532 ELSE IF( lsamen( 3, path,
'LSE' ) )
THEN
538 CALL cgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
540 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
542 CALL cgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
544 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
546 CALL cgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
548 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
550 CALL cgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
552 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
554 CALL cgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
556 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
558 CALL cgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
560 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
562 CALL cgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
564 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
566 CALL cgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
568 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
573 ELSE IF( lsamen( 3, path,
'CSD' ) )
THEN
579 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
582 $ a, 1, a, 1, a, 1, a,
583 $ 1, w, lw, rw, lw, iw, info )
584 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
586 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
589 $ a, 1, a, 1, a, 1, a,
590 $ 1, w, lw, rw, lw, iw, info )
591 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
593 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
596 $ a, 1, a, 1, a, 1, a,
597 $ 1, w, lw, rw, lw, iw, info )
598 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
600 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
603 $ a, 1, a, 1, a, 1, a,
604 $ 1, w, lw, rw, lw, iw, info )
605 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
607 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
610 $ a, -1, a, 1, a, 1, a,
611 $ 1, w, lw, rw, lw, iw, info )
612 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
614 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
617 $ a, 1, a, -1, a, 1, a,
618 $ 1, w, lw, rw, lw, iw, info )
619 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
621 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
624 $ a, 1, a, 1, a, -1, a,
625 $ 1, w, lw, rw, lw, iw, info )
626 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
628 CALL cuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
631 $ a, 1, a, 1, a, 1, a,
632 $ -1, w, lw, rw, lw, iw, info )
633 CALL chkxer(
'CUNCSD', infot, nout, lerr, ok )
638 ELSE IF( lsamen( 3, path,
'GQR' ) )
THEN
644 CALL cggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
645 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
647 CALL cggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
648 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
650 CALL cggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
651 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
653 CALL cggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
654 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
656 CALL cggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
657 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
659 CALL cggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
660 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
667 CALL cggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
668 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
670 CALL cggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
671 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
673 CALL cggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
674 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
676 CALL cggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
677 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
679 CALL cggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
680 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
682 CALL cggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
683 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
688 ELSE IF( lsamen( 3, path,
'CGS' ) .OR.
689 $ lsamen( 3, path,
'CGV' ) .OR.
690 $ lsamen( 3, path,
'CGX' ) .OR. lsamen( 3, path,
'CXV' ) )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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(
'N',
'/',
'S', 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',
'/', clctsx,
'N', 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,
'/', 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, 1, 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, 0, b, 1, 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, 0, sdim,
826 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
828 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
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,
833 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
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,
838 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
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,
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, 1, rce, rcv, w, 1, rw, iw,
848 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
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,
853 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
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,
858 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
865 CALL cggev(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
867 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
869 CALL cggev(
'N',
'/', 1, a, 1, 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, 1, alpha, beta, q, 1, u, 1,
875 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
877 CALL cggev(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
879 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
881 CALL cggev(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
883 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
885 CALL cggev(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
887 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
889 CALL cggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
891 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
893 CALL cggev(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
895 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
897 CALL cggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
899 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
901 CALL cggev(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
903 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
910 CALL cggev3(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
912 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
914 CALL cggev3(
'N',
'/', 1, a, 1, 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, 1, alpha, beta, q, 1, u, 1,
920 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
922 CALL cggev3(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
924 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
926 CALL cggev3(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
928 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
930 CALL cggev3(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
932 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
934 CALL cggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
936 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
938 CALL cggev3(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
940 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
942 CALL cggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
944 CALL chkxer(
'CGGEV3', infot, nout, lerr, ok )
946 CALL cggev3(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
948 CALL chkxer(
'CGGEV3', 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',
'/', 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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
1020 CALL ctgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1022 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1024 CALL ctgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1026 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1028 CALL ctgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1030 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1032 CALL ctgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1034 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1036 CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1038 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1040 CALL ctgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1042 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
1044 CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1046 CALL chkxer(
'CTGEXC', 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, 1, 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, 0, b, 1, 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, 0, alpha,
1069 $ beta, q, 1, 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, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1076 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
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,
1081 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
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,
1086 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
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,
1091 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
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,
1096 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
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,
1101 CALL chkxer(
'CTGSEN', infot, nout, lerr, ok )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
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 )
1202 WRITE( nout, fmt = 9999 )path, nt
1204 WRITE( nout, fmt = 9998 )path
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 ',
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine cerrgg(path, nunit)
CERRGG
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 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 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 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 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 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 cggglm(n, m, p, a, lda, b, ldb, d, x, y, work, lwork, info)
CGGGLM
subroutine cgghd3(compq, compz, n, ilo, ihi, a, lda, b, ldb, q, ldq, z, ldz, work, lwork, info)
CGGHD3
subroutine cgghrd(compq, compz, n, ilo, ihi, a, lda, b, ldb, q, ldq, z, ldz, info)
CGGHRD
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 cggqrf(n, m, p, a, lda, taua, b, ldb, taub, work, lwork, info)
CGGQRF
subroutine cggrqf(m, p, n, a, lda, taua, b, ldb, taub, work, lwork, info)
CGGRQF
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 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 chgeqz(job, compq, compz, n, ilo, ihi, h, ldh, t, ldt, alpha, beta, q, ldq, z, ldz, work, lwork, rwork, info)
CHGEQZ
subroutine ctgevc(side, howmny, select, n, s, lds, p, ldp, vl, ldvl, vr, ldvr, mm, m, work, rwork, info)
CTGEVC
subroutine ctgexc(wantq, wantz, n, a, lda, b, ldb, q, ldq, z, ldz, ifst, ilst, info)
CTGEXC
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 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 ctgsna(job, howmny, select, n, a, lda, b, ldb, vl, ldvl, vr, ldvr, s, dif, mm, m, work, lwork, iwork, info)
CTGSNA
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
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