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 ',