73 parameter( nmax = 3, lw = 6*nmax )
74 DOUBLE PRECISION one, zero
75 parameter( one = 1.0d+0, zero = 0.0d+0 )
79 INTEGER dummyk, dummyl, i, ifst, ihi, ilo, ilst, info,
80 $ j, m, ncycle, nt, sdim
81 DOUBLE PRECISION anrm, bnrm, dif, scale, tola, tolb
84 LOGICAL bw( nmax ), sel( nmax )
86 DOUBLE PRECISION ls( nmax ), r1( nmax ), r2( nmax ),
87 $ rce( nmax ), rcv( nmax ), rs( nmax ), rw( lw )
88 COMPLEX*16 a( nmax, nmax ), alpha( nmax ),
89 $ b( nmax, nmax ), beta( nmax ), q( nmax, nmax ),
90 $ tau( nmax ), u( nmax, nmax ), v( nmax, nmax ),
91 $ w( lw ), z( nmax, nmax )
109 COMMON / infoc / infot, nout, ok, lerr
110 COMMON / srnamc / srnamt
115 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 zhgeqz(
'/',
'N',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
179 $ q, 1, z, 1, w, 1, rw, info )
180 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
182 CALL zhgeqz(
'E',
'/',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
183 $ q, 1, z, 1, w, 1, rw, info )
184 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
186 CALL zhgeqz(
'E',
'N',
'/', 0, 1, 0, a, 1, b, 1, alpha, beta,
187 $ q, 1, z, 1, w, 1, rw, info )
188 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
190 CALL zhgeqz(
'E',
'N',
'N', -1, 0, 0, a, 1, b, 1, alpha, beta,
191 $ q, 1, z, 1, w, 1, rw, info )
192 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
194 CALL zhgeqz(
'E',
'N',
'N', 0, 0, 0, a, 1, b, 1, alpha, beta,
195 $ q, 1, z, 1, w, 1, rw, info )
196 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
198 CALL zhgeqz(
'E',
'N',
'N', 0, 1, 1, a, 1, b, 1, alpha, beta,
199 $ q, 1, z, 1, w, 1, rw, info )
200 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
202 CALL zhgeqz(
'E',
'N',
'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
203 $ q, 1, z, 1, w, 1, rw, info )
204 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
206 CALL zhgeqz(
'E',
'N',
'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
207 $ q, 1, z, 1, w, 1, rw, info )
208 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
210 CALL zhgeqz(
'E',
'V',
'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
211 $ q, 1, z, 1, w, 1, rw, info )
212 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
214 CALL zhgeqz(
'E',
'N',
'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
215 $ q, 1, z, 1, w, 1, rw, info )
216 CALL chkxer(
'ZHGEQZ', infot, nout, lerr, ok )
223 CALL ztgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
225 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
227 CALL ztgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
229 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
231 CALL ztgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
233 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
235 CALL ztgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
237 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
239 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
241 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
243 CALL ztgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
245 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
247 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
249 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
251 CALL ztgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
253 CALL chkxer(
'ZTGEVC', infot, nout, lerr, ok )
258 ELSE IF(
lsamen( 3, path,
'GSV' ) )
THEN
264 CALL zggsvd(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
265 $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, info )
266 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
268 CALL zggsvd(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
269 $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, info )
270 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
272 CALL zggsvd(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
273 $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, info )
274 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
276 CALL zggsvd(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
277 $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, info )
278 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
280 CALL zggsvd(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
281 $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, info )
282 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
284 CALL zggsvd(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
285 $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, info )
286 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
288 CALL zggsvd(
'N',
'N',
'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
289 $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, info )
290 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
292 CALL zggsvd(
'N',
'N',
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
293 $ 1, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, info )
294 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
296 CALL zggsvd(
'U',
'N',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
297 $ 2, r1, r2, u, 1, v, 1, q, 1, w, rw, iw, info )
298 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
300 CALL zggsvd(
'N',
'V',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
301 $ 2, r1, r2, u, 2, v, 1, q, 1, w, rw, iw, info )
302 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
304 CALL zggsvd(
'N',
'N',
'Q', 2, 2, 2, dummyk, dummyl, a, 2, b,
305 $ 2, r1, r2, u, 2, v, 2, q, 1, w, rw, iw, info )
306 CALL chkxer(
'ZGGSVD', infot, nout, lerr, ok )
313 CALL zggsvp(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
314 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
316 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
318 CALL zggsvp(
'N',
'/',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
319 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
321 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
323 CALL zggsvp(
'N',
'N',
'/', 0, 0, 0, a, 1, b, 1, tola, tolb,
324 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
326 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
328 CALL zggsvp(
'N',
'N',
'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
329 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
331 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
333 CALL zggsvp(
'N',
'N',
'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
334 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
336 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
338 CALL zggsvp(
'N',
'N',
'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
339 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
341 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
343 CALL zggsvp(
'N',
'N',
'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
344 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
346 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
348 CALL zggsvp(
'N',
'N',
'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
349 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
351 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
353 CALL zggsvp(
'U',
'N',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
354 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, rw, tau, w,
356 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
358 CALL zggsvp(
'N',
'V',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
359 $ dummyk, dummyl, u, 2, v, 1, q, 1, iw, rw, tau, w,
361 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
363 CALL zggsvp(
'N',
'N',
'Q', 2, 2, 2, a, 2, b, 2, tola, tolb,
364 $ dummyk, dummyl, u, 2, v, 2, q, 1, iw, rw, tau, w,
366 CALL chkxer(
'ZGGSVP', infot, nout, lerr, ok )
373 CALL ztgsja(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
374 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
376 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
378 CALL ztgsja(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
379 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
381 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
383 CALL ztgsja(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
384 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
386 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
388 CALL ztgsja(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
389 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
391 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
393 CALL ztgsja(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
394 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
396 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
398 CALL ztgsja(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
399 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
401 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
403 CALL ztgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
404 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
406 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
408 CALL ztgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
409 $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
411 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
413 CALL ztgsja(
'U',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
414 $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
416 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
418 CALL ztgsja(
'N',
'V',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
419 $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
421 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
423 CALL ztgsja(
'N',
'N',
'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
424 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
426 CALL chkxer(
'ZTGSJA', infot, nout, lerr, ok )
431 ELSE IF(
lsamen( 3, path,
'GLM' ) )
THEN
437 CALL zggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
439 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
441 CALL zggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
443 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
445 CALL zggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
447 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
449 CALL zggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
451 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
453 CALL zggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
455 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
457 CALL zggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
459 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
461 CALL zggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
463 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
465 CALL zggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
467 CALL chkxer(
'ZGGGLM', infot, nout, lerr, ok )
472 ELSE IF(
lsamen( 3, path,
'LSE' ) )
THEN
478 CALL zgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
480 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
482 CALL zgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
484 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
486 CALL zgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
488 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
490 CALL zgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
492 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
494 CALL zgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
496 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
498 CALL zgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
500 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
502 CALL zgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
504 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
506 CALL zgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
508 CALL chkxer(
'ZGGLSE', infot, nout, lerr, ok )
513 ELSE IF(
lsamen( 3, path,
'CSD' ) )
THEN
519 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
522 $ a, 1, a, 1, a, 1, a,
523 $ 1, w, lw, rw, lw, iw, info )
524 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
526 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
529 $ a, 1, a, 1, a, 1, a,
530 $ 1, w, lw, rw, lw, iw, info )
531 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
533 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
536 $ a, 1, a, 1, a, 1, a,
537 $ 1, w, lw, rw, lw, iw, info )
538 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
540 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
543 $ a, 1, a, 1, a, 1, a,
544 $ 1, w, lw, rw, lw, iw, info )
545 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
547 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
550 $ a, -1, a, 1, a, 1, a,
551 $ 1, w, lw, rw, lw, iw, info )
552 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
554 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
557 $ a, 1, a, -1, a, 1, a,
558 $ 1, w, lw, rw, lw, iw, info )
559 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
561 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
564 $ a, 1, a, 1, a, -1, a,
565 $ 1, w, lw, rw, lw, iw, info )
566 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
568 CALL zuncsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
571 $ a, 1, a, 1, a, 1, a,
572 $ -1, w, lw, rw, lw, iw, info )
573 CALL chkxer(
'ZUNCSD', infot, nout, lerr, ok )
578 ELSE IF(
lsamen( 3, path,
'GQR' ) )
THEN
584 CALL zggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
585 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
587 CALL zggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
588 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
590 CALL zggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
591 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
593 CALL zggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
594 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
596 CALL zggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
597 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
599 CALL zggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
600 CALL chkxer(
'ZGGQRF', infot, nout, lerr, ok )
607 CALL zggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
608 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
610 CALL zggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
611 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
613 CALL zggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
614 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
616 CALL zggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
617 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
619 CALL zggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
620 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
622 CALL zggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
623 CALL chkxer(
'ZGGRQF', infot, nout, lerr, ok )
628 ELSE IF(
lsamen( 3, path,
'ZGS' ) .OR.
629 $
lsamen( 3, path,
'ZGV' ) .OR.
630 $
lsamen( 3, path,
'ZGX' ) .OR.
lsamen( 3, path,
'ZXV' ) )
637 CALL zgges(
'/',
'N',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
638 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
639 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
641 CALL zgges(
'N',
'/',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
642 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
643 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
645 CALL zgges(
'N',
'V',
'/',
zlctes, 1, a, 1, b, 1, sdim, alpha,
646 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
647 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
649 CALL zgges(
'N',
'V',
'S',
zlctes, -1, a, 1, b, 1, sdim, alpha,
650 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
651 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
653 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 0, b, 1, sdim, alpha,
654 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
655 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
657 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 0, sdim, alpha,
658 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
659 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
661 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
662 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
663 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
665 CALL zgges(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
666 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
667 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
669 CALL zgges(
'N',
'V',
'S',
zlctes, 1, a, 1, b, 1, sdim, alpha,
670 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
671 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
673 CALL zgges(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
674 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
675 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
677 CALL zgges(
'V',
'V',
'S',
zlctes, 2, a, 2, b, 2, sdim, alpha,
678 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
679 CALL chkxer(
'ZGGES ', infot, nout, lerr, ok )
686 CALL zggesx(
'/',
'N',
'S',
zlctsx,
'N', 1, a, 1, b, 1, sdim,
687 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
689 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
691 CALL zggesx(
'N',
'/',
'S',
zlctsx,
'N', 1, a, 1, b, 1, sdim,
692 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
694 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
696 CALL zggesx(
'V',
'V',
'/',
zlctsx,
'N', 1, a, 1, b, 1, sdim,
697 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
699 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
701 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'/', 1, a, 1, b, 1, sdim,
702 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
704 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
706 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', -1, a, 1, b, 1, sdim,
707 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
709 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
711 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 1, a, 0, b, 1, sdim,
712 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
714 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
716 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 1, a, 1, b, 0, sdim,
717 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
719 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
721 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 1, a, 1, b, 1, sdim,
722 $ alpha, beta, q, 0, u, 1, rce, rcv, w, 1, rw, iw,
724 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
726 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 2, a, 2, b, 2, sdim,
727 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
729 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
731 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 1, a, 1, b, 1, sdim,
732 $ alpha, beta, q, 1, u, 0, rce, rcv, w, 1, rw, iw,
734 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
736 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 2, a, 2, b, 2, sdim,
737 $ alpha, beta, q, 2, u, 1, rce, rcv, w, 1, rw, iw,
739 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
741 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'B', 2, a, 2, b, 2, sdim,
742 $ alpha, beta, q, 2, u, 2, rce, rcv, w, 1, rw, iw,
744 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
746 CALL zggesx(
'V',
'V',
'S',
zlctsx,
'V', 1, a, 1, b, 1, sdim,
747 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 32, rw, iw,
749 CALL chkxer(
'ZGGESX', infot, nout, lerr, ok )
756 CALL zggev(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
758 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
760 CALL zggev(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
762 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
764 CALL zggev(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
766 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
768 CALL zggev(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
770 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
772 CALL zggev(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
774 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
776 CALL zggev(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
778 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
780 CALL zggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
782 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
784 CALL zggev(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
786 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
788 CALL zggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
790 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
792 CALL zggev(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
794 CALL chkxer(
'ZGGEV ', infot, nout, lerr, ok )
801 CALL zggevx(
'/',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
802 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
803 $ w, 1, rw, iw, bw, info )
804 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
806 CALL zggevx(
'N',
'/',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
807 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
808 $ w, 1, rw, iw, bw, info )
809 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
811 CALL zggevx(
'N',
'N',
'/',
'N', 1, a, 1, b, 1, alpha, beta, q,
812 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
813 $ w, 1, rw, iw, bw, info )
814 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
816 CALL zggevx(
'N',
'N',
'N',
'/', 1, a, 1, b, 1, alpha, beta, q,
817 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
818 $ w, 1, rw, iw, bw, info )
819 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
821 CALL zggevx(
'N',
'N',
'N',
'N', -1, a, 1, b, 1, alpha, beta,
822 $ q, 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce,
823 $ rcv, w, 1, rw, iw, bw, info )
824 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
826 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 0, b, 1, alpha, beta, q,
827 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
828 $ w, 1, rw, iw, bw, info )
829 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
831 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 0, alpha, beta, q,
832 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
833 $ w, 1, rw, iw, bw, info )
834 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
836 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
837 $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
838 $ w, 1, rw, iw, bw, info )
839 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
841 CALL zggevx(
'N',
'V',
'N',
'N', 2, a, 2, b, 2, alpha, beta, q,
842 $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
843 $ w, 1, rw, iw, bw, info )
844 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
846 CALL zggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, alpha, beta, q,
847 $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
848 $ w, 1, rw, iw, bw, info )
849 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
851 CALL zggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
852 $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
853 $ w, 1, rw, iw, bw, info )
854 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
856 CALL zggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, alpha, beta, q,
857 $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
858 $ w, 0, rw, iw, bw, info )
859 CALL chkxer(
'ZGGEVX', infot, nout, lerr, ok )
866 CALL ztgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
868 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
870 CALL ztgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
872 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
874 CALL ztgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
876 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
878 CALL ztgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
880 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
882 CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
884 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
886 CALL ztgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
888 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
890 CALL ztgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
892 CALL chkxer(
'ZTGEXC', infot, nout, lerr, ok )
899 CALL ztgsen( -1, .true., .true., sel, 1, a, 1, b, 1, alpha,
900 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
902 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
904 CALL ztgsen( 1, .true., .true., sel, -1, a, 1, b, 1, alpha,
905 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
907 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
909 CALL ztgsen( 1, .true., .true., sel, 1, a, 0, b, 1, alpha,
910 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
912 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
914 CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 0, alpha,
915 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
917 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
919 CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
920 $ beta, q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
922 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
924 CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
925 $ beta, q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
927 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
929 CALL ztgsen( 3, .true., .true., sel, 1, a, 1, b, 1, alpha,
930 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, -5, iw,
932 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
934 CALL ztgsen( 0, .true., .true., sel, 1, a, 1, b, 1, alpha,
935 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
937 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
939 CALL ztgsen( 1, .true., .true., sel, 1, a, 1, b, 1, alpha,
940 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
942 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
944 CALL ztgsen( 5, .true., .true., sel, 1, a, 1, b, 1, alpha,
945 $ beta, q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw,
947 CALL chkxer(
'ZTGSEN', infot, nout, lerr, ok )
954 CALL ztgsna(
'/',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
955 $ 1, m, w, 1, iw, info )
956 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
958 CALL ztgsna(
'B',
'/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
959 $ 1, m, w, 1, iw, info )
960 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
962 CALL ztgsna(
'B',
'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
963 $ 1, m, w, 1, iw, info )
964 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
966 CALL ztgsna(
'B',
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
967 $ 1, m, w, 1, iw, info )
968 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
970 CALL ztgsna(
'B',
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
971 $ 1, m, w, 1, iw, info )
972 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
974 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
975 $ 1, m, w, 1, iw, info )
976 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
978 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
979 $ 1, m, w, 1, iw, info )
980 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
982 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
983 $ 0, m, w, 1, iw, info )
984 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
986 CALL ztgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
987 $ 1, m, w, 0, iw, info )
988 CALL chkxer(
'ZTGSNA', infot, nout, lerr, ok )
995 CALL ztgsyl(
'/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
996 $ scale, dif, w, 1, iw, info )
997 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
999 CALL ztgsyl(
'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1000 $ scale, dif, w, 1, iw, info )
1001 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1003 CALL ztgsyl(
'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1004 $ scale, dif, w, 1, iw, info )
1005 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1007 CALL ztgsyl(
'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1008 $ scale, dif, w, 1, iw, info )
1009 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1011 CALL ztgsyl(
'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1012 $ scale, dif, w, 1, iw, info )
1013 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1015 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1016 $ scale, dif, w, 1, iw, info )
1017 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1019 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1020 $ scale, dif, w, 1, iw, info )
1021 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1023 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1024 $ scale, dif, w, 1, iw, info )
1025 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1027 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1028 $ scale, dif, w, 1, iw, info )
1029 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1031 CALL ztgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1032 $ scale, dif, w, 1, iw, info )
1033 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1035 CALL ztgsyl(
'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1036 $ scale, dif, w, 1, iw, info )
1037 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1039 CALL ztgsyl(
'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1040 $ scale, dif, w, 1, iw, info )
1041 CALL chkxer(
'ZTGSYL', infot, nout, lerr, ok )
1048 WRITE( nout, fmt = 9999 )path, nt
1050 WRITE( nout, fmt = 9998 )path
1053 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits (',
1054 $ i3,
' tests done)' )
1055 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',
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 zggsvp(JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, RWORK, TAU, WORK, INFO)
ZGGSVP
subroutine ztgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
ZTGSNA
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 zhgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHA, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, RWORK, INFO)
ZHGEQZ
logical function zlctsx(ALPHA, BETA)
ZLCTSX
subroutine zggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
ZGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE 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 zggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGQRF
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
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 zggsvd(JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, RWORK, IWORK, INFO)
ZGGSVD computes the singular value decomposition (SVD) for OTHER matrices
subroutine zgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
ZGGHRD
logical function zlctes(Z, D)
ZLCTES
logical function lsamen(N, CA, CB)
LSAMEN
subroutine ztgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, INFO)
ZTGEXC
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 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 ztgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
ZTGEVC
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 zggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
ZGGRQF
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 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 ...