73 parameter( nmax = 3, lw = 6*nmax )
75 parameter( one = 1.0e+0, zero = 0.0e+0 )
79 INTEGER dummyk, dummyl, i, ifst, ihi, ilo, ilst, info,
80 $ j, m, ncycle, nt, sdim
81 REAL anrm, bnrm, dif, scale, tola, tolb
84 LOGICAL bw( nmax ), sel( nmax )
86 REAL ls( nmax ), r1( nmax ), r2( nmax ),
87 $ rce( nmax ), rcv( nmax ), rs( nmax ), rw( lw )
88 COMPLEX 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 cgghrd(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
147 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
149 CALL cgghrd(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
150 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
152 CALL cgghrd(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
153 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
155 CALL cgghrd(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
156 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
158 CALL cgghrd(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
159 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
161 CALL cgghrd(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
162 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
164 CALL cgghrd(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
165 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
167 CALL cgghrd(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
168 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
170 CALL cgghrd(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
171 CALL chkxer(
'CGGHRD', infot, nout, lerr, ok )
178 CALL chgeqz(
'/',
'N',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
179 $ q, 1, z, 1, w, 1, rw, info )
180 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
182 CALL chgeqz(
'E',
'/',
'N', 0, 1, 0, a, 1, b, 1, alpha, beta,
183 $ q, 1, z, 1, w, 1, rw, info )
184 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
186 CALL chgeqz(
'E',
'N',
'/', 0, 1, 0, a, 1, b, 1, alpha, beta,
187 $ q, 1, z, 1, w, 1, rw, info )
188 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
190 CALL chgeqz(
'E',
'N',
'N', -1, 0, 0, a, 1, b, 1, alpha, beta,
191 $ q, 1, z, 1, w, 1, rw, info )
192 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
194 CALL chgeqz(
'E',
'N',
'N', 0, 0, 0, a, 1, b, 1, alpha, beta,
195 $ q, 1, z, 1, w, 1, rw, info )
196 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
198 CALL chgeqz(
'E',
'N',
'N', 0, 1, 1, a, 1, b, 1, alpha, beta,
199 $ q, 1, z, 1, w, 1, rw, info )
200 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
202 CALL chgeqz(
'E',
'N',
'N', 2, 1, 1, a, 1, b, 2, alpha, beta,
203 $ q, 1, z, 1, w, 1, rw, info )
204 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
206 CALL chgeqz(
'E',
'N',
'N', 2, 1, 1, a, 2, b, 1, alpha, beta,
207 $ q, 1, z, 1, w, 1, rw, info )
208 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
210 CALL chgeqz(
'E',
'V',
'N', 2, 1, 1, a, 2, b, 2, alpha, beta,
211 $ q, 1, z, 1, w, 1, rw, info )
212 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
214 CALL chgeqz(
'E',
'N',
'V', 2, 1, 1, a, 2, b, 2, alpha, beta,
215 $ q, 1, z, 1, w, 1, rw, info )
216 CALL chkxer(
'CHGEQZ', infot, nout, lerr, ok )
223 CALL ctgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
225 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
227 CALL ctgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
229 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
231 CALL ctgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
233 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
235 CALL ctgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
237 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
239 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
241 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
243 CALL ctgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
245 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
247 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
249 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
251 CALL ctgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
253 CALL chkxer(
'CTGEVC', infot, nout, lerr, ok )
258 ELSE IF(
lsamen( 3, path,
'GSV' ) )
THEN
264 CALL cggsvd(
'/',
'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(
'CGGSVD', infot, nout, lerr, ok )
268 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
272 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
276 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
280 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
284 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
288 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
292 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
296 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
300 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
304 CALL cggsvd(
'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(
'CGGSVD', infot, nout, lerr, ok )
313 CALL cggsvp(
'/',
'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(
'CGGSVP', infot, nout, lerr, ok )
318 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
323 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
328 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
333 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
338 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
343 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
348 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
353 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
358 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
363 CALL cggsvp(
'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(
'CGGSVP', infot, nout, lerr, ok )
373 CALL ctgsja(
'/',
'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(
'CTGSJA', infot, nout, lerr, ok )
378 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
383 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
388 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
393 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
398 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
403 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
408 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
413 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
418 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
423 CALL ctgsja(
'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(
'CTGSJA', infot, nout, lerr, ok )
431 ELSE IF(
lsamen( 3, path,
'GLM' ) )
THEN
437 CALL cggglm( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
439 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
441 CALL cggglm( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
443 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
445 CALL cggglm( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
447 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
449 CALL cggglm( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
451 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
453 CALL cggglm( 1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
455 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
457 CALL cggglm( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
459 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
461 CALL cggglm( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
463 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
465 CALL cggglm( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
467 CALL chkxer(
'CGGGLM', infot, nout, lerr, ok )
472 ELSE IF(
lsamen( 3, path,
'LSE' ) )
THEN
478 CALL cgglse( -1, 0, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
480 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
482 CALL cgglse( 0, -1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
484 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
486 CALL cgglse( 0, 0, -1, a, 1, b, 1, tau, alpha, beta, w, lw,
488 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
490 CALL cgglse( 0, 0, 1, a, 1, b, 1, tau, alpha, beta, w, lw,
492 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
494 CALL cgglse( 0, 1, 0, a, 1, b, 1, tau, alpha, beta, w, lw,
496 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
498 CALL cgglse( 0, 0, 0, a, 0, b, 1, tau, alpha, beta, w, lw,
500 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
502 CALL cgglse( 0, 0, 0, a, 1, b, 0, tau, alpha, beta, w, lw,
504 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
506 CALL cgglse( 1, 1, 1, a, 1, b, 1, tau, alpha, beta, w, 1,
508 CALL chkxer(
'CGGLSE', infot, nout, lerr, ok )
513 ELSE IF(
lsamen( 3, path,
'CSD' ) )
THEN
519 CALL cuncsd(
'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(
'CUNCSD', infot, nout, lerr, ok )
526 CALL cuncsd(
'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(
'CUNCSD', infot, nout, lerr, ok )
533 CALL cuncsd(
'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(
'CUNCSD', infot, nout, lerr, ok )
540 CALL cuncsd(
'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(
'CUNCSD', infot, nout, lerr, ok )
547 CALL cuncsd(
'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(
'CUNCSD', infot, nout, lerr, ok )
554 CALL cuncsd(
'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(
'CUNCSD', infot, nout, lerr, ok )
561 CALL cuncsd(
'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(
'CUNCSD', infot, nout, lerr, ok )
568 CALL cuncsd(
'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(
'CUNCSD', infot, nout, lerr, ok )
578 ELSE IF(
lsamen( 3, path,
'GQR' ) )
THEN
584 CALL cggqrf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
585 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
587 CALL cggqrf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
588 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
590 CALL cggqrf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
591 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
593 CALL cggqrf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
594 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
596 CALL cggqrf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
597 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
599 CALL cggqrf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
600 CALL chkxer(
'CGGQRF', infot, nout, lerr, ok )
607 CALL cggrqf( -1, 0, 0, a, 1, alpha, b, 1, beta, w, lw, info )
608 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
610 CALL cggrqf( 0, -1, 0, a, 1, alpha, b, 1, beta, w, lw, info )
611 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
613 CALL cggrqf( 0, 0, -1, a, 1, alpha, b, 1, beta, w, lw, info )
614 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
616 CALL cggrqf( 0, 0, 0, a, 0, alpha, b, 1, beta, w, lw, info )
617 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
619 CALL cggrqf( 0, 0, 0, a, 1, alpha, b, 0, beta, w, lw, info )
620 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
622 CALL cggrqf( 1, 1, 2, a, 1, alpha, b, 1, beta, w, 1, info )
623 CALL chkxer(
'CGGRQF', infot, nout, lerr, ok )
628 ELSE IF(
lsamen( 3, path,
'CGS' ) .OR.
629 $
lsamen( 3, path,
'CGV' ) .OR.
630 $
lsamen( 3, path,
'CGX' ) .OR.
lsamen( 3, path,
'CXV' ) )
637 CALL cgges(
'/',
'N',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
638 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
639 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
641 CALL cgges(
'N',
'/',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
642 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
643 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
645 CALL cgges(
'N',
'V',
'/',
clctes, 1, a, 1, b, 1, sdim, alpha,
646 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
647 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
649 CALL cgges(
'N',
'V',
'S',
clctes, -1, a, 1, b, 1, sdim, alpha,
650 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
651 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
653 CALL cgges(
'N',
'V',
'S',
clctes, 1, a, 0, b, 1, sdim, alpha,
654 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
655 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
657 CALL cgges(
'N',
'V',
'S',
clctes, 1, a, 1, b, 0, sdim, alpha,
658 $ beta, q, 1, u, 1, w, 1, rw, bw, info )
659 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
661 CALL cgges(
'N',
'V',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
662 $ beta, q, 0, u, 1, w, 1, rw, bw, info )
663 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
665 CALL cgges(
'V',
'V',
'S',
clctes, 2, a, 2, b, 2, sdim, alpha,
666 $ beta, q, 1, u, 2, w, 1, rw, bw, info )
667 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
669 CALL cgges(
'N',
'V',
'S',
clctes, 1, a, 1, b, 1, sdim, alpha,
670 $ beta, q, 1, u, 0, w, 1, rw, bw, info )
671 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
673 CALL cgges(
'V',
'V',
'S',
clctes, 2, a, 2, b, 2, sdim, alpha,
674 $ beta, q, 2, u, 1, w, 1, rw, bw, info )
675 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
677 CALL cgges(
'V',
'V',
'S',
clctes, 2, a, 2, b, 2, sdim, alpha,
678 $ beta, q, 2, u, 2, w, 1, rw, bw, info )
679 CALL chkxer(
'CGGES ', infot, nout, lerr, ok )
686 CALL cggesx(
'/',
'N',
'S',
clctsx,
'N', 1, a, 1, b, 1, sdim,
687 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
689 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
691 CALL cggesx(
'N',
'/',
'S',
clctsx,
'N', 1, a, 1, b, 1, sdim,
692 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
694 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
696 CALL cggesx(
'V',
'V',
'/',
clctsx,
'N', 1, a, 1, b, 1, sdim,
697 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
699 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
701 CALL cggesx(
'V',
'V',
'S',
clctsx,
'/', 1, a, 1, b, 1, sdim,
702 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
704 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
706 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', -1, a, 1, b, 1, sdim,
707 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
709 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
711 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 1, a, 0, b, 1, sdim,
712 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
714 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
716 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 1, a, 1, b, 0, sdim,
717 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
719 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
721 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 1, a, 1, b, 1, sdim,
722 $ alpha, beta, q, 0, u, 1, rce, rcv, w, 1, rw, iw,
724 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
726 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 2, a, 2, b, 2, sdim,
727 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 1, rw, iw,
729 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
731 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 1, a, 1, b, 1, sdim,
732 $ alpha, beta, q, 1, u, 0, rce, rcv, w, 1, rw, iw,
734 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
736 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 2, a, 2, b, 2, sdim,
737 $ alpha, beta, q, 2, u, 1, rce, rcv, w, 1, rw, iw,
739 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
741 CALL cggesx(
'V',
'V',
'S',
clctsx,
'B', 2, a, 2, b, 2, sdim,
742 $ alpha, beta, q, 2, u, 2, rce, rcv, w, 1, rw, iw,
744 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
746 CALL cggesx(
'V',
'V',
'S',
clctsx,
'V', 1, a, 1, b, 1, sdim,
747 $ alpha, beta, q, 1, u, 1, rce, rcv, w, 32, rw, iw,
749 CALL chkxer(
'CGGESX', infot, nout, lerr, ok )
756 CALL cggev(
'/',
'N', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
758 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
760 CALL cggev(
'N',
'/', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
762 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
764 CALL cggev(
'V',
'V', -1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
766 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
768 CALL cggev(
'V',
'V', 1, a, 0, b, 1, alpha, beta, q, 1, u, 1,
770 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
772 CALL cggev(
'V',
'V', 1, a, 1, b, 0, alpha, beta, q, 1, u, 1,
774 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
776 CALL cggev(
'N',
'V', 1, a, 1, b, 1, alpha, beta, q, 0, u, 1,
778 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
780 CALL cggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 1, u, 2,
782 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
784 CALL cggev(
'V',
'N', 2, a, 2, b, 2, alpha, beta, q, 2, u, 0,
786 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
788 CALL cggev(
'V',
'V', 2, a, 2, b, 2, alpha, beta, q, 2, u, 1,
790 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
792 CALL cggev(
'V',
'V', 1, a, 1, b, 1, alpha, beta, q, 1, u, 1,
794 CALL chkxer(
'CGGEV ', infot, nout, lerr, ok )
801 CALL cggevx(
'/',
'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(
'CGGEVX', infot, nout, lerr, ok )
806 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
811 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
816 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
821 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
826 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
831 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
836 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
841 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
846 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
851 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
856 CALL cggevx(
'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(
'CGGEVX', infot, nout, lerr, ok )
866 CALL ctgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
868 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
870 CALL ctgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
872 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
874 CALL ctgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
876 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
878 CALL ctgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
880 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
882 CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
884 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
886 CALL ctgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
888 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
890 CALL ctgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
892 CALL chkxer(
'CTGEXC', infot, nout, lerr, ok )
899 CALL ctgsen( -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(
'CTGSEN', infot, nout, lerr, ok )
904 CALL ctgsen( 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(
'CTGSEN', infot, nout, lerr, ok )
909 CALL ctgsen( 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(
'CTGSEN', infot, nout, lerr, ok )
914 CALL ctgsen( 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(
'CTGSEN', infot, nout, lerr, ok )
919 CALL ctgsen( 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(
'CTGSEN', infot, nout, lerr, ok )
924 CALL ctgsen( 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(
'CTGSEN', infot, nout, lerr, ok )
929 CALL ctgsen( 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(
'CTGSEN', infot, nout, lerr, ok )
934 CALL ctgsen( 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(
'CTGSEN', infot, nout, lerr, ok )
939 CALL ctgsen( 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(
'CTGSEN', infot, nout, lerr, ok )
944 CALL ctgsen( 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(
'CTGSEN', infot, nout, lerr, ok )
954 CALL ctgsna(
'/',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
955 $ 1, m, w, 1, iw, info )
956 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
958 CALL ctgsna(
'B',
'/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
959 $ 1, m, w, 1, iw, info )
960 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
962 CALL ctgsna(
'B',
'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
963 $ 1, m, w, 1, iw, info )
964 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
966 CALL ctgsna(
'B',
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
967 $ 1, m, w, 1, iw, info )
968 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
970 CALL ctgsna(
'B',
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
971 $ 1, m, w, 1, iw, info )
972 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
974 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
975 $ 1, m, w, 1, iw, info )
976 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
978 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
979 $ 1, m, w, 1, iw, info )
980 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
982 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
983 $ 0, m, w, 1, iw, info )
984 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
986 CALL ctgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
987 $ 1, m, w, 0, iw, info )
988 CALL chkxer(
'CTGSNA', infot, nout, lerr, ok )
995 CALL ctgsyl(
'/', 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(
'CTGSYL', infot, nout, lerr, ok )
999 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1003 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1007 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1011 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1015 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1019 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1023 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1027 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1031 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1035 CALL ctgsyl(
'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(
'CTGSYL', infot, nout, lerr, ok )
1039 CALL ctgsyl(
'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(
'CTGSYL', 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 ctgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO)
CTGEVC
recursive subroutine cuncsd(JOBU1, JOBU2, JOBV1T, JOBV2T, TRANS, SIGNS, M, P, Q, X11, LDX11, X12, LDX12, X21, LDX21, X22, LDX22, THETA, U1, LDU1, U2, LDU2, V1T, LDV1T, V2T, LDV2T, WORK, LWORK, RWORK, LRWORK, IWORK, INFO)
CUNCSD
subroutine cggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
CGGQRF
subroutine ctgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
CTGSNA
subroutine ctgsja(JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, NCYCLE, INFO)
CTGSJA
logical function clctsx(ALPHA, BETA)
CLCTSX
subroutine cggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
CGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices ...
logical function clctes(Z, D)
CLCTES
subroutine cggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
CGGRQF
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine ctgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, INFO)
CTGEXC
subroutine cgglse(M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO)
CGGLSE solves overdetermined or underdetermined systems for OTHER matrices
logical function lsamen(N, CA, CB)
LSAMEN
subroutine cgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
CGGHRD
subroutine ctgsyl(TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO)
CTGSYL
subroutine ctgsen(IJOB, WANTQ, WANTZ, SELECT, N, A, LDA, B, LDB, ALPHA, BETA, Q, LDQ, Z, LDZ, M, PL, PR, DIF, WORK, LWORK, IWORK, LIWORK, INFO)
CTGSEN
subroutine cggsvd(JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, RWORK, IWORK, INFO)
CGGSVD computes the singular value decomposition (SVD) for OTHER matrices
subroutine cggevx(BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, ILO, IHI, LSCALE, RSCALE, ABNRM, BBNRM, RCONDE, RCONDV, WORK, LWORK, RWORK, IWORK, BWORK, INFO)
CGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices ...
subroutine cgges(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, BWORK, INFO)
CGGES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
subroutine cggev(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO)
CGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices ...
subroutine cggesx(JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, RCONDE, RCONDV, WORK, LWORK, RWORK, IWORK, LIWORK, BWORK, INFO)
CGGESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE...
subroutine chgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHA, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, RWORK, INFO)
CHGEQZ
subroutine cggsvp(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)
CGGSVP