74 parameter ( nmax = 3, lw = 6*nmax )
75 DOUBLE PRECISION one, zero
76 parameter ( one = 1.0d+0, zero = 0.0d+0 )
80 INTEGER dummyk, dummyl, i, ifst, ihi, ilo, ilst, info,
81 $ j, m, ncycle, nt, sdim, lwork
82 DOUBLE PRECISION anrm, bnrm, dif, scale, tola, tolb
85 LOGICAL bw( nmax ), sel( nmax )
86 INTEGER iw( lw ), idum(nmax)
87 DOUBLE PRECISION ls( nmax ), r1( nmax ), r2( nmax ),
88 $ rce( nmax ), rcv( nmax ), rs( nmax ), rw( lw )
89 COMPLEX*16 a( nmax, nmax ), alpha( nmax ),
90 $ b( nmax, nmax ), beta( nmax ), q( nmax, nmax ),
91 $ tau( nmax ), u( nmax, nmax ), v( nmax, nmax ),
92 $ w( lw ), z( nmax, nmax )
111 COMMON / infoc / infot, nout, ok, lerr
112 COMMON / srnamc / srnamt
117 WRITE( nout, fmt = * )
143 IF(
lsamen( 2, c2,
'GG' ) )
THEN
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',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
153 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
155 CALL zgghrd(
'N',
'N', -1, 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, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
159 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
161 CALL zgghrd(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
162 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
164 CALL zgghrd(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
165 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
167 CALL zgghrd(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
168 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
170 CALL zgghrd(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
171 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
173 CALL zgghrd(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
174 CALL chkxer(
'ZGGHRD', infot, nout, lerr, ok )
181 CALL zgghd3(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
183 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
185 CALL zgghd3(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
187 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
189 CALL zgghd3(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
191 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
193 CALL zgghd3(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
195 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
197 CALL zgghd3(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
199 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
201 CALL zgghd3(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
203 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
205 CALL zgghd3(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
207 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
209 CALL zgghd3(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
211 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
213 CALL zgghd3(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
215 CALL chkxer(
'ZGGHD3', infot, nout, lerr, ok )
222 CALL zhgeqz(
'/',
'N',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
223 $ q, 1, z, 1, w, 1, rw, info )
224 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
226 CALL zhgeqz(
'E',
'/',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
227 $ q, 1, z, 1, w, 1, rw, info )
228 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
230 CALL zhgeqz(
'E',
'N',
'/', 0, 1, 0, a, 1, b, 1, alpha, beta,
231 $ q, 1, z, 1, w, 1, rw, info )
232 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
234 CALL zhgeqz(
'E',
'N',
'N', -1, 0, 0, a, 1, b, 1, alpha, beta,
235 $ q, 1, z, 1, w, 1, rw, info )
236 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
238 CALL zhgeqz(
'E',
'N',
'N', 0, 0, 0, a, 1, b, 1, alpha, beta,
239 $ q, 1, z, 1, w, 1, rw, info )
240 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
242 CALL zhgeqz(
'E',
'N',
'N', 0, 1, 1, a, 1, b, 1, alpha, beta,
243 $ q, 1, z, 1, w, 1, rw, info )
244 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
246 CALL zhgeqz(
'E',
'N',
'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
247 $ q, 1, z, 1, w, 1, rw, info )
248 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
250 CALL zhgeqz(
'E',
'N',
'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
251 $ q, 1, z, 1, w, 1, rw, info )
252 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
254 CALL zhgeqz(
'E',
'V',
'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
255 $ q, 1, z, 1, w, 1, rw, info )
256 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
258 CALL zhgeqz(
'E',
'N',
'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
259 $ q, 1, z, 1, w, 1, rw, info )
260 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
267 CALL ztgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
269 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
271 CALL ztgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
273 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
275 CALL ztgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
277 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
279 CALL ztgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
281 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
283 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
285 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
287 CALL ztgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
289 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
291 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
293 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
295 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
297 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
302 ELSE IF(
lsamen( 3, path,
'GSV' ) )
THEN
308 CALL zggsvd3(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
309 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
311 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
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',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
324 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
326 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
328 CALL zggsvd3(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
329 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
331 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
333 CALL zggsvd3(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
334 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
336 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
338 CALL zggsvd3(
'N',
'N',
'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
339 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
341 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
343 CALL zggsvd3(
'N',
'N',
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
344 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
346 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
348 CALL zggsvd3(
'U',
'N',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
349 $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, rw, idum,
351 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
353 CALL zggsvd3(
'N',
'V',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
354 $ 2, r1, r2, u, 2, v, 1, q, 1, w, lwork, rw, idum,
356 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
358 CALL zggsvd3(
'N',
'N',
'Q', 2, 2, 2, dummyk, dummyl, a, 2, b,
359 $ 2, r1, r2, u, 2, v, 2, q, 1, w, lwork, rw, idum,
361 CALL chkxer(
'ZGGSVD3', infot, nout, lerr, ok )
368 CALL zggsvp3(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
369 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
371 CALL chkxer(
'ZGGSVP3', 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',
'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
384 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
386 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
388 CALL zggsvp3(
'N',
'N',
'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
389 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
391 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
393 CALL zggsvp3(
'N',
'N',
'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
394 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
396 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
398 CALL zggsvp3(
'N',
'N',
'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
399 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
401 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
403 CALL zggsvp3(
'N',
'N',
'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
404 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
406 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
408 CALL zggsvp3(
'U',
'N',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
409 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
411 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
413 CALL zggsvp3(
'N',
'V',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
414 $ dummyk, dummyl, u, 2, v, 1, q, 1, iw, rw, tau, w,
416 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
418 CALL zggsvp3(
'N',
'N',
'Q', 2, 2, 2, a, 2, b, 2, tola, tolb,
419 $ dummyk, dummyl, u, 2, v, 2, q, 1, iw, rw, tau, w,
421 CALL chkxer(
'ZGGSVP3', infot, nout, lerr, ok )
428 CALL ztgsja(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
429 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
431 CALL chkxer(
'ZTGSJA', 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',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
444 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
446 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
448 CALL ztgsja(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
449 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
451 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
453 CALL ztgsja(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
454 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
456 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
458 CALL ztgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
459 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
461 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
463 CALL ztgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
464 $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
466 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
468 CALL ztgsja(
'U',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
469 $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
471 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
473 CALL ztgsja(
'N',
'V',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
474 $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
476 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
478 CALL ztgsja(
'N',
'N',
'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
479 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
481 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
486 ELSE IF(
lsamen( 3, path,
'GLM' ) )
THEN
492 CALL zggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
494 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
496 CALL zggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
498 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
500 CALL zggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
502 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
504 CALL zggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
506 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
508 CALL zggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
510 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
512 CALL zggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
514 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
516 CALL zggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
518 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
520 CALL zggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
522 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
527 ELSE IF(
lsamen( 3, path,
'LSE' ) )
THEN
533 CALL zgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
535 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
537 CALL zgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
539 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
541 CALL zgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
543 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
545 CALL zgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
547 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
549 CALL zgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
551 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
553 CALL zgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
555 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
557 CALL zgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
559 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
561 CALL zgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
563 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
568 ELSE IF(
lsamen( 3, path,
'CSD' ) )
THEN
574 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
577 $ a, 1, a, 1, a, 1, a,
578 $ 1, w, lw, rw, lw, iw, info )
579 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
581 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
584 $ a, 1, a, 1, a, 1, a,
585 $ 1, w, lw, rw, lw, iw, info )
586 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
588 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
591 $ a, 1, a, 1, a, 1, a,
592 $ 1, w, lw, rw, lw, iw, info )
593 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
595 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
598 $ a, 1, a, 1, a, 1, a,
599 $ 1, w, lw, rw, lw, iw, info )
600 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
602 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
605 $ a, -1, a, 1, a, 1, a,
606 $ 1, w, lw, rw, lw, iw, info )
607 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
609 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
612 $ a, 1, a, -1, a, 1, a,
613 $ 1, w, lw, rw, lw, iw, info )
614 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
616 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
619 $ a, 1, a, 1, a, -1, a,
620 $ 1, w, lw, rw, lw, iw, info )
621 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
623 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
626 $ a, 1, a, 1, a, 1, a,
627 $ -1, w, lw, rw, lw, iw, info )
628 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
633 ELSE IF(
lsamen( 3, path,
'GQR' ) )
THEN
639 CALL zggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
640 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
642 CALL zggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
643 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
645 CALL zggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
646 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
648 CALL zggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
649 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
651 CALL zggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
652 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
654 CALL zggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
655 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
662 CALL zggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
663 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
665 CALL zggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
666 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
668 CALL zggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
669 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
671 CALL zggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
672 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
674 CALL zggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
675 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
677 CALL zggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
678 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
683 ELSE IF(
lsamen( 3, path,
'ZGS' ) .OR.
684 $
lsamen( 3, path,
'ZGV' ) .OR.
685 $
lsamen( 3, path,
'ZGX' ) .OR.
lsamen( 3, path,
'ZXV' ) )
692 CALL zgges(
'/',
'N',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
693 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
694 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
696 CALL zgges(
'N',
'/',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
697 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
698 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
700 CALL zgges(
'N',
'V',
'/',
zlctes, 1, a, 1, b, 1, sdim, alpha,
701 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
702 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
704 CALL zgges(
'N',
'V',
'S',
zlctes, -1, a, 1, b, 1, sdim, alpha,
705 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
706 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
708 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 0, b, 1, sdim, alpha,
709 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
710 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
712 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 0, sdim, alpha,
713 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
714 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
716 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
717 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
718 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
720 CALL zgges(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
721 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
722 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
724 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
725 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
726 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
728 CALL zgges(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
729 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
730 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
732 CALL zgges(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
733 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
734 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
741 CALL zgges3(
'/',
'N',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
742 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
743 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
745 CALL zgges3(
'N',
'/',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
746 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
747 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
749 CALL zgges3(
'N',
'V',
'/',
zlctes, 1, a, 1, b, 1, sdim, alpha,
750 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
751 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
753 CALL zgges3(
'N',
'V',
'S',
zlctes, -1, a, 1, b, 1, sdim,
754 $ alpha, beta, q, 1, u, 1, w, 1, rw, bw, info )
755 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
757 CALL zgges3(
'N',
'V',
'S',
zlctes, 1, a, 0, b, 1, sdim, alpha,
758 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
759 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
761 CALL zgges3(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 0, sdim, alpha,
762 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
763 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
765 CALL zgges3(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
766 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
767 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
769 CALL zgges3(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
770 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
771 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
773 CALL zgges3(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
774 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
775 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
777 CALL zgges3(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
778 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
779 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
781 CALL zgges3(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
782 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
783 CALL chkxer(
'ZGGES3', infot, nout, lerr, ok )
790 CALL zggesx(
'/',
'N',
'S',
zlctsx,
'N', 1, a, 1, b, 1, sdim,
791 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
793 CALL chkxer(
'ZGGESX', 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(
'V',
'V',
'/',
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',
'S',
zlctsx,
'/', 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,
'B', -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, 0, 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, 1, b, 0, 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, 1, sdim,
826 $ alpha, beta, q, 0, u, 1, rce, rcv, w, 1, rw, iw,
828 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
830 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 2, a, 2, b, 2, sdim,
831 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
833 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
835 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 1, a, 1, b, 1, sdim,
836 $ alpha, beta, q, 1, u, 0, rce, rcv, w, 1, rw, iw,
838 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
840 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 2, a, 2, b, 2, sdim,
841 $ alpha, beta, q, 2, u, 1, 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, 2, rce, rcv, w, 1, rw, iw,
848 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
850 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'V', 1, a, 1, b, 1, sdim,
851 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 32, rw, iw,
853 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
860 CALL zggev(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
862 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
864 CALL zggev(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
866 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
868 CALL zggev(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
870 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
872 CALL zggev(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
874 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
876 CALL zggev(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
878 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
880 CALL zggev(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
882 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
884 CALL zggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
886 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
888 CALL zggev(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
890 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
892 CALL zggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
894 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
896 CALL zggev(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
898 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
905 CALL zggev3(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
907 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
909 CALL zggev3(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
911 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
913 CALL zggev3(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
915 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
917 CALL zggev3(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
919 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
921 CALL zggev3(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
923 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
925 CALL zggev3(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
927 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
929 CALL zggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
931 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
933 CALL zggev3(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
935 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
937 CALL zggev3(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
939 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
941 CALL zggev3(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
943 CALL chkxer(
'ZGGEV3', infot, nout, lerr, ok )
950 CALL zggevx(
'/',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
951 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
952 $ w, 1, rw, iw, bw, info )
953 CALL chkxer(
'ZGGEVX', 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',
'N', -1, a, 1, b, 1, alpha, beta,
971 $ q, 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce,
972 $ rcv, w, 1, rw, iw, bw, info )
973 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
975 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 0, b, 1, alpha, beta, q,
976 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
977 $ w, 1, rw, iw, bw, info )
978 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
980 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 0, alpha, beta, q,
981 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
982 $ w, 1, rw, iw, bw, info )
983 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
985 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
986 $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
987 $ w, 1, rw, iw, bw, info )
988 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
990 CALL zggevx(
'N',
'V',
'N',
'N', 2, a, 2, b, 2, alpha, beta, q,
991 $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
992 $ w, 1, rw, iw, bw, info )
993 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
995 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
996 $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
997 $ w, 1, rw, iw, bw, info )
998 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
1000 CALL zggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
1001 $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
1002 $ w, 1, rw, iw, bw, info )
1003 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
1005 CALL zggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
1006 $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
1007 $ w, 0, rw, iw, bw, info )
1008 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
1015 CALL ztgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
1017 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1019 CALL ztgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1021 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1023 CALL ztgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1025 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1027 CALL ztgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1029 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1031 CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1033 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1035 CALL ztgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1037 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1039 CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1041 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
1048 CALL ztgsen( -1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1049 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1051 CALL chkxer(
'ZTGSEN', 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, 0, 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, 1, b, 0, 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, 1, alpha,
1069 $ beta, q, 0, 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, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1076 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1078 CALL ztgsen( 3, .true., .true., sel, 1, a, 1, b, 1, alpha,
1079 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, -5, iw,
1081 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1083 CALL ztgsen( 0, .true., .true., sel, 1, a, 1, b, 1, alpha,
1084 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1086 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1088 CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
1089 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1091 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1093 CALL ztgsen( 5, .true., .true., sel, 1, a, 1, b, 1, alpha,
1094 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
1096 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
1103 CALL ztgsna(
'/',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1104 $ 1, m, w, 1, iw, info )
1105 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1107 CALL ztgsna(
'B',
'/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1108 $ 1, m, w, 1, iw, info )
1109 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1111 CALL ztgsna(
'B',
'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1112 $ 1, m, w, 1, iw, info )
1113 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1115 CALL ztgsna(
'B',
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1116 $ 1, m, w, 1, iw, info )
1117 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1119 CALL ztgsna(
'B',
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1120 $ 1, m, w, 1, iw, info )
1121 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1123 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1124 $ 1, m, w, 1, iw, info )
1125 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1127 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1128 $ 1, m, w, 1, iw, info )
1129 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1131 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1132 $ 0, m, w, 1, iw, info )
1133 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1135 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1136 $ 1, m, w, 0, iw, info )
1137 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
1144 CALL ztgsyl(
'/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1145 $ scale, dif, w, 1, iw, info )
1146 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1148 CALL ztgsyl(
'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1149 $ scale, dif, w, 1, iw, info )
1150 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1152 CALL ztgsyl(
'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1153 $ scale, dif, w, 1, iw, info )
1154 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1156 CALL ztgsyl(
'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1157 $ scale, dif, w, 1, iw, info )
1158 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1160 CALL ztgsyl(
'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1161 $ scale, dif, w, 1, iw, info )
1162 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1164 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1165 $ scale, dif, w, 1, iw, info )
1166 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1168 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1169 $ scale, dif, w, 1, iw, info )
1170 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1172 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1173 $ scale, dif, w, 1, iw, info )
1174 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1176 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1177 $ scale, dif, w, 1, iw, info )
1178 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1180 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1181 $ scale, dif, w, 1, iw, info )
1182 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1184 CALL ztgsyl(
'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1185 $ scale, dif, w, 1, iw, info )
1186 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1188 CALL ztgsyl(
'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1189 $ scale, dif, w, 1, iw, info )
1190 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1197 WRITE( nout, fmt = 9999 )path, nt
1199 WRITE( nout, fmt = 9998 )path
1202 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits (',
1203 $ i3,
' tests done)' )
1204 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',
subroutine zggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGRQF
subroutine zgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
ZGGHRD
logical function zlctsx(ALPHA, BETA)
ZLCTSX
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...
logical function lsamen(N, CA, CB)
LSAMEN
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 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
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 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 ...
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 chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine zgghd3(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
ZGGHD3
subroutine zggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGQRF
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 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 ztgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
ZTGEVC
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
subroutine zhgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHA, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, RWORK, INFO)
ZHGEQZ
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 ...
logical function zlctes(Z, D)
ZLCTES
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 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 ztgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
ZTGSNA
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