73 parameter( nmax = 3, lw = 6*nmax )
75 parameter( one = 1.0e+0, zero = 0.0e+0 )
79 INTEGER dummyk, dummyl, i, ifst, ilo, ihi, ilst, info,
80 $ j, m, ncycle, nt, sdim
81 REAL anrm, bnrm, dif, scale, tola, tolb
84 LOGICAL bw( nmax ), sel( nmax )
86 REAL a( nmax, nmax ), b( nmax, nmax ), ls( nmax ),
87 $ q( nmax, nmax ), r1( nmax ), r2( nmax ),
88 $ r3( nmax ), rce( 2 ), rcv( 2 ), rs( nmax ),
89 $ tau( nmax ), u( nmax, nmax ), v( nmax, nmax ),
90 $ w( lw ), z( nmax, nmax )
108 COMMON / infoc / infot, nout, ok, lerr
109 COMMON / srnamc / srnamt
114 WRITE( nout, fmt = * )
139 IF(
lsamen( 2, c2,
'GG' ) )
THEN
145 CALL sgghrd(
'/',
'N', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
146 CALL chkxer(
'SGGHRD', infot, nout, lerr, ok )
148 CALL sgghrd(
'N',
'/', 0, 1, 0, a, 1, b, 1, q, 1, z, 1, info )
149 CALL chkxer(
'SGGHRD', infot, nout, lerr, ok )
151 CALL sgghrd(
'N',
'N', -1, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
152 CALL chkxer(
'SGGHRD', infot, nout, lerr, ok )
154 CALL sgghrd(
'N',
'N', 0, 0, 0, a, 1, b, 1, q, 1, z, 1, info )
155 CALL chkxer(
'SGGHRD', infot, nout, lerr, ok )
157 CALL sgghrd(
'N',
'N', 0, 1, 1, a, 1, b, 1, q, 1, z, 1, info )
158 CALL chkxer(
'SGGHRD', infot, nout, lerr, ok )
160 CALL sgghrd(
'N',
'N', 2, 1, 1, a, 1, b, 2, q, 1, z, 1, info )
161 CALL chkxer(
'SGGHRD', infot, nout, lerr, ok )
163 CALL sgghrd(
'N',
'N', 2, 1, 1, a, 2, b, 1, q, 1, z, 1, info )
164 CALL chkxer(
'SGGHRD', infot, nout, lerr, ok )
166 CALL sgghrd(
'V',
'N', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
167 CALL chkxer(
'SGGHRD', infot, nout, lerr, ok )
169 CALL sgghrd(
'N',
'V', 2, 1, 1, a, 2, b, 2, q, 1, z, 1, info )
170 CALL chkxer(
'SGGHRD', infot, nout, lerr, ok )
177 CALL shgeqz(
'/',
'N',
'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
178 $ 1, z, 1, w, lw, info )
179 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
181 CALL shgeqz(
'E',
'/',
'N', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
182 $ 1, z, 1, w, lw, info )
183 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
185 CALL shgeqz(
'E',
'N',
'/', 0, 1, 0, a, 1, b, 1, r1, r2, r3, q,
186 $ 1, z, 1, w, lw, info )
187 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
189 CALL shgeqz(
'E',
'N',
'N', -1, 0, 0, a, 1, b, 1, r1, r2, r3,
190 $ q, 1, z, 1, w, lw, info )
191 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
193 CALL shgeqz(
'E',
'N',
'N', 0, 0, 0, a, 1, b, 1, r1, r2, r3, q,
194 $ 1, z, 1, w, lw, info )
195 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
197 CALL shgeqz(
'E',
'N',
'N', 0, 1, 1, a, 1, b, 1, r1, r2, r3, q,
198 $ 1, z, 1, w, lw, info )
199 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
201 CALL shgeqz(
'E',
'N',
'N', 2, 1, 1, a, 1, b, 2, r1, r2, r3, q,
202 $ 1, z, 1, w, lw, info )
203 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
205 CALL shgeqz(
'E',
'N',
'N', 2, 1, 1, a, 2, b, 1, r1, r2, r3, q,
206 $ 1, z, 1, w, lw, info )
207 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
209 CALL shgeqz(
'E',
'V',
'N', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
210 $ 1, z, 1, w, lw, info )
211 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
213 CALL shgeqz(
'E',
'N',
'V', 2, 1, 1, a, 2, b, 2, r1, r2, r3, q,
214 $ 1, z, 1, w, lw, info )
215 CALL chkxer(
'SHGEQZ', infot, nout, lerr, ok )
222 CALL stgevc(
'/',
'A', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
224 CALL chkxer(
'STGEVC', infot, nout, lerr, ok )
226 CALL stgevc(
'R',
'/', sel, 0, a, 1, b, 1, q, 1, z, 1, 0, m, w,
228 CALL chkxer(
'STGEVC', infot, nout, lerr, ok )
230 CALL stgevc(
'R',
'A', sel, -1, a, 1, b, 1, q, 1, z, 1, 0, m,
232 CALL chkxer(
'STGEVC', infot, nout, lerr, ok )
234 CALL stgevc(
'R',
'A', sel, 2, a, 1, b, 2, q, 1, z, 2, 0, m, w,
236 CALL chkxer(
'STGEVC', infot, nout, lerr, ok )
238 CALL stgevc(
'R',
'A', sel, 2, a, 2, b, 1, q, 1, z, 2, 0, m, w,
240 CALL chkxer(
'STGEVC', infot, nout, lerr, ok )
242 CALL stgevc(
'L',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
244 CALL chkxer(
'STGEVC', infot, nout, lerr, ok )
246 CALL stgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 1, 0, m, w,
248 CALL chkxer(
'STGEVC', infot, nout, lerr, ok )
250 CALL stgevc(
'R',
'A', sel, 2, a, 2, b, 2, q, 1, z, 2, 1, m, w,
252 CALL chkxer(
'STGEVC', infot, nout, lerr, ok )
257 ELSE IF(
lsamen( 3, path,
'GSV' ) )
THEN
263 CALL sggsvd(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
264 $ 1, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
265 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
267 CALL sggsvd(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
268 $ 1, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
269 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
271 CALL sggsvd(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
272 $ 1, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
273 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
275 CALL sggsvd(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
276 $ 1, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
277 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
279 CALL sggsvd(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
280 $ 1, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
281 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
283 CALL sggsvd(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
284 $ 1, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
285 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
287 CALL sggsvd(
'N',
'N',
'N', 2, 1, 1, dummyk, dummyl, a, 1, b,
288 $ 1, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
289 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
291 CALL sggsvd(
'N',
'N',
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
292 $ 1, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
293 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
295 CALL sggsvd(
'U',
'N',
'N', 2, 2, 2, dummyk, dummyl, a, 2, b,
296 $ 2, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
297 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
299 CALL sggsvd(
'N',
'V',
'N', 1, 1, 2, dummyk, dummyl, a, 1, b,
300 $ 2, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
301 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
303 CALL sggsvd(
'N',
'N',
'Q', 1, 2, 1, dummyk, dummyl, a, 1, b,
304 $ 1, r1, r2, u, 1, v, 1, q, 1, w, iw, info )
305 CALL chkxer(
'SGGSVD', infot, nout, lerr, ok )
312 CALL sggsvp(
'/',
'N',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
313 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
315 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
317 CALL sggsvp(
'N',
'/',
'N', 0, 0, 0, a, 1, b, 1, tola, tolb,
318 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
320 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
322 CALL sggsvp(
'N',
'N',
'/', 0, 0, 0, a, 1, b, 1, tola, tolb,
323 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
325 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
327 CALL sggsvp(
'N',
'N',
'N', -1, 0, 0, a, 1, b, 1, tola, tolb,
328 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
330 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
332 CALL sggsvp(
'N',
'N',
'N', 0, -1, 0, a, 1, b, 1, tola, tolb,
333 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
335 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
337 CALL sggsvp(
'N',
'N',
'N', 0, 0, -1, a, 1, b, 1, tola, tolb,
338 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
340 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
342 CALL sggsvp(
'N',
'N',
'N', 2, 1, 1, a, 1, b, 1, tola, tolb,
343 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
345 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
347 CALL sggsvp(
'N',
'N',
'N', 1, 2, 1, a, 1, b, 1, tola, tolb,
348 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
350 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
352 CALL sggsvp(
'U',
'N',
'N', 2, 2, 2, a, 2, b, 2, tola, tolb,
353 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
355 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
357 CALL sggsvp(
'N',
'V',
'N', 1, 2, 1, a, 1, b, 2, tola, tolb,
358 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
360 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
362 CALL sggsvp(
'N',
'N',
'Q', 1, 1, 2, a, 1, b, 1, tola, tolb,
363 $ dummyk, dummyl, u, 1, v, 1, q, 1, iw, tau, w,
365 CALL chkxer(
'SGGSVP', infot, nout, lerr, ok )
372 CALL stgsja(
'/',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
373 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
375 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
377 CALL stgsja(
'N',
'/',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
378 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
380 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
382 CALL stgsja(
'N',
'N',
'/', 0, 0, 0, dummyk, dummyl, a, 1, b,
383 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
385 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
387 CALL stgsja(
'N',
'N',
'N', -1, 0, 0, dummyk, dummyl, a, 1, b,
388 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
390 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
392 CALL stgsja(
'N',
'N',
'N', 0, -1, 0, dummyk, dummyl, a, 1, b,
393 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
395 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
397 CALL stgsja(
'N',
'N',
'N', 0, 0, -1, dummyk, dummyl, a, 1, b,
398 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
400 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
402 CALL stgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 0, b,
403 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
405 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
407 CALL stgsja(
'N',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
408 $ 0, tola, tolb, r1, r2, u, 1, v, 1, q, 1, w,
410 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
412 CALL stgsja(
'U',
'N',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
413 $ 1, tola, tolb, r1, r2, u, 0, v, 1, q, 1, w,
415 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
417 CALL stgsja(
'N',
'V',
'N', 0, 0, 0, dummyk, dummyl, a, 1, b,
418 $ 1, tola, tolb, r1, r2, u, 1, v, 0, q, 1, w,
420 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
422 CALL stgsja(
'N',
'N',
'Q', 0, 0, 0, dummyk, dummyl, a, 1, b,
423 $ 1, tola, tolb, r1, r2, u, 1, v, 1, q, 0, w,
425 CALL chkxer(
'STGSJA', infot, nout, lerr, ok )
430 ELSE IF(
lsamen( 3, path,
'GLM' ) )
THEN
436 CALL sggglm( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
437 CALL chkxer(
'SGGGLM', infot, nout, lerr, ok )
439 CALL sggglm( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
440 CALL chkxer(
'SGGGLM', infot, nout, lerr, ok )
442 CALL sggglm( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
443 CALL chkxer(
'SGGGLM', infot, nout, lerr, ok )
445 CALL sggglm( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
446 CALL chkxer(
'SGGGLM', infot, nout, lerr, ok )
448 CALL sggglm( 1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
449 CALL chkxer(
'SGGGLM', infot, nout, lerr, ok )
451 CALL sggglm( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
452 CALL chkxer(
'SGGGLM', infot, nout, lerr, ok )
454 CALL sggglm( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
455 CALL chkxer(
'SGGGLM', infot, nout, lerr, ok )
457 CALL sggglm( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
458 CALL chkxer(
'SGGGLM', infot, nout, lerr, ok )
463 ELSE IF(
lsamen( 3, path,
'LSE' ) )
THEN
469 CALL sgglse( -1, 0, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
470 CALL chkxer(
'SGGLSE', infot, nout, lerr, ok )
472 CALL sgglse( 0, -1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
473 CALL chkxer(
'SGGLSE', infot, nout, lerr, ok )
475 CALL sgglse( 0, 0, -1, a, 1, b, 1, r1, r2, r3, w, lw, info )
476 CALL chkxer(
'SGGLSE', infot, nout, lerr, ok )
478 CALL sgglse( 0, 0, 1, a, 1, b, 1, r1, r2, r3, w, lw, info )
479 CALL chkxer(
'SGGLSE', infot, nout, lerr, ok )
481 CALL sgglse( 0, 1, 0, a, 1, b, 1, r1, r2, r3, w, lw, info )
482 CALL chkxer(
'SGGLSE', infot, nout, lerr, ok )
484 CALL sgglse( 0, 0, 0, a, 0, b, 1, r1, r2, r3, w, lw, info )
485 CALL chkxer(
'SGGLSE', infot, nout, lerr, ok )
487 CALL sgglse( 0, 0, 0, a, 1, b, 0, r1, r2, r3, w, lw, info )
488 CALL chkxer(
'SGGLSE', infot, nout, lerr, ok )
490 CALL sgglse( 1, 1, 1, a, 1, b, 1, r1, r2, r3, w, 1, info )
491 CALL chkxer(
'SGGLSE', infot, nout, lerr, ok )
496 ELSE IF(
lsamen( 3, path,
'CSD' ) )
THEN
502 CALL sorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
505 $ a, 1, a, 1, a, 1, a,
506 $ 1, w, lw, iw, info )
507 CALL chkxer(
'SORCSD', infot, nout, lerr, ok )
509 CALL sorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
512 $ a, 1, a, 1, a, 1, a,
513 $ 1, w, lw, iw, info )
514 CALL chkxer(
'SORCSD', infot, nout, lerr, ok )
516 CALL sorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
519 $ a, 1, a, 1, a, 1, a,
520 $ 1, w, lw, iw, info )
521 CALL chkxer(
'SORCSD', infot, nout, lerr, ok )
523 CALL sorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
526 $ a, 1, a, 1, a, 1, a,
527 $ 1, w, lw, iw, info )
528 CALL chkxer(
'SORCSD', infot, nout, lerr, ok )
530 CALL sorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
533 $ a, -1, a, 1, a, 1, a,
534 $ 1, w, lw, iw, info )
535 CALL chkxer(
'SORCSD', infot, nout, lerr, ok )
537 CALL sorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
540 $ a, 1, a, -1, a, 1, a,
541 $ 1, w, lw, iw, info )
542 CALL chkxer(
'SORCSD', infot, nout, lerr, ok )
544 CALL sorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
547 $ a, 1, a, 1, a, -1, a,
548 $ 1, w, lw, iw, info )
549 CALL chkxer(
'SORCSD', infot, nout, lerr, ok )
551 CALL sorcsd(
'Y',
'Y',
'Y',
'Y',
'N',
'N',
554 $ a, 1, a, 1, a, 1, a,
555 $ -1, w, lw, iw, info )
556 CALL chkxer(
'SORCSD', infot, nout, lerr, ok )
561 ELSE IF(
lsamen( 3, path,
'GQR' ) )
THEN
567 CALL sggqrf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
568 CALL chkxer(
'SGGQRF', infot, nout, lerr, ok )
570 CALL sggqrf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
571 CALL chkxer(
'SGGQRF', infot, nout, lerr, ok )
573 CALL sggqrf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
574 CALL chkxer(
'SGGQRF', infot, nout, lerr, ok )
576 CALL sggqrf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
577 CALL chkxer(
'SGGQRF', infot, nout, lerr, ok )
579 CALL sggqrf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
580 CALL chkxer(
'SGGQRF', infot, nout, lerr, ok )
582 CALL sggqrf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
583 CALL chkxer(
'SGGQRF', infot, nout, lerr, ok )
590 CALL sggrqf( -1, 0, 0, a, 1, r1, b, 1, r2, w, lw, info )
591 CALL chkxer(
'SGGRQF', infot, nout, lerr, ok )
593 CALL sggrqf( 0, -1, 0, a, 1, r1, b, 1, r2, w, lw, info )
594 CALL chkxer(
'SGGRQF', infot, nout, lerr, ok )
596 CALL sggrqf( 0, 0, -1, a, 1, r1, b, 1, r2, w, lw, info )
597 CALL chkxer(
'SGGRQF', infot, nout, lerr, ok )
599 CALL sggrqf( 0, 0, 0, a, 0, r1, b, 1, r2, w, lw, info )
600 CALL chkxer(
'SGGRQF', infot, nout, lerr, ok )
602 CALL sggrqf( 0, 0, 0, a, 1, r1, b, 0, r2, w, lw, info )
603 CALL chkxer(
'SGGRQF', infot, nout, lerr, ok )
605 CALL sggrqf( 1, 1, 2, a, 1, r1, b, 1, r2, w, 1, info )
606 CALL chkxer(
'SGGRQF', infot, nout, lerr, ok )
611 ELSE IF(
lsamen( 3, path,
'SGS' ) .OR.
612 $
lsamen( 3, path,
'SGV' ) .OR.
613 $
lsamen( 3, path,
'SGX' ) .OR.
lsamen( 3, path,
'SXV' ) )
620 CALL sgges(
'/',
'N',
'S',
slctes, 1, a, 1, b, 1, sdim, r1, r2,
621 $ r3, q, 1, u, 1, w, 1, bw, info )
622 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
624 CALL sgges(
'N',
'/',
'S',
slctes, 1, a, 1, b, 1, sdim, r1, r2,
625 $ r3, q, 1, u, 1, w, 1, bw, info )
626 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
628 CALL sgges(
'N',
'V',
'/',
slctes, 1, a, 1, b, 1, sdim, r1, r2,
629 $ r3, q, 1, u, 1, w, 1, bw, info )
630 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
632 CALL sgges(
'N',
'V',
'S',
slctes, -1, a, 1, b, 1, sdim, r1,
633 $ r2, r3, q, 1, u, 1, w, 1, bw, info )
634 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
636 CALL sgges(
'N',
'V',
'S',
slctes, 1, a, 0, b, 1, sdim, r1, r2,
637 $ r3, q, 1, u, 1, w, 1, bw, info )
638 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
640 CALL sgges(
'N',
'V',
'S',
slctes, 1, a, 1, b, 0, sdim, r1, r2,
641 $ r3, q, 1, u, 1, w, 1, bw, info )
642 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
644 CALL sgges(
'N',
'V',
'S',
slctes, 1, a, 1, b, 1, sdim, r1, r2,
645 $ r3, q, 0, u, 1, w, 1, bw, info )
646 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
648 CALL sgges(
'V',
'V',
'S',
slctes, 2, a, 2, b, 2, sdim, r1, r2,
649 $ r3, q, 1, u, 2, w, 1, bw, info )
650 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
652 CALL sgges(
'N',
'V',
'S',
slctes, 1, a, 1, b, 1, sdim, r1, r2,
653 $ r3, q, 1, u, 0, w, 1, bw, info )
654 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
656 CALL sgges(
'V',
'V',
'S',
slctes, 2, a, 2, b, 2, sdim, r1, r2,
657 $ r3, q, 2, u, 1, w, 1, bw, info )
658 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
660 CALL sgges(
'V',
'V',
'S',
slctes, 2, a, 2, b, 2, sdim, r1, r2,
661 $ r3, q, 2, u, 2, w, 1, bw, info )
662 CALL chkxer(
'SGGES ', infot, nout, lerr, ok )
669 CALL sggesx(
'/',
'N',
'S',
slctsx,
'N', 1, a, 1, b, 1, sdim,
670 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
672 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
674 CALL sggesx(
'N',
'/',
'S',
slctsx,
'N', 1, a, 1, b, 1, sdim,
675 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
677 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
679 CALL sggesx(
'V',
'V',
'/',
slctsx,
'N', 1, a, 1, b, 1, sdim,
680 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
682 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
684 CALL sggesx(
'V',
'V',
'S',
slctsx,
'/', 1, a, 1, b, 1, sdim,
685 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
687 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
689 CALL sggesx(
'V',
'V',
'S',
slctsx,
'B', -1, a, 1, b, 1, sdim,
690 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
692 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
694 CALL sggesx(
'V',
'V',
'S',
slctsx,
'B', 1, a, 0, b, 1, sdim,
695 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
697 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
699 CALL sggesx(
'V',
'V',
'S',
slctsx,
'B', 1, a, 1, b, 0, sdim,
700 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
702 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
704 CALL sggesx(
'V',
'V',
'S',
slctsx,
'B', 1, a, 1, b, 1, sdim,
705 $ r1, r2, r3, q, 0, u, 1, rce, rcv, w, 1, iw, 1, bw,
707 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
709 CALL sggesx(
'V',
'V',
'S',
slctsx,
'B', 2, a, 2, b, 2, sdim,
710 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 1, iw, 1, bw,
712 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
714 CALL sggesx(
'V',
'V',
'S',
slctsx,
'B', 1, a, 1, b, 1, sdim,
715 $ r1, r2, r3, q, 1, u, 0, rce, rcv, w, 1, iw, 1, bw,
717 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
719 CALL sggesx(
'V',
'V',
'S',
slctsx,
'B', 2, a, 2, b, 2, sdim,
720 $ r1, r2, r3, q, 2, u, 1, rce, rcv, w, 1, iw, 1, bw,
722 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
724 CALL sggesx(
'V',
'V',
'S',
slctsx,
'B', 2, a, 2, b, 2, sdim,
725 $ r1, r2, r3, q, 2, u, 2, rce, rcv, w, 1, iw, 1, bw,
727 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
729 CALL sggesx(
'V',
'V',
'S',
slctsx,
'V', 1, a, 1, b, 1, sdim,
730 $ r1, r2, r3, q, 1, u, 1, rce, rcv, w, 32, iw, 0,
732 CALL chkxer(
'SGGESX', infot, nout, lerr, ok )
739 CALL sggev(
'/',
'N', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
741 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
743 CALL sggev(
'N',
'/', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
745 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
747 CALL sggev(
'V',
'V', -1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1,
749 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
751 CALL sggev(
'V',
'V', 1, a, 0, b, 1, r1, r2, r3, q, 1, u, 1, w,
753 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
755 CALL sggev(
'V',
'V', 1, a, 1, b, 0, r1, r2, r3, q, 1, u, 1, w,
757 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
759 CALL sggev(
'N',
'V', 1, a, 1, b, 1, r1, r2, r3, q, 0, u, 1, w,
761 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
763 CALL sggev(
'V',
'V', 2, a, 2, b, 2, r1, r2, r3, q, 1, u, 2, w,
765 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
767 CALL sggev(
'V',
'N', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 0, w,
769 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
771 CALL sggev(
'V',
'V', 2, a, 2, b, 2, r1, r2, r3, q, 2, u, 1, w,
773 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
775 CALL sggev(
'V',
'V', 1, a, 1, b, 1, r1, r2, r3, q, 1, u, 1, w,
777 CALL chkxer(
'SGGEV ', infot, nout, lerr, ok )
784 CALL sggevx(
'/',
'N',
'N',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
785 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
786 $ w, 1, iw, bw, info )
787 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
789 CALL sggevx(
'N',
'/',
'N',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
790 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
791 $ w, 1, iw, bw, info )
792 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
794 CALL sggevx(
'N',
'N',
'/',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
795 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
796 $ w, 1, iw, bw, info )
797 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
799 CALL sggevx(
'N',
'N',
'N',
'/', 1, a, 1, b, 1, r1, r2, r3, q,
800 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
801 $ w, 1, iw, bw, info )
802 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
804 CALL sggevx(
'N',
'N',
'N',
'N', -1, a, 1, b, 1, r1, r2, r3, q,
805 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
806 $ w, 1, iw, bw, info )
807 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
809 CALL sggevx(
'N',
'N',
'N',
'N', 1, a, 0, b, 1, r1, r2, r3, q,
810 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
811 $ w, 1, iw, bw, info )
812 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
814 CALL sggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 0, r1, r2, r3, q,
815 $ 1, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
816 $ w, 1, iw, bw, info )
817 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
819 CALL sggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
820 $ 0, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
821 $ w, 1, iw, bw, info )
822 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
824 CALL sggevx(
'N',
'V',
'N',
'N', 2, a, 2, b, 2, r1, r2, r3, q,
825 $ 1, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
826 $ w, 1, iw, bw, info )
827 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
829 CALL sggevx(
'N',
'N',
'N',
'N', 1, a, 1, b, 1, r1, r2, r3, q,
830 $ 1, u, 0, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
831 $ w, 1, iw, bw, info )
832 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
834 CALL sggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, r1, r2, r3, q,
835 $ 2, u, 1, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
836 $ w, 1, iw, bw, info )
837 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
839 CALL sggevx(
'N',
'N',
'V',
'N', 2, a, 2, b, 2, r1, r2, r3, q,
840 $ 2, u, 2, ilo, ihi, ls, rs, anrm, bnrm, rce, rcv,
841 $ w, 1, iw, bw, info )
842 CALL chkxer(
'SGGEVX', infot, nout, lerr, ok )
849 CALL stgexc( .true., .true., -1, a, 1, b, 1, q, 1, z, 1, ifst,
851 CALL chkxer(
'STGEXC', infot, nout, lerr, ok )
853 CALL stgexc( .true., .true., 1, a, 0, b, 1, q, 1, z, 1, ifst,
855 CALL chkxer(
'STGEXC', infot, nout, lerr, ok )
857 CALL stgexc( .true., .true., 1, a, 1, b, 0, q, 1, z, 1, ifst,
859 CALL chkxer(
'STGEXC', infot, nout, lerr, ok )
861 CALL stgexc( .false., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
863 CALL chkxer(
'STGEXC', infot, nout, lerr, ok )
865 CALL stgexc( .true., .true., 1, a, 1, b, 1, q, 0, z, 1, ifst,
867 CALL chkxer(
'STGEXC', infot, nout, lerr, ok )
869 CALL stgexc( .true., .false., 1, a, 1, b, 1, q, 1, z, 0, ifst,
871 CALL chkxer(
'STGEXC', infot, nout, lerr, ok )
873 CALL stgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 0, ifst,
875 CALL chkxer(
'STGEXC', infot, nout, lerr, ok )
877 CALL stgexc( .true., .true., 1, a, 1, b, 1, q, 1, z, 1, ifst,
879 CALL chkxer(
'STGEXC', infot, nout, lerr, ok )
886 CALL stgsen( -1, .true., .true., sel, 1, a, 1, b, 1, r1, r2,
887 $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
889 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
891 CALL stgsen( 1, .true., .true., sel, -1, a, 1, b, 1, r1, r2,
892 $ r3, q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
894 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
896 CALL stgsen( 1, .true., .true., sel, 1, a, 0, b, 1, r1, r2, r3,
897 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
899 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
901 CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 0, r1, r2, r3,
902 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
904 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
906 CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
907 $ q, 0, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
909 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
911 CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
912 $ q, 1, z, 0, m, tola, tolb, rcv, w, 1, iw, 1,
914 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
916 CALL stgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
917 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
919 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
921 CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
922 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
924 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
926 CALL stgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
927 $ q, 1, z, 1, m, tola, tolb, rcv, w, 1, iw, 1,
929 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
931 CALL stgsen( 0, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
932 $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
934 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
936 CALL stgsen( 1, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
937 $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 0,
939 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
941 CALL stgsen( 2, .true., .true., sel, 1, a, 1, b, 1, r1, r2, r3,
942 $ q, 1, z, 1, m, tola, tolb, rcv, w, 20, iw, 1,
944 CALL chkxer(
'STGSEN', infot, nout, lerr, ok )
951 CALL stgsna(
'/',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
952 $ 1, m, w, 1, iw, info )
953 CALL chkxer(
'STGSNA', infot, nout, lerr, ok )
955 CALL stgsna(
'B',
'/', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
956 $ 1, m, w, 1, iw, info )
957 CALL chkxer(
'STGSNA', infot, nout, lerr, ok )
959 CALL stgsna(
'B',
'A', sel, -1, a, 1, b, 1, q, 1, u, 1, r1, r2,
960 $ 1, m, w, 1, iw, info )
961 CALL chkxer(
'STGSNA', infot, nout, lerr, ok )
963 CALL stgsna(
'B',
'A', sel, 1, a, 0, b, 1, q, 1, u, 1, r1, r2,
964 $ 1, m, w, 1, iw, info )
965 CALL chkxer(
'STGSNA', infot, nout, lerr, ok )
967 CALL stgsna(
'B',
'A', sel, 1, a, 1, b, 0, q, 1, u, 1, r1, r2,
968 $ 1, m, w, 1, iw, info )
969 CALL chkxer(
'STGSNA', infot, nout, lerr, ok )
971 CALL stgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 0, u, 1, r1, r2,
972 $ 1, m, w, 1, iw, info )
973 CALL chkxer(
'STGSNA', infot, nout, lerr, ok )
975 CALL stgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 0, r1, r2,
976 $ 1, m, w, 1, iw, info )
977 CALL chkxer(
'STGSNA', infot, nout, lerr, ok )
979 CALL stgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
980 $ 0, m, w, 1, iw, info )
981 CALL chkxer(
'STGSNA', infot, nout, lerr, ok )
983 CALL stgsna(
'E',
'A', sel, 1, a, 1, b, 1, q, 1, u, 1, r1, r2,
984 $ 1, m, w, 0, iw, info )
985 CALL chkxer(
'STGSNA', infot, nout, lerr, ok )
992 CALL stgsyl(
'/', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
993 $ scale, dif, w, 1, iw, info )
994 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
996 CALL stgsyl(
'N', -1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
997 $ scale, dif, w, 1, iw, info )
998 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1000 CALL stgsyl(
'N', 0, 0, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1001 $ scale, dif, w, 1, iw, info )
1002 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1004 CALL stgsyl(
'N', 0, 1, 0, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1005 $ scale, dif, w, 1, iw, info )
1006 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1008 CALL stgsyl(
'N', 0, 1, 1, a, 0, b, 1, q, 1, u, 1, v, 1, z, 1,
1009 $ scale, dif, w, 1, iw, info )
1010 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1012 CALL stgsyl(
'N', 0, 1, 1, a, 1, b, 0, q, 1, u, 1, v, 1, z, 1,
1013 $ scale, dif, w, 1, iw, info )
1014 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1016 CALL stgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 0, u, 1, v, 1, z, 1,
1017 $ scale, dif, w, 1, iw, info )
1018 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1020 CALL stgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 0, v, 1, z, 1,
1021 $ scale, dif, w, 1, iw, info )
1022 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1024 CALL stgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 0, z, 1,
1025 $ scale, dif, w, 1, iw, info )
1026 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1028 CALL stgsyl(
'N', 0, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 0,
1029 $ scale, dif, w, 1, iw, info )
1030 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1032 CALL stgsyl(
'N', 1, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1033 $ scale, dif, w, 1, iw, info )
1034 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1036 CALL stgsyl(
'N', 2, 1, 1, a, 1, b, 1, q, 1, u, 1, v, 1, z, 1,
1037 $ scale, dif, w, 1, iw, info )
1038 CALL chkxer(
'STGSYL', infot, nout, lerr, ok )
1045 WRITE( nout, fmt = 9999 )path, nt
1047 WRITE( nout, fmt = 9998 )path
1050 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits (',
1051 $ i3,
' tests done)' )
1052 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',
subroutine sgges(JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, BWORK, INFO)
SGGES computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE ...
subroutine sgghrd(COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO)
SGGHRD
subroutine stgevc(SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, INFO)
STGEVC
subroutine sggevx(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)
SGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices ...
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine stgsja(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)
STGSJA
subroutine sggglm(N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO)
SGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices ...
subroutine shgeqz(JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHAR, ALPHAI, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, INFO)
SHGEQZ
logical function slctes(ZR, ZI, D)
SLCTES
subroutine sgglse(M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO)
SGGLSE solves overdetermined or underdetermined systems for OTHER matrices
subroutine sggqrf(N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
SGGQRF
logical function lsamen(N, CA, CB)
LSAMEN
subroutine sggrqf(M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO)
SGGRQF
subroutine stgexc(WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, WORK, LWORK, INFO)
STGEXC
subroutine stgsna(JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO)
STGSNA
subroutine stgsen(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)
STGSEN
subroutine sggev(JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO)
SGGEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices ...
subroutine sggesx(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)
SGGESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE...
subroutine sggsvp(JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, TAU, WORK, INFO)
SGGSVP
subroutine sggsvd(JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, IWORK, INFO)
SGGSVD computes the singular value decomposition (SVD) for OTHER matrices
subroutine stgsyl(TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO)
STGSYL
logical function slctsx(AR, AI, BETA)
SLCTSX
recursive subroutine sorcsd(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)
SORCSD