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( 1x, 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 dsterf(N, D, E, INFO)
DSTERF
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 dstebz(RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E, M, NSPLIT, W, IBLOCK, ISPLIT, WORK, IWORK, INFO)
DSTEBZ
subroutine dsbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
DSBTRD
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...
subroutine dorgtr(UPLO, N, A, LDA, TAU, WORK, LWORK, INFO)
DORGTR
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 dsytrd(UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO)
DSYTRD
subroutine dopmtr(SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO)
DOPMTR
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 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 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 dpteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
DPTEQR
subroutine dsteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
DSTEQR
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 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 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 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 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 chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
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...
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 dstedc(COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK, LIWORK, INFO)
DSTEDC
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 dopgtr(UPLO, N, AP, TAU, Q, LDQ, WORK, INFO)
DOPGTR
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 dstein(N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, IWORK, IFAIL, INFO)
DSTEIN