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
93 EXTERNAL lsamen, zlctes, zlctsx
108 COMMON / infoc / infot, nout, ok, lerr
109 COMMON / srnamc / srnamt
114 WRITE( nout, fmt = * )
148 IF( lsamen( 2, c2,
'GG' ) )
THEN
154 CALL zgghrd(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
155 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
157 CALL zgghrd(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
158 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
160 CALL zgghrd(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
161 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
163 CALL zgghrd(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
164 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
166 CALL zgghrd(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
167 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
169 CALL zgghrd(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
170 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
172 CALL zgghrd(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
173 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
175 CALL zgghrd(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
176 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
178 CALL zgghrd(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
179 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
186 CALL zgghd3(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
188 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
190 CALL zgghd3(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
192 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
194 CALL zgghd3(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
196 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
198 CALL zgghd3(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
200 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
202 CALL zgghd3(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
204 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
206 CALL zgghd3(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
208 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
210 CALL zgghd3(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
212 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
214 CALL zgghd3(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
216 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
218 CALL zgghd3(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
220 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
227 CALL zhgeqz(
'/',
'N',
'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', 0, 1, 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',
'/', 0, 1, 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', -1, 0, 0, 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', 0, 0, 0, a, 1, b, 1, 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', 0, 1, 1, a, 1, 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',
'N',
'N', 2, 1, 1, a, 1, 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',
'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
256 $ q, 1, z, 1, w, 1, rw, info )
257 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
259 CALL zhgeqz(
'E',
'V',
'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
260 $ q, 1, z, 1, w, 1, rw, info )
261 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
263 CALL zhgeqz(
'E',
'N',
'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
264 $ q, 1, z, 1, w, 1, rw, info )
265 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
272 CALL ztgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
274 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
276 CALL ztgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
278 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
280 CALL ztgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
282 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
284 CALL ztgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
286 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
288 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
290 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
292 CALL ztgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
294 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
296 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
298 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
300 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
302 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
307 ELSE IF( lsamen( 3, path,
'GSV' ) )
THEN
313 CALL zggsvd3(
'/',
'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(
'ZGGSVD3', infot, nout, lerr, ok )
318 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
323 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
328 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
333 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
338 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
343 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
348 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
353 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
358 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
363 CALL zggsvd3(
'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(
'ZGGSVD3', infot, nout, lerr, ok )
373 CALL zggsvp3(
'/',
'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(
'ZGGSVP3', infot, nout, lerr, ok )
378 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
383 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
388 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
393 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
398 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
403 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
408 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
413 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
418 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
423 CALL zggsvp3(
'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(
'ZGGSVP3', infot, nout, lerr, ok )
433 CALL ztgsja(
'/',
'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(
'ZTGSJA', infot, nout, lerr, ok )
438 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
443 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
448 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
453 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
458 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
463 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
468 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
473 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
478 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
483 CALL ztgsja(
'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(
'ZTGSJA', infot, nout, lerr, ok )
491 ELSE IF( lsamen( 3, path,
'GLM' ) )
THEN
497 CALL zggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
499 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
501 CALL zggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
503 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
505 CALL zggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
507 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
509 CALL zggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
511 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
513 CALL zggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
515 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
517 CALL zggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
519 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
521 CALL zggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
523 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
525 CALL zggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
527 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
532 ELSE IF( lsamen( 3, path,
'LSE' ) )
THEN
538 CALL zgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
540 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
542 CALL zgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
544 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
546 CALL zgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
548 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
550 CALL zgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
552 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
554 CALL zgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
556 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
558 CALL zgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
560 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
562 CALL zgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
564 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
566 CALL zgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
568 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
573 ELSE IF( lsamen( 3, path,
'CSD' ) )
THEN
579 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
586 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
593 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
600 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
607 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
614 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
621 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
628 CALL zuncsd(
'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(
'ZUNCSD', infot, nout, lerr, ok )
638 ELSE IF( lsamen( 3, path,
'GQR' ) )
THEN
644 CALL zggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
645 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
647 CALL zggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
648 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
650 CALL zggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
651 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
653 CALL zggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
654 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
656 CALL zggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
657 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
659 CALL zggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
660 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
667 CALL zggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
668 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
670 CALL zggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
671 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
673 CALL zggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
674 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
676 CALL zggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
677 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
679 CALL zggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
680 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
682 CALL zggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
683 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
688 ELSE IF( lsamen( 3, path,
'ZGS' ) .OR.
689 $ lsamen( 3, path,
'ZGV' ) .OR.
690 $ lsamen( 3, path,
'ZGX' ) .OR. lsamen( 3, path,
'ZXV' ) )
697 CALL zgges(
'/',
'N',
'S', 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',
'/',
'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',
'/', zlctes, 1, a, 1, 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, 1, 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, 0, b, 1, sdim, alpha,
714 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
715 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
717 CALL zgges(
'N',
'V',
'S', zlctes, 1, a, 1, b, 0, sdim, alpha,
718 $ beta, q, 1, u, 1, 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, 0, u, 1, 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, 1, u, 2, w, 1, rw, bw, info )
727 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
729 CALL zgges(
'N',
'V',
'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
730 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
731 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
733 CALL zgges(
'V',
'V',
'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
734 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
735 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
737 CALL zgges(
'V',
'V',
'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
738 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
739 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
746 CALL zgges3(
'/',
'N',
'S', 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',
'/',
'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
751 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
752 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
754 CALL zgges3(
'N',
'V',
'/', zlctes, 1, a, 1, 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, 1, sdim,
759 $ alpha, 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, 0, b, 1, sdim, alpha,
763 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
764 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
766 CALL zgges3(
'N',
'V',
'S', zlctes, 1, a, 1, b, 0, sdim, alpha,
767 $ beta, q, 1, u, 1, 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, 0, u, 1, 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, 1, u, 2, w, 1, rw, bw, info )
776 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
778 CALL zgges3(
'N',
'V',
'S', zlctes, 1, a, 1, b, 1, sdim, alpha,
779 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
780 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
782 CALL zgges3(
'V',
'V',
'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
783 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
784 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
786 CALL zgges3(
'V',
'V',
'S', zlctes, 2, a, 2, b, 2, sdim, alpha,
787 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
788 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
795 CALL zggesx(
'/',
'N',
'S', zlctsx,
'N', 1, a, 1, b, 1, sdim,
796 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
798 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
800 CALL zggesx(
'N',
'/',
'S', zlctsx,
'N', 1, a, 1, b, 1, sdim,
801 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
803 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
805 CALL zggesx(
'V',
'V',
'/', zlctsx,
'N', 1, a, 1, b, 1, sdim,
806 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
808 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
810 CALL zggesx(
'V',
'V',
'S', zlctsx,
'/', 1, a, 1, b, 1, sdim,
811 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
813 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
815 CALL zggesx(
'V',
'V',
'S', zlctsx,
'B', -1, a, 1, b, 1, sdim,
816 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
818 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
820 CALL zggesx(
'V',
'V',
'S', zlctsx,
'B', 1, a, 0, b, 1, sdim,
821 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
823 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
825 CALL zggesx(
'V',
'V',
'S', zlctsx,
'B', 1, a, 1, b, 0, sdim,
826 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
828 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
830 CALL zggesx(
'V',
'V',
'S', zlctsx,
'B', 1, a, 1, b, 1, sdim,
831 $ alpha, beta, q, 0, u, 1, rce, rcv, w, 1, rw, iw,
833 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
835 CALL zggesx(
'V',
'V',
'S', zlctsx,
'B', 2, a, 2, b, 2, sdim,
836 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
838 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
840 CALL zggesx(
'V',
'V',
'S', zlctsx,
'B', 1, a, 1, b, 1, sdim,
841 $ alpha, beta, q, 1, u, 0, rce, rcv, w, 1, rw, iw,
843 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
845 CALL zggesx(
'V',
'V',
'S', zlctsx,
'B', 2, a, 2, b, 2, sdim,
846 $ alpha, beta, q, 2, u, 1, rce, rcv, w, 1, rw, iw,
848 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
850 CALL zggesx(
'V',
'V',
'S', zlctsx,
'B', 2, a, 2, b, 2, sdim,
851 $ alpha, beta, q, 2, u, 2, rce, rcv, w, 1, rw, iw,
853 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
855 CALL zggesx(
'V',
'V',
'S', zlctsx,
'V', 1, a, 1, b, 1, sdim,
856 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 32, rw, iw,
858 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
865 CALL zggev(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
867 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
869 CALL zggev(
'N',
'/', 1, a, 1, 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, 1, alpha, beta, q, 1, u, 1,
875 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
877 CALL zggev(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
879 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
881 CALL zggev(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
883 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
885 CALL zggev(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
887 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
889 CALL zggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
891 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
893 CALL zggev(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
895 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
897 CALL zggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
899 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
901 CALL zggev(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
903 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
910 CALL zggev3(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
912 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
914 CALL zggev3(
'N',
'/', 1, a, 1, 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, 1, alpha, beta, q, 1, u, 1,
920 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
922 CALL zggev3(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
924 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
926 CALL zggev3(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
928 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
930 CALL zggev3(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
932 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
934 CALL zggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
936 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
938 CALL zggev3(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
940 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
942 CALL zggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
944 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
946 CALL zggev3(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
948 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
955 CALL zggevx(
'/',
'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(
'ZGGEVX', infot, nout, lerr, ok )
960 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
965 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
970 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
975 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
980 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
985 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
990 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
995 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
1000 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
1005 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
1010 CALL zggevx(
'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(
'ZGGEVX', infot, nout, lerr, ok )
1020 CALL ztgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1022 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1024 CALL ztgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1026 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1028 CALL ztgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1030 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1032 CALL ztgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1034 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1036 CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1038 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1040 CALL ztgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1042 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1044 CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1046 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1053 CALL ztgsen( -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(
'ZTGSEN', infot, nout, lerr, ok )
1058 CALL ztgsen( 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(
'ZTGSEN', infot, nout, lerr, ok )
1063 CALL ztgsen( 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(
'ZTGSEN', infot, nout, lerr, ok )
1068 CALL ztgsen( 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(
'ZTGSEN', infot, nout, lerr, ok )
1073 CALL ztgsen( 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(
'ZTGSEN', infot, nout, lerr, ok )
1078 CALL ztgsen( 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(
'ZTGSEN', infot, nout, lerr, ok )
1083 CALL ztgsen( 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(
'ZTGSEN', infot, nout, lerr, ok )
1088 CALL ztgsen( 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(
'ZTGSEN', infot, nout, lerr, ok )
1093 CALL ztgsen( 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(
'ZTGSEN', infot, nout, lerr, ok )
1098 CALL ztgsen( 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(
'ZTGSEN', infot, nout, lerr, ok )
1108 CALL ztgsna(
'/',
'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',
'/', sel, 1, a, 1, 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, 1, q, 1, u, 1, r1, r2,
1117 $ 1, m, w, 1, iw, info )
1118 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1120 CALL ztgsna(
'B',
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1121 $ 1, m, w, 1, iw, info )
1122 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1124 CALL ztgsna(
'B',
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, 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, 0, u, 1, r1, r2,
1129 $ 1, 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, 0, r1, r2,
1133 $ 1, m, w, 1, iw, info )
1134 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1136 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1137 $ 0, m, w, 1, iw, info )
1138 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1140 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1141 $ 1, m, w, 0, iw, info )
1142 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1149 CALL ztgsyl(
'/', 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(
'ZTGSYL', infot, nout, lerr, ok )
1153 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1157 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1161 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1165 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1169 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1173 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1177 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1181 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1185 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1189 CALL ztgsyl(
'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(
'ZTGSYL', infot, nout, lerr, ok )
1193 CALL ztgsyl(
'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(
'ZTGSYL', 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 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 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 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 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 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 zggglm(n, m, p, a, lda, b, ldb, d, x, y, work, lwork, info)
ZGGGLM
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 zgglse(m, n, p, a, lda, b, ldb, c, d, x, work, lwork, info)
ZGGLSE solves overdetermined or underdetermined systems for OTHER matrices
subroutine zggqrf(n, m, p, a, lda, taua, b, ldb, taub, work, lwork, info)
ZGGQRF
subroutine zggrqf(m, p, n, a, lda, taua, b, ldb, taub, work, lwork, info)
ZGGRQF
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 zhgeqz(job, compq, compz, n, ilo, ihi, h, ldh, t, ldt, alpha, beta, q, ldq, z, ldz, work, lwork, rwork, info)
ZHGEQZ
subroutine ztgevc(side, howmny, select, n, s, lds, p, ldp, vl, ldvl, vr, ldvr, mm, m, work, rwork, info)
ZTGEVC
subroutine ztgexc(wantq, wantz, n, a, lda, b, ldb, q, ldq, z, ldz, ifst, ilst, info)
ZTGEXC
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
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 ztgsna(job, howmny, select, n, a, lda, b, ldb, vl, ldvl, vr, ldvr, s, dif, mm, m, work, lwork, iwork, info)
ZTGSNA
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
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 zerrgg(path, nunit)
ZERRGG