71 parameter( nmax = 3, lw = 6*nmax )
72 DOUBLE PRECISION ONE, ZERO
73 parameter( one = 1.0d+0, zero = 0.0d+0 )
77 INTEGER DUMMYK, DUMMYL, I, IFST, ILO, IHI, ILST, INFO,
78 $ J, M, NCYCLE, NT, SDIM, LWORK
79 DOUBLE PRECISION ANRM, BNRM, DIF, SCALE, TOLA, TOLB
82 LOGICAL BW( NMAX ), SEL( NMAX )
83 INTEGER IW( NMAX ), IDUM(NMAX)
84 DOUBLE PRECISION A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
85 $ Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
86 $ R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
87 $ TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
88 $ W( LW ), Z( NMAX, NMAX )
91 LOGICAL DLCTES, DLCTSX, LSAMEN
92 EXTERNAL dlctes, dlctsx, lsamen
107 COMMON / infoc / infot, nout, ok, lerr
108 COMMON / srnamc / srnamt
113 WRITE( nout, fmt = * )
147 IF( lsamen( 2, c2,
'GG' ) )
THEN
153 CALL dgghrd(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
154 CALL chkxer(
'DGGHRD', infot, nout, lerr, ok )
156 CALL dgghrd(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
157 CALL chkxer(
'DGGHRD', infot, nout, lerr, ok )
159 CALL dgghrd(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
160 CALL chkxer(
'DGGHRD', infot, nout, lerr, ok )
162 CALL dgghrd(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
163 CALL chkxer(
'DGGHRD', infot, nout, lerr, ok )
165 CALL dgghrd(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
166 CALL chkxer(
'DGGHRD', infot, nout, lerr, ok )
168 CALL dgghrd(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
169 CALL chkxer(
'DGGHRD', infot, nout, lerr, ok )
171 CALL dgghrd(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
172 CALL chkxer(
'DGGHRD', infot, nout, lerr, ok )
174 CALL dgghrd(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
175 CALL chkxer(
'DGGHRD', infot, nout, lerr, ok )
177 CALL dgghrd(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
178 CALL chkxer(
'DGGHRD', infot, nout, lerr, ok )
185 CALL dgghd3(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
187 CALL chkxer(
'DGGHD3', infot, nout, lerr, ok )
189 CALL dgghd3(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
191 CALL chkxer(
'DGGHD3', infot, nout, lerr, ok )
193 CALL dgghd3(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
195 CALL chkxer(
'DGGHD3', infot, nout, lerr, ok )
197 CALL dgghd3(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, w, lw,
199 CALL chkxer(
'DGGHD3', infot, nout, lerr, ok )
201 CALL dgghd3(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, w, lw,
203 CALL chkxer(
'DGGHD3', infot, nout, lerr, ok )
205 CALL dgghd3(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, w, lw,
207 CALL chkxer(
'DGGHD3', infot, nout, lerr, ok )
209 CALL dgghd3(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, w, lw,
211 CALL chkxer(
'DGGHD3', infot, nout, lerr, ok )
213 CALL dgghd3(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
215 CALL chkxer(
'DGGHD3', infot, nout, lerr, ok )
217 CALL dgghd3(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, w, lw,
219 CALL chkxer(
'DGGHD3', infot, nout, lerr, ok )
226 CALL dhgeqz(
'/',
'N',
'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
227 $ 1, z, 1, w, lw, info )
228 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
230 CALL dhgeqz(
'E',
'/',
'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
231 $ 1, z, 1, w, lw, info )
232 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
234 CALL dhgeqz(
'E',
'N',
'/', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
235 $ 1, z, 1, w, lw, info )
236 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
238 CALL dhgeqz(
'E',
'N',
'N', -1, 0, 0, a, 1, b, 1, r1, r2, r3,
239 $ q, 1, z, 1, w, lw, info )
240 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
242 CALL dhgeqz(
'E',
'N',
'N', 0, 0, 0, a, 1, b, 1, r1, r2, r3, q,
243 $ 1, z, 1, w, lw, info )
244 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
246 CALL dhgeqz(
'E',
'N',
'N', 0, 1, 1, a, 1, b, 1, r1, r2, r3, q,
247 $ 1, z, 1, w, lw, info )
248 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
250 CALL dhgeqz(
'E',
'N',
'N', 2, 1, 1, a, 1, b, 2, r1, r2, r3, q,
251 $ 1, z, 1, w, lw, info )
252 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
254 CALL dhgeqz(
'E',
'N',
'N', 2, 1, 1, a, 2, b, 1, r1, r2, r3, q,
255 $ 1, z, 1, w, lw, info )
256 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
258 CALL dhgeqz(
'E',
'V',
'N', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
259 $ 1, z, 1, w, lw, info )
260 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
262 CALL dhgeqz(
'E',
'N',
'V', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
263 $ 1, z, 1, w, lw, info )
264 CALL chkxer(
'DHGEQZ', infot, nout, lerr, ok )
271 CALL dtgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
273 CALL chkxer(
'DTGEVC', infot, nout, lerr, ok )
275 CALL dtgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
277 CALL chkxer(
'DTGEVC', infot, nout, lerr, ok )
279 CALL dtgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
281 CALL chkxer(
'DTGEVC', infot, nout, lerr, ok )
283 CALL dtgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
285 CALL chkxer(
'DTGEVC', infot, nout, lerr, ok )
287 CALL dtgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
289 CALL chkxer(
'DTGEVC', infot, nout, lerr, ok )
291 CALL dtgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
293 CALL chkxer(
'DTGEVC', infot, nout, lerr, ok )
295 CALL dtgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
297 CALL chkxer(
'DTGEVC', infot, nout, lerr, ok )
299 CALL dtgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
301 CALL chkxer(
'DTGEVC', infot, nout, lerr, ok )
306 ELSE IF( lsamen( 3, path,
'GSV' ) )
THEN
312 CALL dggsvd3(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
313 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
314 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
316 CALL dggsvd3(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
317 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
318 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
320 CALL dggsvd3(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
321 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
322 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
324 CALL dggsvd3(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
325 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
326 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
328 CALL dggsvd3(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
329 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
330 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
332 CALL dggsvd3(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
333 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
334 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
336 CALL dggsvd3(
'N',
'N',
'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
337 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
338 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
340 CALL dggsvd3(
'N',
'N',
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
341 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
342 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
344 CALL dggsvd3(
'U',
'N',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
345 $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
346 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
348 CALL dggsvd3(
'N',
'V',
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
349 $ 2, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
350 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
352 CALL dggsvd3(
'N',
'N',
'Q', 1, 2, 1, dummyk, dummyl, a, 1, b,
353 $ 1, r1, r2, u, 1, v, 1, q, 1, w, lwork, idum, info )
354 CALL chkxer(
'DGGSVD3', infot, nout, lerr, ok )
361 CALL dggsvp3(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
362 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
364 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
366 CALL dggsvp3(
'N',
'/',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
367 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
369 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
371 CALL dggsvp3(
'N',
'N',
'/', 0, 0, 0, a, 1, b, 1, tola, tolb,
372 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
374 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
376 CALL dggsvp3(
'N',
'N',
'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
377 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
379 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
381 CALL dggsvp3(
'N',
'N',
'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
382 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
384 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
386 CALL dggsvp3(
'N',
'N',
'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
387 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
389 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
391 CALL dggsvp3(
'N',
'N',
'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
392 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
394 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
396 CALL dggsvp3(
'N',
'N',
'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
397 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
399 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
401 CALL dggsvp3(
'U',
'N',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
402 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
404 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
406 CALL dggsvp3(
'N',
'V',
'N', 1, 2, 1, a, 1, b, 2, tola, tolb,
407 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
409 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
411 CALL dggsvp3(
'N',
'N',
'Q', 1, 1, 2, a, 1, b, 1, tola, tolb,
412 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
414 CALL chkxer(
'DGGSVP3', infot, nout, lerr, ok )
421 CALL dtgsja(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
422 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
424 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
426 CALL dtgsja(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
427 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
429 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
431 CALL dtgsja(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
432 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
434 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
436 CALL dtgsja(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
437 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
439 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
441 CALL dtgsja(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
442 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
444 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
446 CALL dtgsja(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
447 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
449 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
451 CALL dtgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
452 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
454 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
456 CALL dtgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
457 $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
459 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
461 CALL dtgsja(
'U',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
462 $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
464 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
466 CALL dtgsja(
'N',
'V',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
467 $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
469 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
471 CALL dtgsja(
'N',
'N',
'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
472 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
474 CALL chkxer(
'DTGSJA', infot, nout, lerr, ok )
479 ELSE IF( lsamen( 3, path,
'GLM' ) )
THEN
485 CALL dggglm( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
486 CALL chkxer(
'DGGGLM', infot, nout, lerr, ok )
488 CALL dggglm( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
489 CALL chkxer(
'DGGGLM', infot, nout, lerr, ok )
491 CALL dggglm( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
492 CALL chkxer(
'DGGGLM', infot, nout, lerr, ok )
494 CALL dggglm( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
495 CALL chkxer(
'DGGGLM', infot, nout, lerr, ok )
497 CALL dggglm( 1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
498 CALL chkxer(
'DGGGLM', infot, nout, lerr, ok )
500 CALL dggglm( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
501 CALL chkxer(
'DGGGLM', infot, nout, lerr, ok )
503 CALL dggglm( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
504 CALL chkxer(
'DGGGLM', infot, nout, lerr, ok )
506 CALL dggglm( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
507 CALL chkxer(
'DGGGLM', infot, nout, lerr, ok )
512 ELSE IF( lsamen( 3, path,
'LSE' ) )
THEN
518 CALL dgglse( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
519 CALL chkxer(
'DGGLSE', infot, nout, lerr, ok )
521 CALL dgglse( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
522 CALL chkxer(
'DGGLSE', infot, nout, lerr, ok )
524 CALL dgglse( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
525 CALL chkxer(
'DGGLSE', infot, nout, lerr, ok )
527 CALL dgglse( 0, 0, 1, a, 1, b, 1, r1, r2, r3, w, lw, info )
528 CALL chkxer(
'DGGLSE', infot, nout, lerr, ok )
530 CALL dgglse( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
531 CALL chkxer(
'DGGLSE', infot, nout, lerr, ok )
533 CALL dgglse( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
534 CALL chkxer(
'DGGLSE', infot, nout, lerr, ok )
536 CALL dgglse( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
537 CALL chkxer(
'DGGLSE', infot, nout, lerr, ok )
539 CALL dgglse( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
540 CALL chkxer(
'DGGLSE', infot, nout, lerr, ok )
545 ELSE IF( lsamen( 3, path,
'CSD' ) )
THEN
551 CALL dorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
554 $ a, 1, a, 1, a, 1, a,
555 $ 1, w, lw, iw, info )
556 CALL chkxer(
'DORCSD', infot, nout, lerr, ok )
558 CALL dorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
561 $ a, 1, a, 1, a, 1, a,
562 $ 1, w, lw, iw, info )
563 CALL chkxer(
'DORCSD', infot, nout, lerr, ok )
565 CALL dorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
568 $ a, 1, a, 1, a, 1, a,
569 $ 1, w, lw, iw, info )
570 CALL chkxer(
'DORCSD', infot, nout, lerr, ok )
572 CALL dorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
575 $ a, 1, a, 1, a, 1, a,
576 $ 1, w, lw, iw, info )
577 CALL chkxer(
'DORCSD', infot, nout, lerr, ok )
579 CALL dorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
582 $ a, -1, a, 1, a, 1, a,
583 $ 1, w, lw, iw, info )
584 CALL chkxer(
'DORCSD', infot, nout, lerr, ok )
586 CALL dorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
589 $ a, 1, a, -1, a, 1, a,
590 $ 1, w, lw, iw, info )
591 CALL chkxer(
'DORCSD', infot, nout, lerr, ok )
593 CALL dorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
596 $ a, 1, a, 1, a, -1, a,
597 $ 1, w, lw, iw, info )
598 CALL chkxer(
'DORCSD', infot, nout, lerr, ok )
600 CALL dorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
603 $ a, 1, a, 1, a, 1, a,
604 $ -1, w, lw, iw, info )
605 CALL chkxer(
'DORCSD', infot, nout, lerr, ok )
610 ELSE IF( lsamen( 3, path,
'GQR' ) )
THEN
616 CALL dggqrf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
617 CALL chkxer(
'DGGQRF', infot, nout, lerr, ok )
619 CALL dggqrf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
620 CALL chkxer(
'DGGQRF', infot, nout, lerr, ok )
622 CALL dggqrf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
623 CALL chkxer(
'DGGQRF', infot, nout, lerr, ok )
625 CALL dggqrf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
626 CALL chkxer(
'DGGQRF', infot, nout, lerr, ok )
628 CALL dggqrf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
629 CALL chkxer(
'DGGQRF', infot, nout, lerr, ok )
631 CALL dggqrf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
632 CALL chkxer(
'DGGQRF', infot, nout, lerr, ok )
639 CALL dggrqf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
640 CALL chkxer(
'DGGRQF', infot, nout, lerr, ok )
642 CALL dggrqf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
643 CALL chkxer(
'DGGRQF', infot, nout, lerr, ok )
645 CALL dggrqf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
646 CALL chkxer(
'DGGRQF', infot, nout, lerr, ok )
648 CALL dggrqf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
649 CALL chkxer(
'DGGRQF', infot, nout, lerr, ok )
651 CALL dggrqf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
652 CALL chkxer(
'DGGRQF', infot, nout, lerr, ok )
654 CALL dggrqf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
655 CALL chkxer(
'DGGRQF', infot, nout, lerr, ok )
660 ELSE IF( lsamen( 3, path,
'DGS' ) .OR.
661 $ lsamen( 3, path,
'DGV' ) .OR.
662 $ lsamen( 3, path,
'DGX' ) .OR. lsamen( 3, path,
'DXV' ) )
669 CALL dgges(
'/',
'N',
'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
670 $ r3, q, 1, u, 1, w, 1, bw, info )
671 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
673 CALL dgges(
'N',
'/',
'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
674 $ r3, q, 1, u, 1, w, 1, bw, info )
675 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
677 CALL dgges(
'N',
'V',
'/', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
678 $ r3, q, 1, u, 1, w, 1, bw, info )
679 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
681 CALL dgges(
'N',
'V',
'S', dlctes, -1, a, 1, b, 1, sdim, r1,
682 $ r2, r3, q, 1, u, 1, w, 1, bw, info )
683 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
685 CALL dgges(
'N',
'V',
'S', dlctes, 1, a, 0, b, 1, sdim, r1, r2,
686 $ r3, q, 1, u, 1, w, 1, bw, info )
687 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
689 CALL dgges(
'N',
'V',
'S', dlctes, 1, a, 1, b, 0, sdim, r1, r2,
690 $ r3, q, 1, u, 1, w, 1, bw, info )
691 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
693 CALL dgges(
'N',
'V',
'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
694 $ r3, q, 0, u, 1, w, 1, bw, info )
695 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
697 CALL dgges(
'V',
'V',
'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
698 $ r3, q, 1, u, 2, w, 1, bw, info )
699 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
701 CALL dgges(
'N',
'V',
'S', dlctes, 1, a, 1, b, 1, sdim, r1, r2,
702 $ r3, q, 1, u, 0, w, 1, bw, info )
703 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
705 CALL dgges(
'V',
'V',
'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
706 $ r3, q, 2, u, 1, w, 1, bw, info )
707 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
709 CALL dgges(
'V',
'V',
'S', dlctes, 2, a, 2, b, 2, sdim, r1, r2,
710 $ r3, q, 2, u, 2, w, 1, bw, info )
711 CALL chkxer(
'DGGES ', infot, nout, lerr, ok )
718 CALL dgges3(
'/',
'N',
'S', dlctes, 1, a, 1, b, 1, sdim, r1,
719 $ r2, r3, q, 1, u, 1, w, 1, bw, info )
720 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
722 CALL dgges3(
'N',
'/',
'S', dlctes, 1, a, 1, b, 1, sdim, r1,
723 $ r2, r3, q, 1, u, 1, w, 1, bw, info )
724 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
726 CALL dgges3(
'N',
'V',
'/', dlctes, 1, a, 1, b, 1, sdim, r1,
727 $ r2, r3, q, 1, u, 1, w, 1, bw, info )
728 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
730 CALL dgges3(
'N',
'V',
'S', dlctes, -1, a, 1, b, 1, sdim, r1,
731 $ r2, r3, q, 1, u, 1, w, 1, bw, info )
732 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
734 CALL dgges3(
'N',
'V',
'S', dlctes, 1, a, 0, b, 1, sdim, r1,
735 $ r2, r3, q, 1, u, 1, w, 1, bw, info )
736 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
738 CALL dgges3(
'N',
'V',
'S', dlctes, 1, a, 1, b, 0, sdim, r1,
739 $ r2, r3, q, 1, u, 1, w, 1, bw, info )
740 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
742 CALL dgges3(
'N',
'V',
'S', dlctes, 1, a, 1, b, 1, sdim, r1,
743 $ r2, r3, q, 0, u, 1, w, 1, bw, info )
744 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
746 CALL dgges3(
'V',
'V',
'S', dlctes, 2, a, 2, b, 2, sdim, r1,
747 $ r2, r3, q, 1, u, 2, w, 1, bw, info )
748 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
750 CALL dgges3(
'N',
'V',
'S', dlctes, 1, a, 1, b, 1, sdim, r1,
751 $ r2, r3, q, 1, u, 0, w, 1, bw, info )
752 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
754 CALL dgges3(
'V',
'V',
'S', dlctes, 2, a, 2, b, 2, sdim, r1,
755 $ r2, r3, q, 2, u, 1, w, 1, bw, info )
756 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
758 CALL dgges3(
'V',
'V',
'S', dlctes, 2, a, 2, b, 2, sdim, r1,
759 $ r2, r3, q, 2, u, 2, w, 1, bw, info )
760 CALL chkxer(
'DGGES3 ', infot, nout, lerr, ok )
767 CALL dggesx(
'/',
'N',
'S', dlctsx,
'N', 1, a, 1, b, 1, sdim,
768 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
770 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
772 CALL dggesx(
'N',
'/',
'S', dlctsx,
'N', 1, a, 1, b, 1, sdim,
773 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
775 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
777 CALL dggesx(
'V',
'V',
'/', dlctsx,
'N', 1, a, 1, b, 1, sdim,
778 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
780 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
782 CALL dggesx(
'V',
'V',
'S', dlctsx,
'/', 1, a, 1, b, 1, sdim,
783 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
785 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
787 CALL dggesx(
'V',
'V',
'S', dlctsx,
'B', -1, a, 1, b, 1, sdim,
788 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
790 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
792 CALL dggesx(
'V',
'V',
'S', dlctsx,
'B', 1, a, 0, b, 1, sdim,
793 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
795 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
797 CALL dggesx(
'V',
'V',
'S', dlctsx,
'B', 1, a, 1, b, 0, sdim,
798 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
800 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
802 CALL dggesx(
'V',
'V',
'S', dlctsx,
'B', 1, a, 1, b, 1, sdim,
803 $ r1, r2, r3, q, 0, u, 1, rce, rcv, w, 1, iw, 1, bw,
805 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
807 CALL dggesx(
'V',
'V',
'S', dlctsx,
'B', 2, a, 2, b, 2, sdim,
808 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
810 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
812 CALL dggesx(
'V',
'V',
'S', dlctsx,
'B', 1, a, 1, b, 1, sdim,
813 $ r1, r2, r3, q, 1, u, 0, rce, rcv, w, 1, iw, 1, bw,
815 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
817 CALL dggesx(
'V',
'V',
'S', dlctsx,
'B', 2, a, 2, b, 2, sdim,
818 $ r1, r2, r3, q, 2, u, 1, rce, rcv, w, 1, iw, 1, bw,
820 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
822 CALL dggesx(
'V',
'V',
'S', dlctsx,
'B', 2, a, 2, b, 2, sdim,
823 $ r1, r2, r3, q, 2, u, 2, rce, rcv, w, 1, iw, 1, bw,
825 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
827 CALL dggesx(
'V',
'V',
'S', dlctsx,
'V', 1, a, 1, b, 1, sdim,
828 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 32, iw, 0,
830 CALL chkxer(
'DGGESX', infot, nout, lerr, ok )
837 CALL dggev(
'/',
'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
839 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
841 CALL dggev(
'N',
'/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
843 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
845 CALL dggev(
'V',
'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
847 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
849 CALL dggev(
'V',
'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1, w,
851 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
853 CALL dggev(
'V',
'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1, w,
855 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
857 CALL dggev(
'N',
'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1, w,
859 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
861 CALL dggev(
'V',
'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2, w,
863 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
865 CALL dggev(
'V',
'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0, w,
867 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
869 CALL dggev(
'V',
'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1, w,
871 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
873 CALL dggev(
'V',
'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
875 CALL chkxer(
'DGGEV ', infot, nout, lerr, ok )
887 CALL dggev3(
'/',
'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
889 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
891 CALL dggev3(
'N',
'/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
893 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
895 CALL dggev3(
'V',
'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
897 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
899 CALL dggev3(
'V',
'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1,
901 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
903 CALL dggev3(
'V',
'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1,
905 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
907 CALL dggev3(
'N',
'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1,
909 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
911 CALL dggev3(
'V',
'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2,
913 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
915 CALL dggev3(
'V',
'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0,
917 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
919 CALL dggev3(
'V',
'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1,
921 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
923 CALL dggev3(
'V',
'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
925 CALL chkxer(
'DGGEV3 ', infot, nout, lerr, ok )
932 CALL dggevx(
'/',
'N',
'N',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
933 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
934 $ w, 1, iw, bw, info )
935 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
937 CALL dggevx(
'N',
'/',
'N',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
938 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
939 $ w, 1, iw, bw, info )
940 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
942 CALL dggevx(
'N',
'N',
'/',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
943 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
944 $ w, 1, iw, bw, info )
945 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
947 CALL dggevx(
'N',
'N',
'N',
'/', 1, a, 1, b, 1, r1, r2, r3, q,
948 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
949 $ w, 1, iw, bw, info )
950 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
952 CALL dggevx(
'N',
'N',
'N',
'N', -1, a, 1, b, 1, r1, r2, r3, q,
953 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
954 $ w, 1, iw, bw, info )
955 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
957 CALL dggevx(
'N',
'N',
'N',
'N', 1, a, 0, b, 1, r1, r2, r3, q,
958 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
959 $ w, 1, iw, bw, info )
960 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
962 CALL dggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 0, r1, r2, r3, q,
963 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
964 $ w, 1, iw, bw, info )
965 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
967 CALL dggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
968 $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
969 $ w, 1, iw, bw, info )
970 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
972 CALL dggevx(
'N',
'V',
'N',
'N', 2, a, 2, b, 2, r1, r2, r3, q,
973 $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
974 $ w, 1, iw, bw, info )
975 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
977 CALL dggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
978 $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
979 $ w, 1, iw, bw, info )
980 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
982 CALL dggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, r1, r2, r3, q,
983 $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
984 $ w, 1, iw, bw, info )
985 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
987 CALL dggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, r1, r2, r3, q,
988 $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
989 $ w, 1, iw, bw, info )
990 CALL chkxer(
'DGGEVX', infot, nout, lerr, ok )
997 CALL dtgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
999 CALL chkxer(
'DTGEXC', infot, nout, lerr, ok )
1001 CALL dtgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
1002 $ ilst, w, 1, info )
1003 CALL chkxer(
'DTGEXC', infot, nout, lerr, ok )
1005 CALL dtgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
1006 $ ilst, w, 1, info )
1007 CALL chkxer(
'DTGEXC', infot, nout, lerr, ok )
1009 CALL dtgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1010 $ ilst, w, 1, info )
1011 CALL chkxer(
'DTGEXC', infot, nout, lerr, ok )
1013 CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
1014 $ ilst, w, 1, info )
1015 CALL chkxer(
'DTGEXC', infot, nout, lerr, ok )
1017 CALL dtgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1018 $ ilst, w, 1, info )
1019 CALL chkxer(
'DTGEXC', infot, nout, lerr, ok )
1021 CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
1022 $ ilst, w, 1, info )
1023 CALL chkxer(
'DTGEXC', infot, nout, lerr, ok )
1025 CALL dtgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 1, ifst,
1026 $ ilst, w, 0, info )
1027 CALL chkxer(
'DTGEXC', infot, nout, lerr, ok )
1034 CALL dtgsen( -1, .true., .true., sel, 1, a, 1, b, 1, r1, r2,
1035 $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1037 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1039 CALL dtgsen( 1, .true., .true., sel, -1, a, 1, b, 1, r1, r2,
1040 $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1042 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1044 CALL dtgsen( 1, .true., .true., sel, 1, a, 0, b, 1, r1, r2, r3,
1045 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1047 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1049 CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 0, r1, r2, r3,
1050 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1052 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1054 CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1055 $ q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1057 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1059 CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1060 $ q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
1062 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1064 CALL dtgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1065 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1067 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1069 CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1070 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1072 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1074 CALL dtgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1075 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
1077 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1079 CALL dtgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1080 $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
1082 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1084 CALL dtgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1085 $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
1087 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1089 CALL dtgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
1090 $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 1,
1092 CALL chkxer(
'DTGSEN', infot, nout, lerr, ok )
1099 CALL dtgsna(
'/',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1100 $ 1, m, w, 1, iw, info )
1101 CALL chkxer(
'DTGSNA', infot, nout, lerr, ok )
1103 CALL dtgsna(
'B',
'/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1104 $ 1, m, w, 1, iw, info )
1105 CALL chkxer(
'DTGSNA', infot, nout, lerr, ok )
1107 CALL dtgsna(
'B',
'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1108 $ 1, m, w, 1, iw, info )
1109 CALL chkxer(
'DTGSNA', infot, nout, lerr, ok )
1111 CALL dtgsna(
'B',
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
1112 $ 1, m, w, 1, iw, info )
1113 CALL chkxer(
'DTGSNA', infot, nout, lerr, ok )
1115 CALL dtgsna(
'B',
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
1116 $ 1, m, w, 1, iw, info )
1117 CALL chkxer(
'DTGSNA', infot, nout, lerr, ok )
1119 CALL dtgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
1120 $ 1, m, w, 1, iw, info )
1121 CALL chkxer(
'DTGSNA', infot, nout, lerr, ok )
1123 CALL dtgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
1124 $ 1, m, w, 1, iw, info )
1125 CALL chkxer(
'DTGSNA', infot, nout, lerr, ok )
1127 CALL dtgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1128 $ 0, m, w, 1, iw, info )
1129 CALL chkxer(
'DTGSNA', infot, nout, lerr, ok )
1131 CALL dtgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
1132 $ 1, m, w, 0, iw, info )
1133 CALL chkxer(
'DTGSNA', infot, nout, lerr, ok )
1140 CALL dtgsyl(
'/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1141 $ scale, dif, w, 1, iw, info )
1142 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1144 CALL dtgsyl(
'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1145 $ scale, dif, w, 1, iw, info )
1146 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1148 CALL dtgsyl(
'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1149 $ scale, dif, w, 1, iw, info )
1150 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1152 CALL dtgsyl(
'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1153 $ scale, dif, w, 1, iw, info )
1154 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1156 CALL dtgsyl(
'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1157 $ scale, dif, w, 1, iw, info )
1158 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1160 CALL dtgsyl(
'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1161 $ scale, dif, w, 1, iw, info )
1162 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1164 CALL dtgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1165 $ scale, dif, w, 1, iw, info )
1166 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1168 CALL dtgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1169 $ scale, dif, w, 1, iw, info )
1170 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1172 CALL dtgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1173 $ scale, dif, w, 1, iw, info )
1174 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1176 CALL dtgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1177 $ scale, dif, w, 1, iw, info )
1178 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1180 CALL dtgsyl(
'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1181 $ scale, dif, w, 1, iw, info )
1182 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1184 CALL dtgsyl(
'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1185 $ scale, dif, w, 1, iw, info )
1186 CALL chkxer(
'DTGSYL', infot, nout, lerr, ok )
1193 WRITE( nout, fmt = 9999 )path, nt
1195 WRITE( nout, fmt = 9998 )path
1198 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits (',
1199 $ i3,
' tests done)' )
1200 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine derrgg(path, nunit)
DERRGG
subroutine dgges3(jobvsl, jobvsr, sort, selctg, n, a, lda, b, ldb, sdim, alphar, alphai, beta, vsl, ldvsl, vsr, ldvsr, work, lwork, bwork, info)
DGGES3 computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
subroutine dgges(jobvsl, jobvsr, sort, selctg, n, a, lda, b, ldb, sdim, alphar, alphai, beta, vsl, ldvsl, vsr, ldvsr, work, lwork, bwork, info)
DGGES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE m...
subroutine dggesx(jobvsl, jobvsr, sort, selctg, sense, n, a, lda, b, ldb, sdim, alphar, alphai, beta, vsl, ldvsl, vsr, ldvsr, rconde, rcondv, work, lwork, iwork, liwork, bwork, info)
DGGESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
subroutine dggev3(jobvl, jobvr, n, a, lda, b, ldb, alphar, alphai, beta, vl, ldvl, vr, ldvr, work, lwork, info)
DGGEV3 computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices (...
subroutine dggev(jobvl, jobvr, n, a, lda, b, ldb, alphar, alphai, beta, vl, ldvl, vr, ldvr, work, lwork, info)
DGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
subroutine dggevx(balanc, jobvl, jobvr, sense, n, a, lda, b, ldb, alphar, alphai, beta, vl, ldvl, vr, ldvr, ilo, ihi, lscale, rscale, abnrm, bbnrm, rconde, rcondv, work, lwork, iwork, bwork, info)
DGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
subroutine dggglm(n, m, p, a, lda, b, ldb, d, x, y, work, lwork, info)
DGGGLM
subroutine dgghd3(compq, compz, n, ilo, ihi, a, lda, b, ldb, q, ldq, z, ldz, work, lwork, info)
DGGHD3
subroutine dgghrd(compq, compz, n, ilo, ihi, a, lda, b, ldb, q, ldq, z, ldz, info)
DGGHRD
subroutine dgglse(m, n, p, a, lda, b, ldb, c, d, x, work, lwork, info)
DGGLSE solves overdetermined or underdetermined systems for OTHER matrices
subroutine dggqrf(n, m, p, a, lda, taua, b, ldb, taub, work, lwork, info)
DGGQRF
subroutine dggrqf(m, p, n, a, lda, taua, b, ldb, taub, work, lwork, info)
DGGRQF
subroutine dggsvd3(jobu, jobv, jobq, m, n, p, k, l, a, lda, b, ldb, alpha, beta, u, ldu, v, ldv, q, ldq, work, lwork, iwork, info)
DGGSVD3 computes the singular value decomposition (SVD) for OTHER matrices
subroutine dggsvp3(jobu, jobv, jobq, m, p, n, a, lda, b, ldb, tola, tolb, k, l, u, ldu, v, ldv, q, ldq, iwork, tau, work, lwork, info)
DGGSVP3
subroutine dhgeqz(job, compq, compz, n, ilo, ihi, h, ldh, t, ldt, alphar, alphai, beta, q, ldq, z, ldz, work, lwork, info)
DHGEQZ
subroutine dtgevc(side, howmny, select, n, s, lds, p, ldp, vl, ldvl, vr, ldvr, mm, m, work, info)
DTGEVC
subroutine dtgexc(wantq, wantz, n, a, lda, b, ldb, q, ldq, z, ldz, ifst, ilst, work, lwork, info)
DTGEXC
subroutine dtgsen(ijob, wantq, wantz, select, n, a, lda, b, ldb, alphar, alphai, beta, q, ldq, z, ldz, m, pl, pr, dif, work, lwork, iwork, liwork, info)
DTGSEN
subroutine dtgsja(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)
DTGSJA
subroutine dtgsna(job, howmny, select, n, a, lda, b, ldb, vl, ldvl, vr, ldvr, s, dif, mm, m, work, lwork, iwork, info)
DTGSNA
subroutine dtgsyl(trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, dif, work, lwork, iwork, info)
DTGSYL
recursive subroutine dorcsd(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, iwork, info)
DORCSD