71 parameter( nmax = 3, lw = 6*nmax )
72 DOUBLE PRECISION ONE, ZERO
73 parameter( one = 1.0d+0, zero = 0.0d+0 )
77 INTEGER DUMMYK, DUMMYL, I, IFST, IHI, ILO, ILST, INFO,
78 $ J, M, NCYCLE, NT, SDIM, LWORK
79 DOUBLE PRECISION ANRM, BNRM, DIF, SCALE, TOLA, TOLB
82 LOGICAL BW( NMAX ), SEL( NMAX )
83 INTEGER IW( LW ), IDUM(NMAX)
84 DOUBLE PRECISION LS( NMAX ), R1( NMAX ), R2( NMAX ),
85 $ RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW )
86 COMPLEX*16 A( NMAX, NMAX ), ALPHA( NMAX ),
87 $ B( NMAX, NMAX ), BETA( NMAX ), Q( NMAX, NMAX ),
88 $ TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
89 $ W( LW ), Z( NMAX, NMAX )
92 LOGICAL LSAMEN, ZLCTES, ZLCTSX
108 COMMON / infoc / infot, nout, ok, lerr
109 COMMON / srnamc / srnamt
114 WRITE( nout, fmt = * )
140 IF(
lsamen( 2, c2,
'GG' ) )
THEN
146 CALL zgghrd(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
147 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
149 CALL zgghrd(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
150 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
152 CALL zgghrd(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
153 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
155 CALL zgghrd(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
156 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
158 CALL zgghrd(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
159 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
161 CALL zgghrd(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
162 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
164 CALL zgghrd(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
165 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
167 CALL zgghrd(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
168 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
170 CALL zgghrd(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
171 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
178 CALL zgghd3(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
180 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
182 CALL zgghd3(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
184 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
186 CALL zgghd3(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
188 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
190 CALL zgghd3(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
192 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
194 CALL zgghd3(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
196 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
198 CALL zgghd3(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
200 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
202 CALL zgghd3(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
204 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
206 CALL zgghd3(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
208 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
210 CALL zgghd3(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
212 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
219 CALL zhgeqz(
'/',
'N',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
220 $ q, 1, z, 1, w, 1, rw, info )
221 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
223 CALL zhgeqz(
'E',
'/',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
224 $ q, 1, z, 1, w, 1, rw, info )
225 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
227 CALL zhgeqz(
'E',
'N',
'/', 0, 1, 0, a, 1, b, 1, alpha, beta,
228 $ q, 1, z, 1, w, 1, rw, info )
229 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
231 CALL zhgeqz(
'E',
'N',
'N', -1, 0, 0, a, 1, b, 1, alpha, beta,
232 $ q, 1, z, 1, w, 1, rw, info )
233 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
235 CALL zhgeqz(
'E',
'N',
'N', 0, 0, 0, a, 1, b, 1, alpha, beta,
236 $ q, 1, z, 1, w, 1, rw, info )
237 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
239 CALL zhgeqz(
'E',
'N',
'N', 0, 1, 1, a, 1, b, 1, alpha, beta,
240 $ q, 1, z, 1, w, 1, rw, info )
241 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
243 CALL zhgeqz(
'E',
'N',
'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
244 $ q, 1, z, 1, w, 1, rw, info )
245 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
247 CALL zhgeqz(
'E',
'N',
'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
248 $ q, 1, z, 1, w, 1, rw, info )
249 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
251 CALL zhgeqz(
'E',
'V',
'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
252 $ q, 1, z, 1, w, 1, rw, info )
253 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
255 CALL zhgeqz(
'E',
'N',
'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
256 $ q, 1, z, 1, w, 1, rw, info )
257 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
264 CALL ztgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
266 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
268 CALL ztgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
270 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
272 CALL ztgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
274 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
276 CALL ztgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
278 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
280 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
282 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
284 CALL ztgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
286 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
288 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
290 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
292 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
294 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
299 ELSE IF(
lsamen( 3, path,
'GSV' ) )
THEN
305 CALL zggsvd3(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
306 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
308 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
310 CALL zggsvd3(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
311 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
313 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
315 CALL zggsvd3(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
316 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
318 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
320 CALL zggsvd3(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
321 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
323 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
325 CALL zggsvd3(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
326 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
328 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
330 CALL zggsvd3(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
331 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
333 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
335 CALL zggsvd3(
'N',
'N',
'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
336 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
338 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
340 CALL zggsvd3(
'N',
'N',
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
341 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
343 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
345 CALL zggsvd3(
'U',
'N',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
346 $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
348 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
350 CALL zggsvd3(
'N',
'V',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
351 $ 2, r1, r2, u, 2, v, 1, q, 1, w, lwork, rw, idum,
353 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
355 CALL zggsvd3(
'N',
'N',
'Q', 2, 2, 2, dummyk, dummyl, a, 2, b,
356 $ 2, r1, r2, u, 2, v, 2, q, 1, w, lwork, rw, idum,
358 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
365 CALL zggsvp3(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
366 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
368 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
370 CALL zggsvp3(
'N',
'/',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
371 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
373 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
375 CALL zggsvp3(
'N',
'N',
'/', 0, 0, 0, a, 1, b, 1, tola, tolb,
376 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
378 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
380 CALL zggsvp3(
'N',
'N',
'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
381 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
383 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
385 CALL zggsvp3(
'N',
'N',
'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
386 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
388 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
390 CALL zggsvp3(
'N',
'N',
'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
391 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
393 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
395 CALL zggsvp3(
'N',
'N',
'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
396 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
398 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
400 CALL zggsvp3(
'N',
'N',
'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
401 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
403 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
405 CALL zggsvp3(
'U',
'N',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
406 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
408 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
410 CALL zggsvp3(
'N',
'V',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
411 $ dummyk, dummyl, u, 2, v, 1, q, 1, iw, rw, tau, w,
413 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
415 CALL zggsvp3(
'N',
'N',
'Q', 2, 2, 2, a, 2, b, 2, tola, tolb,
416 $ dummyk, dummyl, u, 2, v, 2, q, 1, iw, rw, tau, w,
418 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
425 CALL ztgsja(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
426 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
428 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
430 CALL ztgsja(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
431 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
433 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
435 CALL ztgsja(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
436 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
438 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
440 CALL ztgsja(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
441 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
443 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
445 CALL ztgsja(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
446 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
448 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
450 CALL ztgsja(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
451 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
453 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
455 CALL ztgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
456 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
458 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
460 CALL ztgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
461 $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
463 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
465 CALL ztgsja(
'U',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
466 $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
468 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
470 CALL ztgsja(
'N',
'V',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
471 $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
473 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
475 CALL ztgsja(
'N',
'N',
'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
476 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
478 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
483 ELSE IF(
lsamen( 3, path,
'GLM' ) )
THEN
489 CALL zggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
491 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
493 CALL zggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
495 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
497 CALL zggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
499 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
501 CALL zggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
503 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
505 CALL zggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
507 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
509 CALL zggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
511 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
513 CALL zggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
515 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
517 CALL zggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
519 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
524 ELSE IF(
lsamen( 3, path,
'LSE' ) )
THEN
530 CALL zgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
532 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
534 CALL zgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
536 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
538 CALL zgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
540 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
542 CALL zgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
544 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
546 CALL zgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
548 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
550 CALL zgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
552 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
554 CALL zgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
556 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
558 CALL zgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
560 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
565 ELSE IF(
lsamen( 3, path,
'CSD' ) )
THEN
571 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
578 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
585 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
592 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
599 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
606 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
613 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
620 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
630 ELSE IF(
lsamen( 3, path,
'GQR' ) )
THEN
636 CALL zggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
637 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
639 CALL zggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
640 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
642 CALL zggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
643 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
645 CALL zggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
646 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
648 CALL zggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
649 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
651 CALL zggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
652 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
659 CALL zggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
660 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
662 CALL zggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
663 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
665 CALL zggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
666 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
668 CALL zggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
669 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
671 CALL zggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
672 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
674 CALL zggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
675 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
680 ELSE IF(
lsamen( 3, path,
'ZGS' ) .OR.
681 $
lsamen( 3, path,
'ZGV' ) .OR.
682 $
lsamen( 3, path,
'ZGX' ) .OR.
lsamen( 3, path,
'ZXV' ) )
689 CALL zgges(
'/',
'N',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
690 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
691 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
693 CALL zgges(
'N',
'/',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
694 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
695 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
697 CALL zgges(
'N',
'V',
'/',
zlctes, 1, a, 1, b, 1, sdim, alpha,
698 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
699 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
701 CALL zgges(
'N',
'V',
'S',
zlctes, -1, a, 1, b, 1, sdim, alpha,
702 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
703 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
705 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 0, b, 1, sdim, alpha,
706 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
707 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
709 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 0, sdim, alpha,
710 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
711 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
713 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
714 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
715 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
717 CALL zgges(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
718 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
719 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
721 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
722 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
723 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
725 CALL zgges(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
726 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
727 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
729 CALL zgges(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
730 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
731 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
738 CALL zgges3(
'/',
'N',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
739 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
740 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
742 CALL zgges3(
'N',
'/',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
743 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
744 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
746 CALL zgges3(
'N',
'V',
'/',
zlctes, 1, a, 1, b, 1, sdim, alpha,
747 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
748 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
750 CALL zgges3(
'N',
'V',
'S',
zlctes, -1, a, 1, b, 1, sdim,
751 $ alpha, beta, q, 1, u, 1, w, 1, rw, bw, info )
752 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
754 CALL zgges3(
'N',
'V',
'S',
zlctes, 1, a, 0, b, 1, sdim, alpha,
755 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
756 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
758 CALL zgges3(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 0, sdim, alpha,
759 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
760 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
762 CALL zgges3(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
763 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
764 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
766 CALL zgges3(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
767 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
768 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
770 CALL zgges3(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
771 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
772 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
774 CALL zgges3(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
775 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
776 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
778 CALL zgges3(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
779 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
780 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
787 CALL zggesx(
'/',
'N',
'S',
zlctsx,
'N', 1, a, 1, b, 1, sdim,
788 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
790 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
792 CALL zggesx(
'N',
'/',
'S',
zlctsx,
'N', 1, a, 1, b, 1, sdim,
793 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
795 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
797 CALL zggesx(
'V',
'V',
'/',
zlctsx,
'N', 1, a, 1, b, 1, sdim,
798 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
800 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
802 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'/', 1, a, 1, b, 1, sdim,
803 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
805 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
807 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', -1, a, 1, b, 1, sdim,
808 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
810 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
812 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 1, a, 0, b, 1, sdim,
813 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
815 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
817 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 1, a, 1, b, 0, sdim,
818 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
820 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
822 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 1, a, 1, b, 1, sdim,
823 $ alpha, beta, q, 0, u, 1, rce, rcv, w, 1, rw, iw,
825 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
827 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 2, a, 2, b, 2, sdim,
828 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
830 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
832 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 1, a, 1, b, 1, sdim,
833 $ alpha, beta, q, 1, u, 0, rce, rcv, w, 1, rw, iw,
835 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
837 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 2, a, 2, b, 2, sdim,
838 $ alpha, beta, q, 2, u, 1, rce, rcv, w, 1, rw, iw,
840 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
842 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 2, a, 2, b, 2, sdim,
843 $ alpha, beta, q, 2, u, 2, rce, rcv, w, 1, rw, iw,
845 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
847 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'V', 1, a, 1, b, 1, sdim,
848 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 32, rw, iw,
850 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
857 CALL zggev(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
859 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
861 CALL zggev(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
863 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
865 CALL zggev(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
867 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
869 CALL zggev(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
871 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
873 CALL zggev(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
875 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
877 CALL zggev(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
879 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
881 CALL zggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
883 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
885 CALL zggev(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
887 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
889 CALL zggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
891 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
893 CALL zggev(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
895 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
902 CALL zggev3(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
904 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
906 CALL zggev3(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
908 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
910 CALL zggev3(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
912 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
914 CALL zggev3(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
916 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
918 CALL zggev3(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
920 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
922 CALL zggev3(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
924 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
926 CALL zggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
928 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
930 CALL zggev3(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
932 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
934 CALL zggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
936 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
938 CALL zggev3(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
940 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
947 CALL zggevx(
'/',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
948 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
949 $ w, 1, rw, iw, bw, info )
950 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
952 CALL zggevx(
'N',
'/',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
953 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
954 $ w, 1, rw, iw, bw, info )
955 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
957 CALL zggevx(
'N',
'N',
'/',
'N', 1, a, 1, b, 1, alpha, beta, q,
958 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
959 $ w, 1, rw, iw, bw, info )
960 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
962 CALL zggevx(
'N',
'N',
'N',
'/', 1, a, 1, b, 1, alpha, beta, q,
963 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
964 $ w, 1, rw, iw, bw, info )
965 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
967 CALL zggevx(
'N',
'N',
'N',
'N', -1, a, 1, b, 1, alpha, beta,
968 $ q, 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce,
969 $ rcv, w, 1, rw, iw, bw, info )
970 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
972 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 0, b, 1, alpha, beta, q,
973 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
974 $ w, 1, rw, iw, bw, info )
975 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
977 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 0, alpha, beta, q,
978 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
979 $ w, 1, rw, iw, bw, info )
980 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
982 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
983 $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
984 $ w, 1, rw, iw, bw, info )
985 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
987 CALL zggevx(
'N',
'V',
'N',
'N', 2, a, 2, b, 2, alpha, beta, q,
988 $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
989 $ w, 1, rw, iw, bw, info )
990 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
992 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
993 $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
994 $ w, 1, rw, iw, bw, info )
995 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
997 CALL zggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
998 $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
999 $ w, 1, rw, iw, bw, info )
1000 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
1002 CALL zggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
1003 $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
1004 $ w, 0, rw, iw, bw, info )
1005 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
1012 CALL ztgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1014 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1016 CALL ztgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1018 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1020 CALL ztgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1022 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1024 CALL ztgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1026 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1028 CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1030 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1032 CALL ztgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1034 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1036 CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1038 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1045 CALL ztgsen( -1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1046 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1048 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1050 CALL ztgsen( 1, .true., .true., sel, -1, a, 1, b, 1, alpha,
1051 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1053 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1055 CALL ztgsen( 1, .true., .true., sel, 1, a, 0, b, 1, alpha,
1056 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1058 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1060 CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 0, alpha,
1061 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1063 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1065 CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1066 $ beta, q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1068 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1070 CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1071 $ beta, q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1073 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1075 CALL ztgsen( 3, .true., .true., sel, 1, a, 1, b, 1, alpha,
1076 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, -5, iw,
1078 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1080 CALL ztgsen( 0, .true., .true., sel, 1, a, 1, b, 1, alpha,
1081 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1083 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1085 CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1086 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1088 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1090 CALL ztgsen( 5, .true., .true., sel, 1, a, 1, b, 1, alpha,
1091 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1093 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1100 CALL ztgsna(
'/',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1101 $ 1, m, w, 1, iw, info )
1102 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1104 CALL ztgsna(
'B',
'/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1105 $ 1, m, w, 1, iw, info )
1106 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1108 CALL ztgsna(
'B',
'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1109 $ 1, m, w, 1, iw, info )
1110 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1112 CALL ztgsna(
'B',
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1113 $ 1, m, w, 1, iw, info )
1114 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1116 CALL ztgsna(
'B',
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1117 $ 1, m, w, 1, iw, info )
1118 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1120 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1121 $ 1, m, w, 1, iw, info )
1122 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1124 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1125 $ 1, m, w, 1, iw, info )
1126 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1128 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1129 $ 0, m, w, 1, iw, info )
1130 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1132 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1133 $ 1, m, w, 0, iw, info )
1134 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1141 CALL ztgsyl(
'/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1142 $ scale, dif, w, 1, iw, info )
1143 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1145 CALL ztgsyl(
'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1146 $ scale, dif, w, 1, iw, info )
1147 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1149 CALL ztgsyl(
'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1150 $ scale, dif, w, 1, iw, info )
1151 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1153 CALL ztgsyl(
'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1154 $ scale, dif, w, 1, iw, info )
1155 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1157 CALL ztgsyl(
'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1158 $ scale, dif, w, 1, iw, info )
1159 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1161 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1162 $ scale, dif, w, 1, iw, info )
1163 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1165 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1166 $ scale, dif, w, 1, iw, info )
1167 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1169 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1170 $ scale, dif, w, 1, iw, info )
1171 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1173 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1174 $ scale, dif, w, 1, iw, info )
1175 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1177 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1178 $ scale, dif, w, 1, iw, info )
1179 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1181 CALL ztgsyl(
'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1182 $ scale, dif, w, 1, iw, info )
1183 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1185 CALL ztgsyl(
'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1186 $ scale, dif, w, 1, iw, info )
1187 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
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 zlctes(Z, D)
ZLCTES
logical function zlctsx(ALPHA, BETA)
ZLCTSX
subroutine ztgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
ZTGEVC
subroutine zhgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHA, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, RWORK, INFO)
ZHGEQZ
subroutine ztgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, INFO)
ZTGEXC
subroutine zgges3(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, BWORK, INFO)
ZGGES3 computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
subroutine zggev3(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO)
ZGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices (...
subroutine zggesx(JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, RCONDE, RCONDV, WORK, LWORK, RWORK, IWORK, LIWORK, BWORK, INFO)
ZGGESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
subroutine zgges(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, BWORK, INFO)
ZGGES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE m...
subroutine zggev(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO)
ZGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
subroutine zggevx(BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, ILO, IHI, LSCALE, RSCALE, ABNRM, BBNRM, RCONDE, RCONDV, WORK, LWORK, RWORK, IWORK, BWORK, INFO)
ZGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
subroutine zggsvd3(JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, LWORK, RWORK, IWORK, INFO)
ZGGSVD3 computes the singular value decomposition (SVD) for OTHER matrices
subroutine zggsvp3(JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, RWORK, TAU, WORK, LWORK, INFO)
ZGGSVP3
subroutine ztgsen(IJOB, WANTQ, WANTZ, SELECT, N, A, LDA, B, LDB, ALPHA, BETA, Q, LDQ, Z, LDZ, M, PL, PR, DIF, WORK, LWORK, IWORK, LIWORK, INFO)
ZTGSEN
recursive subroutine zuncsd(JOBU1, JOBU2, JOBV1T, JOBV2T, TRANS, SIGNS, M, P, Q, X11, LDX11, X12, LDX12, X21, LDX21, X22, LDX22, THETA, U1, LDU1, U2, LDU2, V1T, LDV1T, V2T, LDV2T, WORK, LWORK, RWORK, LRWORK, IWORK, INFO)
ZUNCSD
subroutine zggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGQRF
subroutine ztgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
ZTGSNA
subroutine zggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGRQF
subroutine zgghd3(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
ZGGHD3
subroutine zgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
ZGGHRD
subroutine ztgsja(JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, NCYCLE, INFO)
ZTGSJA
subroutine zggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
ZGGGLM
subroutine zgglse(M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO)
ZGGLSE solves overdetermined or underdetermined systems for OTHER matrices
subroutine ztgsyl(TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO)
ZTGSYL