75 parameter( nmax = 3, liw = 12*nmax, lw = 20*nmax )
79 INTEGER i, info,
j, m, n, nsplit, nt
82 INTEGER i1( nmax ), i2( nmax ), i3( nmax ), iw( liw )
83 DOUBLE PRECISION a( nmax, nmax ), c( nmax, nmax ), d( nmax ),
84 $ e( nmax ), q( nmax, nmax ), r( nmax ),
85 $ tau( nmax ), w( lw ),
x( nmax ),
105 COMMON / infoc / infot, nout, ok, lerr
106 COMMON / srnamc / srnamt
114 WRITE( nout, fmt = * )
121 a( i,
j ) = 1.d0 / dble( i+
j )
136 IF(
lsamen( 2, c2,
'ST' ) )
THEN
142 CALL
dsytrd(
'/', 0, a, 1, d, e, tau, w, 1, info )
143 CALL
chkxer(
'DSYTRD', infot, nout, lerr, ok )
145 CALL
dsytrd(
'U', -1, a, 1, d, e, tau, w, 1, info )
146 CALL
chkxer(
'DSYTRD', infot, nout, lerr, ok )
148 CALL
dsytrd(
'U', 2, a, 1, d, e, tau, w, 1, info )
149 CALL
chkxer(
'DSYTRD', infot, nout, lerr, ok )
151 CALL
dsytrd(
'U', 0, a, 1, d, e, tau, w, 0, info )
152 CALL
chkxer(
'DSYTRD', infot, nout, lerr, ok )
159 CALL
dorgtr(
'/', 0, a, 1, tau, w, 1, info )
160 CALL
chkxer(
'DORGTR', infot, nout, lerr, ok )
162 CALL
dorgtr(
'U', -1, a, 1, tau, w, 1, info )
163 CALL
chkxer(
'DORGTR', infot, nout, lerr, ok )
165 CALL
dorgtr(
'U', 2, a, 1, tau, w, 1, info )
166 CALL
chkxer(
'DORGTR', infot, nout, lerr, ok )
168 CALL
dorgtr(
'U', 3, a, 3, tau, w, 1, info )
169 CALL
chkxer(
'DORGTR', infot, nout, lerr, ok )
176 CALL
dormtr(
'/',
'U',
'N', 0, 0, a, 1, tau, c, 1, w, 1, info )
177 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
179 CALL
dormtr(
'L',
'/',
'N', 0, 0, a, 1, tau, c, 1, w, 1, info )
180 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
182 CALL
dormtr(
'L',
'U',
'/', 0, 0, a, 1, tau, c, 1, w, 1, info )
183 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
185 CALL
dormtr(
'L',
'U',
'N', -1, 0, a, 1, tau, c, 1, w, 1,
187 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
189 CALL
dormtr(
'L',
'U',
'N', 0, -1, a, 1, tau, c, 1, w, 1,
191 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
193 CALL
dormtr(
'L',
'U',
'N', 2, 0, a, 1, tau, c, 2, w, 1, info )
194 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
196 CALL
dormtr(
'R',
'U',
'N', 0, 2, a, 1, tau, c, 1, w, 1, info )
197 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
199 CALL
dormtr(
'L',
'U',
'N', 2, 0, a, 2, tau, c, 1, w, 1, info )
200 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
202 CALL
dormtr(
'L',
'U',
'N', 0, 2, a, 1, tau, c, 1, w, 1, info )
203 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
205 CALL
dormtr(
'R',
'U',
'N', 2, 0, a, 1, tau, c, 2, w, 1, info )
206 CALL
chkxer(
'DORMTR', infot, nout, lerr, ok )
213 CALL
dsptrd(
'/', 0, a, d, e, tau, info )
214 CALL
chkxer(
'DSPTRD', infot, nout, lerr, ok )
216 CALL
dsptrd(
'U', -1, a, d, e, tau, info )
217 CALL
chkxer(
'DSPTRD', infot, nout, lerr, ok )
224 CALL
dopgtr(
'/', 0, a, tau, z, 1, w, info )
225 CALL
chkxer(
'DOPGTR', infot, nout, lerr, ok )
227 CALL
dopgtr(
'U', -1, a, tau, z, 1, w, info )
228 CALL
chkxer(
'DOPGTR', infot, nout, lerr, ok )
230 CALL
dopgtr(
'U', 2, a, tau, z, 1, w, info )
231 CALL
chkxer(
'DOPGTR', infot, nout, lerr, ok )
238 CALL
dopmtr(
'/',
'U',
'N', 0, 0, a, tau, c, 1, w, info )
239 CALL
chkxer(
'DOPMTR', infot, nout, lerr, ok )
241 CALL
dopmtr(
'L',
'/',
'N', 0, 0, a, tau, c, 1, w, info )
242 CALL
chkxer(
'DOPMTR', infot, nout, lerr, ok )
244 CALL
dopmtr(
'L',
'U',
'/', 0, 0, a, tau, c, 1, w, info )
245 CALL
chkxer(
'DOPMTR', infot, nout, lerr, ok )
247 CALL
dopmtr(
'L',
'U',
'N', -1, 0, a, tau, c, 1, w, info )
248 CALL
chkxer(
'DOPMTR', infot, nout, lerr, ok )
250 CALL
dopmtr(
'L',
'U',
'N', 0, -1, a, tau, c, 1, w, info )
251 CALL
chkxer(
'DOPMTR', infot, nout, lerr, ok )
253 CALL
dopmtr(
'L',
'U',
'N', 2, 0, a, tau, c, 1, w, info )
254 CALL
chkxer(
'DOPMTR', infot, nout, lerr, ok )
261 CALL
dpteqr(
'/', 0, d, e, z, 1, w, info )
262 CALL
chkxer(
'DPTEQR', infot, nout, lerr, ok )
264 CALL
dpteqr(
'N', -1, d, e, z, 1, w, info )
265 CALL
chkxer(
'DPTEQR', infot, nout, lerr, ok )
267 CALL
dpteqr(
'V', 2, d, e, z, 1, w, info )
268 CALL
chkxer(
'DPTEQR', infot, nout, lerr, ok )
275 CALL
dstebz(
'/',
'E', 0, 0.0d0, 1.0d0, 1, 0, 0.0d0, d, e, m,
276 $ nsplit,
x, i1, i2, w, iw, info )
277 CALL
chkxer(
'DSTEBZ', infot, nout, lerr, ok )
279 CALL
dstebz(
'A',
'/', 0, 0.0d0, 0.0d0, 0, 0, 0.0d0, d, e, m,
280 $ nsplit,
x, i1, i2, w, iw, info )
281 CALL
chkxer(
'DSTEBZ', infot, nout, lerr, ok )
283 CALL
dstebz(
'A',
'E', -1, 0.0d0, 0.0d0, 0, 0, 0.0d0, d, e, m,
284 $ nsplit,
x, i1, i2, w, iw, info )
285 CALL
chkxer(
'DSTEBZ', infot, nout, lerr, ok )
287 CALL
dstebz(
'V',
'E', 0, 0.0d0, 0.0d0, 0, 0, 0.0d0, d, e, m,
288 $ nsplit,
x, i1, i2, w, iw, info )
289 CALL
chkxer(
'DSTEBZ', infot, nout, lerr, ok )
291 CALL
dstebz(
'I',
'E', 0, 0.0d0, 0.0d0, 0, 0, 0.0d0, d, e, m,
292 $ nsplit,
x, i1, i2, w, iw, info )
293 CALL
chkxer(
'DSTEBZ', infot, nout, lerr, ok )
295 CALL
dstebz(
'I',
'E', 1, 0.0d0, 0.0d0, 2, 1, 0.0d0, d, e, m,
296 $ nsplit,
x, i1, i2, w, iw, info )
297 CALL
chkxer(
'DSTEBZ', infot, nout, lerr, ok )
299 CALL
dstebz(
'I',
'E', 1, 0.0d0, 0.0d0, 1, 0, 0.0d0, d, e, m,
300 $ nsplit,
x, i1, i2, w, iw, info )
301 CALL
chkxer(
'DSTEBZ', infot, nout, lerr, ok )
303 CALL
dstebz(
'I',
'E', 1, 0.0d0, 0.0d0, 1, 2, 0.0d0, d, e, m,
304 $ nsplit,
x, i1, i2, w, iw, info )
305 CALL
chkxer(
'DSTEBZ', infot, nout, lerr, ok )
312 CALL
dstein( -1, d, e, 0,
x, i1, i2, z, 1, w, iw, i3, info )
313 CALL
chkxer(
'DSTEIN', infot, nout, lerr, ok )
315 CALL
dstein( 0, d, e, -1,
x, i1, i2, z, 1, w, iw, i3, info )
316 CALL
chkxer(
'DSTEIN', infot, nout, lerr, ok )
318 CALL
dstein( 0, d, e, 1,
x, i1, i2, z, 1, w, iw, i3, info )
319 CALL
chkxer(
'DSTEIN', infot, nout, lerr, ok )
321 CALL
dstein( 2, d, e, 0,
x, i1, i2, z, 1, w, iw, i3, info )
322 CALL
chkxer(
'DSTEIN', infot, nout, lerr, ok )
329 CALL
dsteqr(
'/', 0, d, e, z, 1, w, info )
330 CALL
chkxer(
'DSTEQR', infot, nout, lerr, ok )
332 CALL
dsteqr(
'N', -1, d, e, z, 1, w, info )
333 CALL
chkxer(
'DSTEQR', infot, nout, lerr, ok )
335 CALL
dsteqr(
'V', 2, d, e, z, 1, w, info )
336 CALL
chkxer(
'DSTEQR', infot, nout, lerr, ok )
343 CALL
dsterf( -1, d, e, info )
344 CALL
chkxer(
'DSTERF', infot, nout, lerr, ok )
351 CALL
dstedc(
'/', 0, d, e, z, 1, w, 1, iw, 1, info )
352 CALL
chkxer(
'DSTEDC', infot, nout, lerr, ok )
354 CALL
dstedc(
'N', -1, d, e, z, 1, w, 1, iw, 1, info )
355 CALL
chkxer(
'DSTEDC', infot, nout, lerr, ok )
357 CALL
dstedc(
'V', 2, d, e, z, 1, w, 23, iw, 28, info )
358 CALL
chkxer(
'DSTEDC', infot, nout, lerr, ok )
360 CALL
dstedc(
'N', 1, d, e, z, 1, w, 0, iw, 1, info )
361 CALL
chkxer(
'DSTEDC', infot, nout, lerr, ok )
363 CALL
dstedc(
'I', 2, d, e, z, 2, w, 0, iw, 12, info )
364 CALL
chkxer(
'DSTEDC', infot, nout, lerr, ok )
366 CALL
dstedc(
'V', 2, d, e, z, 2, w, 0, iw, 28, info )
367 CALL
chkxer(
'DSTEDC', infot, nout, lerr, ok )
369 CALL
dstedc(
'N', 1, d, e, z, 1, w, 1, iw, 0, info )
370 CALL
chkxer(
'DSTEDC', infot, nout, lerr, ok )
372 CALL
dstedc(
'I', 2, d, e, z, 2, w, 19, iw, 0, info )
373 CALL
chkxer(
'DSTEDC', infot, nout, lerr, ok )
375 CALL
dstedc(
'V', 2, d, e, z, 2, w, 23, iw, 0, info )
376 CALL
chkxer(
'DSTEDC', infot, nout, lerr, ok )
383 CALL
dstevd(
'/', 0, d, e, z, 1, w, 1, iw, 1, info )
384 CALL
chkxer(
'DSTEVD', infot, nout, lerr, ok )
386 CALL
dstevd(
'N', -1, d, e, z, 1, w, 1, iw, 1, info )
387 CALL
chkxer(
'DSTEVD', infot, nout, lerr, ok )
389 CALL
dstevd(
'V', 2, d, e, z, 1, w, 19, iw, 12, info )
390 CALL
chkxer(
'DSTEVD', infot, nout, lerr, ok )
392 CALL
dstevd(
'N', 1, d, e, z, 1, w, 0, iw, 1, info )
393 CALL
chkxer(
'DSTEVD', infot, nout, lerr, ok )
395 CALL
dstevd(
'V', 2, d, e, z, 2, w, 12, iw, 12, info )
396 CALL
chkxer(
'DSTEVD', infot, nout, lerr, ok )
398 CALL
dstevd(
'N', 0, d, e, z, 1, w, 1, iw, 0, info )
399 CALL
chkxer(
'DSTEVD', infot, nout, lerr, ok )
401 CALL
dstevd(
'V', 2, d, e, z, 2, w, 19, iw, 11, info )
402 CALL
chkxer(
'DSTEVD', infot, nout, lerr, ok )
409 CALL
dstev(
'/', 0, d, e, z, 1, w, info )
410 CALL
chkxer(
'DSTEV ', infot, nout, lerr, ok )
412 CALL
dstev(
'N', -1, d, e, z, 1, w, info )
413 CALL
chkxer(
'DSTEV ', infot, nout, lerr, ok )
415 CALL
dstev(
'V', 2, d, e, z, 1, w, info )
416 CALL
chkxer(
'DSTEV ', infot, nout, lerr, ok )
423 CALL
dstevx(
'/',
'A', 0, d, e, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
424 $
x, z, 1, w, iw, i3, info )
425 CALL
chkxer(
'DSTEVX', infot, nout, lerr, ok )
427 CALL
dstevx(
'N',
'/', 0, d, e, 0.0d0, 1.0d0, 1, 0, 0.0d0, m,
428 $
x, z, 1, w, iw, i3, info )
429 CALL
chkxer(
'DSTEVX', infot, nout, lerr, ok )
431 CALL
dstevx(
'N',
'A', -1, d, e, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
432 $
x, z, 1, w, iw, i3, info )
433 CALL
chkxer(
'DSTEVX', infot, nout, lerr, ok )
435 CALL
dstevx(
'N',
'V', 1, d, e, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
436 $
x, z, 1, w, iw, i3, info )
437 CALL
chkxer(
'DSTEVX', infot, nout, lerr, ok )
439 CALL
dstevx(
'N',
'I', 1, d, e, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
440 $
x, z, 1, w, iw, i3, info )
441 CALL
chkxer(
'DSTEVX', infot, nout, lerr, ok )
443 CALL
dstevx(
'N',
'I', 1, d, e, 0.0d0, 0.0d0, 2, 1, 0.0d0, m,
444 $
x, z, 1, w, iw, i3, info )
445 CALL
chkxer(
'DSTEVX', infot, nout, lerr, ok )
447 CALL
dstevx(
'N',
'I', 2, d, e, 0.0d0, 0.0d0, 2, 1, 0.0d0, m,
448 $
x, z, 1, w, iw, i3, info )
449 CALL
chkxer(
'DSTEVX', infot, nout, lerr, ok )
451 CALL
dstevx(
'N',
'I', 1, d, e, 0.0d0, 0.0d0, 1, 2, 0.0d0, m,
452 $
x, z, 1, w, iw, i3, info )
453 CALL
chkxer(
'DSTEVX', infot, nout, lerr, ok )
455 CALL
dstevx(
'V',
'A', 2, d, e, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
456 $
x, z, 1, w, iw, i3, info )
457 CALL
chkxer(
'DSTEVX', infot, nout, lerr, ok )
465 CALL
dstevr(
'/',
'A', 0, d, e, 0.0d0, 0.0d0, 1, 1, 0.0d0, m,
466 $ r, z, 1, iw,
x, 20*n, iw( 2*n+1 ), 10*n, info )
467 CALL
chkxer(
'DSTEVR', infot, nout, lerr, ok )
469 CALL
dstevr(
'V',
'/', 0, d, e, 0.0d0, 0.0d0, 1, 1, 0.0d0, m,
470 $ r, z, 1, iw,
x, 20*n, iw( 2*n+1 ), 10*n, info )
471 CALL
chkxer(
'DSTEVR', infot, nout, lerr, ok )
473 CALL
dstevr(
'V',
'A', -1, d, e, 0.0d0, 0.0d0, 1, 1, 0.0d0, m,
474 $ r, z, 1, iw,
x, 20*n, iw( 2*n+1 ), 10*n, info )
475 CALL
chkxer(
'DSTEVR', infot, nout, lerr, ok )
477 CALL
dstevr(
'V',
'V', 1, d, e, 0.0d0, 0.0d0, 1, 1, 0.0d0, m,
478 $ r, z, 1, iw,
x, 20*n, iw( 2*n+1 ), 10*n, info )
479 CALL
chkxer(
'DSTEVR', infot, nout, lerr, ok )
481 CALL
dstevr(
'V',
'I', 1, d, e, 0.0d0, 0.0d0, 0, 1, 0.0d0, m,
482 $ w, z, 1, iw,
x, 20*n, iw( 2*n+1 ), 10*n, info )
483 CALL
chkxer(
'DSTEVR', infot, nout, lerr, ok )
486 CALL
dstevr(
'V',
'I', 2, d, e, 0.0d0, 0.0d0, 2, 1, 0.0d0, m,
487 $ w, z, 1, iw,
x, 20*n, iw( 2*n+1 ), 10*n, info )
488 CALL
chkxer(
'DSTEVR', infot, nout, lerr, ok )
491 CALL
dstevr(
'V',
'I', 1, d, e, 0.0d0, 0.0d0, 1, 1, 0.0d0, m,
492 $ w, z, 0, iw,
x, 20*n, iw( 2*n+1 ), 10*n, info )
493 CALL
chkxer(
'DSTEVR', infot, nout, lerr, ok )
495 CALL
dstevr(
'V',
'I', 1, d, e, 0.0d0, 0.0d0, 1, 1, 0.0d0, m,
496 $ w, z, 1, iw,
x, 20*n-1, iw( 2*n+1 ), 10*n, info )
497 CALL
chkxer(
'DSTEVR', infot, nout, lerr, ok )
499 CALL
dstevr(
'V',
'I', 1, d, e, 0.0d0, 0.0d0, 1, 1, 0.0d0, m,
500 $ w, z, 1, iw,
x, 20*n, iw( 2*n+1 ), 10*n-1, info )
501 CALL
chkxer(
'DSTEVR', infot, nout, lerr, ok )
508 CALL
dsyevd(
'/',
'U', 0, a, 1,
x, w, 1, iw, 1, info )
509 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
511 CALL
dsyevd(
'N',
'/', 0, a, 1,
x, w, 1, iw, 1, info )
512 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
514 CALL
dsyevd(
'N',
'U', -1, a, 1,
x, w, 1, iw, 1, info )
515 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
517 CALL
dsyevd(
'N',
'U', 2, a, 1,
x, w, 3, iw, 1, info )
518 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
520 CALL
dsyevd(
'N',
'U', 1, a, 1,
x, w, 0, iw, 1, info )
521 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
523 CALL
dsyevd(
'N',
'U', 2, a, 2,
x, w, 4, iw, 1, info )
524 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
526 CALL
dsyevd(
'V',
'U', 2, a, 2,
x, w, 20, iw, 12, info )
527 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
529 CALL
dsyevd(
'N',
'U', 1, a, 1,
x, w, 1, iw, 0, info )
530 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
532 CALL
dsyevd(
'N',
'U', 2, a, 2,
x, w, 5, iw, 0, info )
533 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
535 CALL
dsyevd(
'V',
'U', 2, a, 2,
x, w, 27, iw, 11, info )
536 CALL
chkxer(
'DSYEVD', infot, nout, lerr, ok )
544 CALL
dsyevr(
'/',
'A',
'U', 0, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
545 $ m, r, z, 1, iw, q, 26*n, iw( 2*n+1 ), 10*n, info )
546 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
548 CALL
dsyevr(
'V',
'/',
'U', 0, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
549 $ m, r, z, 1, iw, q, 26*n, iw( 2*n+1 ), 10*n, info )
550 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
552 CALL
dsyevr(
'V',
'A',
'/', -1, a, 1, 0.0d0, 0.0d0, 1, 1,
553 $ 0.0d0, m, r, z, 1, iw, q, 26*n, iw( 2*n+1 ), 10*n,
555 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
557 CALL
dsyevr(
'V',
'A',
'U', -1, a, 1, 0.0d0, 0.0d0, 1, 1,
558 $ 0.0d0, m, r, z, 1, iw, q, 26*n, iw( 2*n+1 ), 10*n,
560 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
562 CALL
dsyevr(
'V',
'A',
'U', 2, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
563 $ m, r, z, 1, iw, q, 26*n, iw( 2*n+1 ), 10*n, info )
564 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
566 CALL
dsyevr(
'V',
'V',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
567 $ m, r, z, 1, iw, q, 26*n, iw( 2*n+1 ), 10*n, info )
568 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
570 CALL
dsyevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 1, 0.0d0,
571 $ m, r, z, 1, iw, q, 26*n, iw( 2*n+1 ), 10*n, info )
572 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
575 CALL
dsyevr(
'V',
'I',
'U', 2, a, 2, 0.0d0, 0.0d0, 2, 1, 0.0d0,
576 $ m, r, z, 1, iw, q, 26*n, iw( 2*n+1 ), 10*n, info )
577 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
579 CALL
dsyevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
580 $ m, r, z, 0, iw, q, 26*n, iw( 2*n+1 ), 10*n, info )
581 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
583 CALL
dsyevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
584 $ m, r, z, 1, iw, q, 26*n-1, iw( 2*n+1 ), 10*n,
586 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
588 CALL
dsyevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
589 $ m, r, z, 1, iw, q, 26*n, iw( 2*n+1 ), 10*n-1,
591 CALL
chkxer(
'DSYEVR', infot, nout, lerr, ok )
598 CALL
dsyev(
'/',
'U', 0, a, 1,
x, w, 1, info )
599 CALL
chkxer(
'DSYEV ', infot, nout, lerr, ok )
601 CALL
dsyev(
'N',
'/', 0, a, 1,
x, w, 1, info )
602 CALL
chkxer(
'DSYEV ', infot, nout, lerr, ok )
604 CALL
dsyev(
'N',
'U', -1, a, 1,
x, w, 1, info )
605 CALL
chkxer(
'DSYEV ', infot, nout, lerr, ok )
607 CALL
dsyev(
'N',
'U', 2, a, 1,
x, w, 3, info )
608 CALL
chkxer(
'DSYEV ', infot, nout, lerr, ok )
610 CALL
dsyev(
'N',
'U', 1, a, 1,
x, w, 1, info )
611 CALL
chkxer(
'DSYEV ', infot, nout, lerr, ok )
618 CALL
dsyevx(
'/',
'A',
'U', 0, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
619 $ m,
x, z, 1, w, 1, iw, i3, info )
620 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
622 CALL
dsyevx(
'N',
'/',
'U', 0, a, 1, 0.0d0, 1.0d0, 1, 0, 0.0d0,
623 $ m,
x, z, 1, w, 1, iw, i3, info )
624 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
626 CALL
dsyevx(
'N',
'A',
'/', 0, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
627 $ m,
x, z, 1, w, 1, iw, i3, info )
629 CALL
dsyevx(
'N',
'A',
'U', -1, a, 1, 0.0d0, 0.0d0, 0, 0,
630 $ 0.0d0, m,
x, z, 1, w, 1, iw, i3, info )
631 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
633 CALL
dsyevx(
'N',
'A',
'U', 2, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
634 $ m,
x, z, 1, w, 16, iw, i3, info )
635 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
637 CALL
dsyevx(
'N',
'V',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
638 $ m,
x, z, 1, w, 8, iw, i3, info )
639 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
641 CALL
dsyevx(
'N',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
642 $ m,
x, z, 1, w, 8, iw, i3, info )
643 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
645 CALL
dsyevx(
'N',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 2, 1, 0.0d0,
646 $ m,
x, z, 1, w, 8, iw, i3, info )
647 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
649 CALL
dsyevx(
'N',
'I',
'U', 2, a, 2, 0.0d0, 0.0d0, 2, 1, 0.0d0,
650 $ m,
x, z, 1, w, 16, iw, i3, info )
651 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
653 CALL
dsyevx(
'N',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 2, 0.0d0,
654 $ m,
x, z, 1, w, 8, iw, i3, info )
655 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
657 CALL
dsyevx(
'V',
'A',
'U', 2, a, 2, 0.0d0, 0.0d0, 0, 0, 0.0d0,
658 $ m,
x, z, 1, w, 16, iw, i3, info )
659 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
661 CALL
dsyevx(
'V',
'A',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
662 $ m,
x, z, 1, w, 0, iw, i3, info )
663 CALL
chkxer(
'DSYEVX', infot, nout, lerr, ok )
670 CALL
dspevd(
'/',
'U', 0, a,
x, z, 1, w, 1, iw, 1, info )
671 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
673 CALL
dspevd(
'N',
'/', 0, a,
x, z, 1, w, 1, iw, 1, info )
674 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
676 CALL
dspevd(
'N',
'U', -1, a,
x, z, 1, w, 1, iw, 1, info )
677 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
679 CALL
dspevd(
'V',
'U', 2, a,
x, z, 1, w, 23, iw, 12, info )
680 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
682 CALL
dspevd(
'N',
'U', 1, a,
x, z, 1, w, 0, iw, 1, info )
683 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
685 CALL
dspevd(
'N',
'U', 2, a,
x, z, 1, w, 3, iw, 1, info )
686 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
688 CALL
dspevd(
'V',
'U', 2, a,
x, z, 2, w, 16, iw, 12, info )
689 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
691 CALL
dspevd(
'N',
'U', 1, a,
x, z, 1, w, 1, iw, 0, info )
692 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
694 CALL
dspevd(
'N',
'U', 2, a,
x, z, 1, w, 4, iw, 0, info )
695 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
697 CALL
dspevd(
'V',
'U', 2, a,
x, z, 2, w, 23, iw, 11, info )
698 CALL
chkxer(
'DSPEVD', infot, nout, lerr, ok )
705 CALL
dspev(
'/',
'U', 0, a, w, z, 1,
x, info )
706 CALL
chkxer(
'DSPEV ', infot, nout, lerr, ok )
708 CALL
dspev(
'N',
'/', 0, a, w, z, 1,
x, info )
709 CALL
chkxer(
'DSPEV ', infot, nout, lerr, ok )
711 CALL
dspev(
'N',
'U', -1, a, w, z, 1,
x, info )
712 CALL
chkxer(
'DSPEV ', infot, nout, lerr, ok )
714 CALL
dspev(
'V',
'U', 2, a, w, z, 1,
x, info )
715 CALL
chkxer(
'DSPEV ', infot, nout, lerr, ok )
722 CALL
dspevx(
'/',
'A',
'U', 0, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
723 $
x, z, 1, w, iw, i3, info )
724 CALL
chkxer(
'DSPEVX', infot, nout, lerr, ok )
726 CALL
dspevx(
'N',
'/',
'U', 0, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
727 $
x, z, 1, w, iw, i3, info )
728 CALL
chkxer(
'DSPEVX', infot, nout, lerr, ok )
730 CALL
dspevx(
'N',
'A',
'/', 0, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
731 $
x, z, 1, w, iw, i3, info )
733 CALL
dspevx(
'N',
'A',
'U', -1, a, 0.0d0, 0.0d0, 0, 0, 0.0d0,
734 $ m,
x, z, 1, w, iw, i3, info )
735 CALL
chkxer(
'DSPEVX', infot, nout, lerr, ok )
737 CALL
dspevx(
'N',
'V',
'U', 1, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
738 $
x, z, 1, w, iw, i3, info )
739 CALL
chkxer(
'DSPEVX', infot, nout, lerr, ok )
741 CALL
dspevx(
'N',
'I',
'U', 1, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
742 $
x, z, 1, w, iw, i3, info )
743 CALL
chkxer(
'DSPEVX', infot, nout, lerr, ok )
745 CALL
dspevx(
'N',
'I',
'U', 1, a, 0.0d0, 0.0d0, 2, 1, 0.0d0, m,
746 $
x, z, 1, w, iw, i3, info )
747 CALL
chkxer(
'DSPEVX', infot, nout, lerr, ok )
749 CALL
dspevx(
'N',
'I',
'U', 2, a, 0.0d0, 0.0d0, 2, 1, 0.0d0, m,
750 $
x, z, 1, w, iw, i3, info )
751 CALL
chkxer(
'DSPEVX', infot, nout, lerr, ok )
753 CALL
dspevx(
'N',
'I',
'U', 1, a, 0.0d0, 0.0d0, 1, 2, 0.0d0, m,
754 $
x, z, 1, w, iw, i3, info )
755 CALL
chkxer(
'DSPEVX', infot, nout, lerr, ok )
757 CALL
dspevx(
'V',
'A',
'U', 2, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
758 $
x, z, 1, w, iw, i3, info )
759 CALL
chkxer(
'DSPEVX', infot, nout, lerr, ok )
764 ELSE IF(
lsamen( 2, c2,
'SB' ) )
THEN
770 CALL
dsbtrd(
'/',
'U', 0, 0, a, 1, d, e, z, 1, w, info )
771 CALL
chkxer(
'DSBTRD', infot, nout, lerr, ok )
773 CALL
dsbtrd(
'N',
'/', 0, 0, a, 1, d, e, z, 1, w, info )
774 CALL
chkxer(
'DSBTRD', infot, nout, lerr, ok )
776 CALL
dsbtrd(
'N',
'U', -1, 0, a, 1, d, e, z, 1, w, info )
777 CALL
chkxer(
'DSBTRD', infot, nout, lerr, ok )
779 CALL
dsbtrd(
'N',
'U', 0, -1, a, 1, d, e, z, 1, w, info )
780 CALL
chkxer(
'DSBTRD', infot, nout, lerr, ok )
782 CALL
dsbtrd(
'N',
'U', 1, 1, a, 1, d, e, z, 1, w, info )
783 CALL
chkxer(
'DSBTRD', infot, nout, lerr, ok )
785 CALL
dsbtrd(
'V',
'U', 2, 0, a, 1, d, e, z, 1, w, info )
786 CALL
chkxer(
'DSBTRD', infot, nout, lerr, ok )
793 CALL
dsbevd(
'/',
'U', 0, 0, a, 1,
x, z, 1, w, 1, iw, 1, info )
794 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
796 CALL
dsbevd(
'N',
'/', 0, 0, a, 1,
x, z, 1, w, 1, iw, 1, info )
797 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
799 CALL
dsbevd(
'N',
'U', -1, 0, a, 1,
x, z, 1, w, 1, iw, 1,
801 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
803 CALL
dsbevd(
'N',
'U', 0, -1, a, 1,
x, z, 1, w, 1, iw, 1,
805 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
807 CALL
dsbevd(
'N',
'U', 2, 1, a, 1,
x, z, 1, w, 4, iw, 1, info )
808 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
810 CALL
dsbevd(
'V',
'U', 2, 1, a, 2,
x, z, 1, w, 25, iw, 12,
812 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
814 CALL
dsbevd(
'N',
'U', 1, 0, a, 1,
x, z, 1, w, 0, iw, 1, info )
815 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
817 CALL
dsbevd(
'N',
'U', 2, 0, a, 1,
x, z, 1, w, 3, iw, 1, info )
818 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
820 CALL
dsbevd(
'V',
'U', 2, 0, a, 1,
x, z, 2, w, 18, iw, 12,
822 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
824 CALL
dsbevd(
'N',
'U', 1, 0, a, 1,
x, z, 1, w, 1, iw, 0, info )
825 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
827 CALL
dsbevd(
'V',
'U', 2, 0, a, 1,
x, z, 2, w, 25, iw, 11,
829 CALL
chkxer(
'DSBEVD', infot, nout, lerr, ok )
836 CALL
dsbev(
'/',
'U', 0, 0, a, 1,
x, z, 1, w, info )
837 CALL
chkxer(
'DSBEV ', infot, nout, lerr, ok )
839 CALL
dsbev(
'N',
'/', 0, 0, a, 1,
x, z, 1, w, info )
840 CALL
chkxer(
'DSBEV ', infot, nout, lerr, ok )
842 CALL
dsbev(
'N',
'U', -1, 0, a, 1,
x, z, 1, w, info )
843 CALL
chkxer(
'DSBEV ', infot, nout, lerr, ok )
845 CALL
dsbev(
'N',
'U', 0, -1, a, 1,
x, z, 1, w, info )
846 CALL
chkxer(
'DSBEV ', infot, nout, lerr, ok )
848 CALL
dsbev(
'N',
'U', 2, 1, a, 1,
x, z, 1, w, info )
849 CALL
chkxer(
'DSBEV ', infot, nout, lerr, ok )
851 CALL
dsbev(
'V',
'U', 2, 0, a, 1,
x, z, 1, w, info )
852 CALL
chkxer(
'DSBEV ', infot, nout, lerr, ok )
859 CALL
dsbevx(
'/',
'A',
'U', 0, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
860 $ 0, 0.0d0, m,
x, z, 1, w, iw, i3, info )
861 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
863 CALL
dsbevx(
'N',
'/',
'U', 0, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
864 $ 0, 0.0d0, m,
x, z, 1, w, iw, i3, info )
865 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
867 CALL
dsbevx(
'N',
'A',
'/', 0, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
868 $ 0, 0.0d0, m,
x, z, 1, w, iw, i3, info )
870 CALL
dsbevx(
'N',
'A',
'U', -1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
871 $ 0, 0.0d0, m,
x, z, 1, w, iw, i3, info )
872 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
874 CALL
dsbevx(
'N',
'A',
'U', 0, -1, a, 1, q, 1, 0.0d0, 0.0d0, 0,
875 $ 0, 0.0d0, m,
x, z, 1, w, iw, i3, info )
876 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
878 CALL
dsbevx(
'N',
'A',
'U', 2, 1, a, 1, q, 1, 0.0d0, 0.0d0, 0,
879 $ 0, 0.0d0, m,
x, z, 1, w, iw, i3, info )
880 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
882 CALL
dsbevx(
'V',
'A',
'U', 2, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
883 $ 0, 0.0d0, m,
x, z, 2, w, iw, i3, info )
884 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
886 CALL
dsbevx(
'N',
'V',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
887 $ 0, 0.0d0, m,
x, z, 1, w, iw, i3, info )
888 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
890 CALL
dsbevx(
'N',
'I',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
891 $ 0, 0.0d0, m,
x, z, 1, w, iw, i3, info )
892 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
894 CALL
dsbevx(
'N',
'I',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 2,
895 $ 1, 0.0d0, m,
x, z, 1, w, iw, i3, info )
896 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
898 CALL
dsbevx(
'N',
'I',
'U', 2, 0, a, 1, q, 1, 0.0d0, 0.0d0, 2,
899 $ 1, 0.0d0, m,
x, z, 1, w, iw, i3, info )
900 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
902 CALL
dsbevx(
'N',
'I',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 1,
903 $ 2, 0.0d0, m,
x, z, 1, w, iw, i3, info )
904 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
906 CALL
dsbevx(
'V',
'A',
'U', 2, 0, a, 1, q, 2, 0.0d0, 0.0d0, 0,
907 $ 0, 0.0d0, m,
x, z, 1, w, iw, i3, info )
908 CALL
chkxer(
'DSBEVX', infot, nout, lerr, ok )
915 WRITE( nout, fmt = 9999 )path, nt
917 WRITE( nout, fmt = 9998 )path
920 9999
FORMAT( 1
x, a3,
' routines passed the tests of the error exits',
921 $
' (', i3,
' tests done)' )
922 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',
subroutine dsteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
DSTEQR
subroutine dstein(N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, IWORK, IFAIL, INFO)
DSTEIN
subroutine dormtr(SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
DORMTR
subroutine dsptrd(UPLO, N, AP, D, E, TAU, INFO)
DSPTRD
subroutine dopgtr(UPLO, N, AP, TAU, Q, LDQ, WORK, INFO)
DOPGTR
subroutine dopmtr(SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO)
DOPMTR
subroutine dsbev(JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, INFO)
DSBEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine dspevd(JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, IWORK, LIWORK, INFO)
DSPEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine dstevx(JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, INFO)
DSTEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine dsterf(N, D, E, INFO)
DSTERF
subroutine dsyevx(JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, IWORK, IFAIL, INFO)
DSYEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for SY matrices ...
subroutine dsbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
DSBTRD
subroutine derrst(PATH, NUNIT)
DERRST
subroutine dsbevd(JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, LWORK, IWORK, LIWORK, INFO)
DSBEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine dstedc(COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK, LIWORK, INFO)
DSTEBZ
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine dpteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
DPTEQR
subroutine dstevr(JOBZ, RANGE, N, D, E, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO)
DSTEVR computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine dsyevr(JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, IWORK, LIWORK, INFO)
DSYEVR computes the eigenvalues and, optionally, the left and/or right eigenvectors for SY matrices ...
subroutine dstevd(JOBZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK, LIWORK, INFO)
DSTEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine dsyevd(JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, IWORK, LIWORK, INFO)
DSYEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for SY matrices ...
subroutine dstev(JOBZ, N, D, E, Z, LDZ, WORK, INFO)
DSTEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine dsbevx(JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, INFO)
DSBEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
LOGICAL function lsamen(N, CA, CB)
LSAMEN
subroutine dspev(JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, INFO)
DSPEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine dsytrd(UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO)
DSYTRD
subroutine dsyev(JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, INFO)
DSYEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for SY matrices ...
subroutine dorgtr(UPLO, N, A, LDA, TAU, WORK, LWORK, INFO)
DORGTR
subroutine dstebz(RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E, M, NSPLIT, W, IBLOCK, ISPLIT, WORK, IWORK, INFO)
DSTEBZ
subroutine dspevx(JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, INFO)
DSPEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...