74 parameter ( nmax = 3, liw = 12*nmax, lw = 20*nmax )
78 INTEGER i, info, j, m, n, nt
81 INTEGER i1( nmax ), i2( nmax ), i3( nmax ), iw( liw )
82 DOUBLE PRECISION d( nmax ), e( nmax ), r( lw ), rw( lw ),
84 COMPLEX*16 a( nmax, nmax ), c( nmax, nmax ),
85 $ q( nmax, nmax ), tau( nmax ), w( lw ),
104 COMMON / infoc / infot, nout, ok, lerr
105 COMMON / srnamc / srnamt
113 WRITE( nout, fmt = * )
120 a( i, j ) = 1.d0 / dble( i+j )
135 IF(
lsamen( 2, c2,
'ST' ) )
THEN
141 CALL zhetrd(
'/', 0, a, 1, d, e, tau, w, 1, info )
142 CALL chkxer(
'ZHETRD', infot, nout, lerr, ok )
144 CALL zhetrd(
'U', -1, a, 1, d, e, tau, w, 1, info )
145 CALL chkxer(
'ZHETRD', infot, nout, lerr, ok )
147 CALL zhetrd(
'U', 2, a, 1, d, e, tau, w, 1, info )
148 CALL chkxer(
'ZHETRD', infot, nout, lerr, ok )
150 CALL zhetrd(
'U', 0, a, 1, d, e, tau, w, 0, info )
151 CALL chkxer(
'ZHETRD', infot, nout, lerr, ok )
158 CALL zungtr(
'/', 0, a, 1, tau, w, 1, info )
159 CALL chkxer(
'ZUNGTR', infot, nout, lerr, ok )
161 CALL zungtr(
'U', -1, a, 1, tau, w, 1, info )
162 CALL chkxer(
'ZUNGTR', infot, nout, lerr, ok )
164 CALL zungtr(
'U', 2, a, 1, tau, w, 1, info )
165 CALL chkxer(
'ZUNGTR', infot, nout, lerr, ok )
167 CALL zungtr(
'U', 3, a, 3, tau, w, 1, info )
168 CALL chkxer(
'ZUNGTR', infot, nout, lerr, ok )
175 CALL zunmtr(
'/',
'U',
'N', 0, 0, a, 1, tau, c, 1, w, 1, info )
176 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
178 CALL zunmtr(
'L',
'/',
'N', 0, 0, a, 1, tau, c, 1, w, 1, info )
179 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
181 CALL zunmtr(
'L',
'U',
'/', 0, 0, a, 1, tau, c, 1, w, 1, info )
182 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
184 CALL zunmtr(
'L',
'U',
'N', -1, 0, a, 1, tau, c, 1, w, 1,
186 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
188 CALL zunmtr(
'L',
'U',
'N', 0, -1, a, 1, tau, c, 1, w, 1,
190 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
192 CALL zunmtr(
'L',
'U',
'N', 2, 0, a, 1, tau, c, 2, w, 1, info )
193 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
195 CALL zunmtr(
'R',
'U',
'N', 0, 2, a, 1, tau, c, 1, w, 1, info )
196 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
198 CALL zunmtr(
'L',
'U',
'N', 2, 0, a, 2, tau, c, 1, w, 1, info )
199 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
201 CALL zunmtr(
'L',
'U',
'N', 0, 2, a, 1, tau, c, 1, w, 1, info )
202 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
204 CALL zunmtr(
'R',
'U',
'N', 2, 0, a, 1, tau, c, 2, w, 1, info )
205 CALL chkxer(
'ZUNMTR', infot, nout, lerr, ok )
212 CALL zhptrd(
'/', 0, a, d, e, tau, info )
213 CALL chkxer(
'ZHPTRD', infot, nout, lerr, ok )
215 CALL zhptrd(
'U', -1, a, d, e, tau, info )
216 CALL chkxer(
'ZHPTRD', infot, nout, lerr, ok )
223 CALL zupgtr(
'/', 0, a, tau, z, 1, w, info )
224 CALL chkxer(
'ZUPGTR', infot, nout, lerr, ok )
226 CALL zupgtr(
'U', -1, a, tau, z, 1, w, info )
227 CALL chkxer(
'ZUPGTR', infot, nout, lerr, ok )
229 CALL zupgtr(
'U', 2, a, tau, z, 1, w, info )
230 CALL chkxer(
'ZUPGTR', infot, nout, lerr, ok )
237 CALL zupmtr(
'/',
'U',
'N', 0, 0, a, tau, c, 1, w, info )
238 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
240 CALL zupmtr(
'L',
'/',
'N', 0, 0, a, tau, c, 1, w, info )
241 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
243 CALL zupmtr(
'L',
'U',
'/', 0, 0, a, tau, c, 1, w, info )
244 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
246 CALL zupmtr(
'L',
'U',
'N', -1, 0, a, tau, c, 1, w, info )
247 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
249 CALL zupmtr(
'L',
'U',
'N', 0, -1, a, tau, c, 1, w, info )
250 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
252 CALL zupmtr(
'L',
'U',
'N', 2, 0, a, tau, c, 1, w, info )
253 CALL chkxer(
'ZUPMTR', infot, nout, lerr, ok )
260 CALL zpteqr(
'/', 0, d, e, z, 1, rw, info )
261 CALL chkxer(
'ZPTEQR', infot, nout, lerr, ok )
263 CALL zpteqr(
'N', -1, d, e, z, 1, rw, info )
264 CALL chkxer(
'ZPTEQR', infot, nout, lerr, ok )
266 CALL zpteqr(
'V', 2, d, e, z, 1, rw, info )
267 CALL chkxer(
'ZPTEQR', infot, nout, lerr, ok )
274 CALL zstein( -1, d, e, 0, x, i1, i2, z, 1, rw, iw, i3, info )
275 CALL chkxer(
'ZSTEIN', infot, nout, lerr, ok )
277 CALL zstein( 0, d, e, -1, x, i1, i2, z, 1, rw, iw, i3, info )
278 CALL chkxer(
'ZSTEIN', infot, nout, lerr, ok )
280 CALL zstein( 0, d, e, 1, x, i1, i2, z, 1, rw, iw, i3, info )
281 CALL chkxer(
'ZSTEIN', infot, nout, lerr, ok )
283 CALL zstein( 2, d, e, 0, x, i1, i2, z, 1, rw, iw, i3, info )
284 CALL chkxer(
'ZSTEIN', infot, nout, lerr, ok )
291 CALL zsteqr(
'/', 0, d, e, z, 1, rw, info )
292 CALL chkxer(
'ZSTEQR', infot, nout, lerr, ok )
294 CALL zsteqr(
'N', -1, d, e, z, 1, rw, info )
295 CALL chkxer(
'ZSTEQR', infot, nout, lerr, ok )
297 CALL zsteqr(
'V', 2, d, e, z, 1, rw, info )
298 CALL chkxer(
'ZSTEQR', infot, nout, lerr, ok )
305 CALL zstedc(
'/', 0, d, e, z, 1, w, 1, rw, 1, iw, 1, info )
306 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
308 CALL zstedc(
'N', -1, d, e, z, 1, w, 1, rw, 1, iw, 1, info )
309 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
311 CALL zstedc(
'V', 2, d, e, z, 1, w, 4, rw, 23, iw, 28, info )
312 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
314 CALL zstedc(
'N', 2, d, e, z, 1, w, 0, rw, 1, iw, 1, info )
315 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
317 CALL zstedc(
'V', 2, d, e, z, 2, w, 0, rw, 23, iw, 28, info )
318 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
320 CALL zstedc(
'N', 2, d, e, z, 1, w, 1, rw, 0, iw, 1, info )
321 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
323 CALL zstedc(
'I', 2, d, e, z, 2, w, 1, rw, 1, iw, 12, info )
324 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
326 CALL zstedc(
'V', 2, d, e, z, 2, w, 4, rw, 1, iw, 28, info )
327 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
329 CALL zstedc(
'N', 2, d, e, z, 1, w, 1, rw, 1, iw, 0, info )
330 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
332 CALL zstedc(
'I', 2, d, e, z, 2, w, 1, rw, 23, iw, 0, info )
333 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
335 CALL zstedc(
'V', 2, d, e, z, 2, w, 4, rw, 23, iw, 0, info )
336 CALL chkxer(
'ZSTEDC', infot, nout, lerr, ok )
343 CALL zheevd(
'/',
'U', 0, a, 1, x, w, 1, rw, 1, iw, 1, info )
344 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
346 CALL zheevd(
'N',
'/', 0, a, 1, x, w, 1, rw, 1, iw, 1, info )
347 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
349 CALL zheevd(
'N',
'U', -1, a, 1, x, w, 1, rw, 1, iw, 1, info )
350 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
352 CALL zheevd(
'N',
'U', 2, a, 1, x, w, 3, rw, 2, iw, 1, info )
353 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
355 CALL zheevd(
'N',
'U', 1, a, 1, x, w, 0, rw, 1, iw, 1, info )
356 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
358 CALL zheevd(
'N',
'U', 2, a, 2, x, w, 2, rw, 2, iw, 1, info )
359 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
361 CALL zheevd(
'V',
'U', 2, a, 2, x, w, 3, rw, 25, iw, 12, info )
362 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
364 CALL zheevd(
'N',
'U', 1, a, 1, x, w, 1, rw, 0, iw, 1, info )
365 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
367 CALL zheevd(
'N',
'U', 2, a, 2, x, w, 3, rw, 1, iw, 1, info )
368 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
370 CALL zheevd(
'V',
'U', 2, a, 2, x, w, 8, rw, 18, iw, 12, info )
371 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
373 CALL zheevd(
'N',
'U', 1, a, 1, x, w, 1, rw, 1, iw, 0, info )
374 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
376 CALL zheevd(
'V',
'U', 2, a, 2, x, w, 8, rw, 25, iw, 11, info )
377 CALL chkxer(
'ZHEEVD', infot, nout, lerr, ok )
384 CALL zheev(
'/',
'U', 0, a, 1, x, w, 1, rw, info )
385 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
387 CALL zheev(
'N',
'/', 0, a, 1, x, w, 1, rw, info )
388 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
390 CALL zheev(
'N',
'U', -1, a, 1, x, w, 1, rw, info )
391 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
393 CALL zheev(
'N',
'U', 2, a, 1, x, w, 3, rw, info )
394 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
396 CALL zheev(
'N',
'U', 2, a, 2, x, w, 2, rw, info )
397 CALL chkxer(
'ZHEEV ', infot, nout, lerr, ok )
404 CALL zheevx(
'/',
'A',
'U', 0, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
405 $ m, x, z, 1, w, 1, rw, iw, i3, info )
406 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
408 CALL zheevx(
'V',
'/',
'U', 0, a, 1, 0.0d0, 1.0d0, 1, 0, 0.0d0,
409 $ m, x, z, 1, w, 1, rw, iw, i3, info )
410 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
412 CALL zheevx(
'V',
'A',
'/', 0, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
413 $ m, x, z, 1, w, 1, rw, iw, i3, info )
415 CALL zheevx(
'V',
'A',
'U', -1, a, 1, 0.0d0, 0.0d0, 0, 0,
416 $ 0.0d0, m, x, z, 1, w, 1, rw, iw, i3, info )
417 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
419 CALL zheevx(
'V',
'A',
'U', 2, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
420 $ m, x, z, 2, w, 3, rw, iw, i3, info )
421 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
423 CALL zheevx(
'V',
'V',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
424 $ m, x, z, 1, w, 1, rw, iw, i3, info )
425 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
427 CALL zheevx(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 0, 0.0d0,
428 $ m, x, z, 1, w, 1, rw, iw, i3, info )
429 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
431 CALL zheevx(
'V',
'I',
'U', 2, a, 2, 0.0d0, 0.0d0, 2, 1, 0.0d0,
432 $ m, x, z, 2, w, 3, rw, iw, i3, info )
433 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
435 CALL zheevx(
'V',
'A',
'U', 2, a, 2, 0.0d0, 0.0d0, 0, 0, 0.0d0,
436 $ m, x, z, 1, w, 3, rw, iw, i3, info )
437 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
439 CALL zheevx(
'V',
'A',
'U', 2, a, 2, 0.0d0, 0.0d0, 0, 0, 0.0d0,
440 $ m, x, z, 2, w, 2, rw, iw, i1, info )
441 CALL chkxer(
'ZHEEVX', infot, nout, lerr, ok )
449 CALL zheevr(
'/',
'A',
'U', 0, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
450 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
452 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
454 CALL zheevr(
'V',
'/',
'U', 0, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
455 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
457 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
459 CALL zheevr(
'V',
'A',
'/', -1, a, 1, 0.0d0, 0.0d0, 1, 1,
460 $ 0.0d0, m, r, z, 1, iw, q, 2*n, rw, 24*n,
461 $ iw( 2*n+1 ), 10*n, info )
462 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
464 CALL zheevr(
'V',
'A',
'U', -1, a, 1, 0.0d0, 0.0d0, 1, 1,
465 $ 0.0d0, m, r, z, 1, iw, q, 2*n, rw, 24*n,
466 $ iw( 2*n+1 ), 10*n, info )
467 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
469 CALL zheevr(
'V',
'A',
'U', 2, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
470 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
472 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
474 CALL zheevr(
'V',
'V',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
475 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
477 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
479 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 0, 1, 0.0d0,
480 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
482 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
485 CALL zheevr(
'V',
'I',
'U', 2, a, 2, 0.0d0, 0.0d0, 2, 1, 0.0d0,
486 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
488 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
490 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
491 $ m, r, z, 0, iw, q, 2*n, rw, 24*n, iw( 2*n+1 ),
493 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
495 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
496 $ m, r, z, 1, iw, q, 2*n-1, rw, 24*n, iw( 2*n+1 ),
498 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
500 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
501 $ m, r, z, 1, iw, q, 2*n, rw, 24*n-1, iw( 2*n-1 ),
503 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
505 CALL zheevr(
'V',
'I',
'U', 1, a, 1, 0.0d0, 0.0d0, 1, 1, 0.0d0,
506 $ m, r, z, 1, iw, q, 2*n, rw, 24*n, iw, 10*n-1,
508 CALL chkxer(
'ZHEEVR', infot, nout, lerr, ok )
515 CALL zhpevd(
'/',
'U', 0, a, x, z, 1, w, 1, rw, 1, iw, 1,
517 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
519 CALL zhpevd(
'N',
'/', 0, a, x, z, 1, w, 1, rw, 1, iw, 1,
521 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
523 CALL zhpevd(
'N',
'U', -1, a, x, z, 1, w, 1, rw, 1, iw, 1,
525 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
527 CALL zhpevd(
'V',
'U', 2, a, x, z, 1, w, 4, rw, 25, iw, 12,
529 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
531 CALL zhpevd(
'N',
'U', 1, a, x, z, 1, w, 0, rw, 1, iw, 1,
533 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
535 CALL zhpevd(
'N',
'U', 2, a, x, z, 2, w, 1, rw, 2, iw, 1,
537 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
539 CALL zhpevd(
'V',
'U', 2, a, x, z, 2, w, 2, rw, 25, iw, 12,
541 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
543 CALL zhpevd(
'N',
'U', 1, a, x, z, 1, w, 1, rw, 0, iw, 1,
545 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
547 CALL zhpevd(
'N',
'U', 2, a, x, z, 2, w, 2, rw, 1, iw, 1,
549 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
551 CALL zhpevd(
'V',
'U', 2, a, x, z, 2, w, 4, rw, 18, iw, 12,
553 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
555 CALL zhpevd(
'N',
'U', 1, a, x, z, 1, w, 1, rw, 1, iw, 0,
557 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
559 CALL zhpevd(
'N',
'U', 2, a, x, z, 2, w, 2, rw, 2, iw, 0,
561 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
563 CALL zhpevd(
'V',
'U', 2, a, x, z, 2, w, 4, rw, 25, iw, 2,
565 CALL chkxer(
'ZHPEVD', infot, nout, lerr, ok )
572 CALL zhpev(
'/',
'U', 0, a, x, z, 1, w, rw, info )
573 CALL chkxer(
'ZHPEV ', infot, nout, lerr, ok )
575 CALL zhpev(
'N',
'/', 0, a, x, z, 1, w, rw, info )
576 CALL chkxer(
'ZHPEV ', infot, nout, lerr, ok )
578 CALL zhpev(
'N',
'U', -1, a, x, z, 1, w, rw, info )
579 CALL chkxer(
'ZHPEV ', infot, nout, lerr, ok )
581 CALL zhpev(
'V',
'U', 2, a, x, z, 1, w, rw, info )
582 CALL chkxer(
'ZHPEV ', infot, nout, lerr, ok )
589 CALL zhpevx(
'/',
'A',
'U', 0, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
590 $ x, z, 1, w, rw, iw, i3, info )
591 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
593 CALL zhpevx(
'V',
'/',
'U', 0, a, 0.0d0, 1.0d0, 1, 0, 0.0d0, m,
594 $ x, z, 1, w, rw, iw, i3, info )
595 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
597 CALL zhpevx(
'V',
'A',
'/', 0, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
598 $ x, z, 1, w, rw, iw, i3, info )
599 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
601 CALL zhpevx(
'V',
'A',
'U', -1, a, 0.0d0, 0.0d0, 0, 0, 0.0d0,
602 $ m, x, z, 1, w, rw, iw, i3, info )
603 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
605 CALL zhpevx(
'V',
'V',
'U', 1, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
606 $ x, z, 1, w, rw, iw, i3, info )
607 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
609 CALL zhpevx(
'V',
'I',
'U', 1, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
610 $ x, z, 1, w, rw, iw, i3, info )
611 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
613 CALL zhpevx(
'V',
'I',
'U', 2, a, 0.0d0, 0.0d0, 2, 1, 0.0d0, m,
614 $ x, z, 2, w, rw, iw, i3, info )
615 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
617 CALL zhpevx(
'V',
'A',
'U', 2, a, 0.0d0, 0.0d0, 0, 0, 0.0d0, m,
618 $ x, z, 1, w, rw, iw, i3, info )
619 CALL chkxer(
'ZHPEVX', infot, nout, lerr, ok )
624 ELSE IF(
lsamen( 2, c2,
'HB' ) )
THEN
630 CALL zhbtrd(
'/',
'U', 0, 0, a, 1, d, e, z, 1, w, info )
631 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
633 CALL zhbtrd(
'N',
'/', 0, 0, a, 1, d, e, z, 1, w, info )
634 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
636 CALL zhbtrd(
'N',
'U', -1, 0, a, 1, d, e, z, 1, w, info )
637 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
639 CALL zhbtrd(
'N',
'U', 0, -1, a, 1, d, e, z, 1, w, info )
640 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
642 CALL zhbtrd(
'N',
'U', 1, 1, a, 1, d, e, z, 1, w, info )
643 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
645 CALL zhbtrd(
'V',
'U', 2, 0, a, 1, d, e, z, 1, w, info )
646 CALL chkxer(
'ZHBTRD', infot, nout, lerr, ok )
653 CALL zhbevd(
'/',
'U', 0, 0, a, 1, x, z, 1, w, 1, rw, 1, iw, 1,
655 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
657 CALL zhbevd(
'N',
'/', 0, 0, a, 1, x, z, 1, w, 1, rw, 1, iw, 1,
659 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
661 CALL zhbevd(
'N',
'U', -1, 0, a, 1, x, z, 1, w, 1, rw, 1, iw,
663 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
665 CALL zhbevd(
'N',
'U', 0, -1, a, 1, x, z, 1, w, 1, rw, 1, iw,
667 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
669 CALL zhbevd(
'N',
'U', 2, 1, a, 1, x, z, 1, w, 2, rw, 2, iw, 1,
671 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
673 CALL zhbevd(
'V',
'U', 2, 1, a, 2, x, z, 1, w, 8, rw, 25, iw,
675 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
677 CALL zhbevd(
'N',
'U', 1, 0, a, 1, x, z, 1, w, 0, rw, 1, iw, 1,
679 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
681 CALL zhbevd(
'N',
'U', 2, 1, a, 2, x, z, 2, w, 1, rw, 2, iw, 1,
683 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
685 CALL zhbevd(
'V',
'U', 2, 1, a, 2, x, z, 2, w, 2, rw, 25, iw,
687 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
689 CALL zhbevd(
'N',
'U', 1, 0, a, 1, x, z, 1, w, 1, rw, 0, iw, 1,
691 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
693 CALL zhbevd(
'N',
'U', 2, 1, a, 2, x, z, 2, w, 2, rw, 1, iw, 1,
695 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
697 CALL zhbevd(
'V',
'U', 2, 1, a, 2, x, z, 2, w, 8, rw, 2, iw,
699 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
701 CALL zhbevd(
'N',
'U', 1, 0, a, 1, x, z, 1, w, 1, rw, 1, iw, 0,
703 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
705 CALL zhbevd(
'N',
'U', 2, 1, a, 2, x, z, 2, w, 2, rw, 2, iw, 0,
707 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
709 CALL zhbevd(
'V',
'U', 2, 1, a, 2, x, z, 2, w, 8, rw, 25, iw,
711 CALL chkxer(
'ZHBEVD', infot, nout, lerr, ok )
718 CALL zhbev(
'/',
'U', 0, 0, a, 1, x, z, 1, w, rw, info )
719 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
721 CALL zhbev(
'N',
'/', 0, 0, a, 1, x, z, 1, w, rw, info )
722 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
724 CALL zhbev(
'N',
'U', -1, 0, a, 1, x, z, 1, w, rw, info )
725 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
727 CALL zhbev(
'N',
'U', 0, -1, a, 1, x, z, 1, w, rw, info )
728 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
730 CALL zhbev(
'N',
'U', 2, 1, a, 1, x, z, 1, w, rw, info )
731 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
733 CALL zhbev(
'V',
'U', 2, 0, a, 1, x, z, 1, w, rw, info )
734 CALL chkxer(
'ZHBEV ', infot, nout, lerr, ok )
741 CALL zhbevx(
'/',
'A',
'U', 0, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
742 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
743 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
745 CALL zhbevx(
'V',
'/',
'U', 0, 0, a, 1, q, 1, 0.0d0, 1.0d0, 1,
746 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
747 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
749 CALL zhbevx(
'V',
'A',
'/', 0, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
750 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
752 CALL zhbevx(
'V',
'A',
'U', -1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
753 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
754 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
756 CALL zhbevx(
'V',
'A',
'U', 0, -1, a, 1, q, 1, 0.0d0, 0.0d0, 0,
757 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
758 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
760 CALL zhbevx(
'V',
'A',
'U', 2, 1, a, 1, q, 2, 0.0d0, 0.0d0, 0,
761 $ 0, 0.0d0, m, x, z, 2, w, rw, iw, i3, info )
762 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
764 CALL zhbevx(
'V',
'A',
'U', 2, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
765 $ 0, 0.0d0, m, x, z, 2, w, rw, iw, i3, info )
766 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
768 CALL zhbevx(
'V',
'V',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
769 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
770 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
772 CALL zhbevx(
'V',
'I',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 0,
773 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
774 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
776 CALL zhbevx(
'V',
'I',
'U', 1, 0, a, 1, q, 1, 0.0d0, 0.0d0, 1,
777 $ 2, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
778 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
780 CALL zhbevx(
'V',
'A',
'U', 2, 0, a, 1, q, 2, 0.0d0, 0.0d0, 0,
781 $ 0, 0.0d0, m, x, z, 1, w, rw, iw, i3, info )
782 CALL chkxer(
'ZHBEVX', infot, nout, lerr, ok )
789 WRITE( nout, fmt = 9999 )path, nt
791 WRITE( nout, fmt = 9998 )path
794 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits',
795 $
' (', i3,
' tests done)' )
796 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',
subroutine zhpevd(JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHPEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine zpteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
ZPTEQR
subroutine zhbev(JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, RWORK, INFO)
ZHBEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhbevd(JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHBEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
logical function lsamen(N, CA, CB)
LSAMEN
subroutine zhetrd(UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO)
ZHETRD
subroutine zheevd(JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHEEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices ...
subroutine zhbevx(JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO)
ZHBEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine zsteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
ZSTEQR
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine zheevx(JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, IWORK, IFAIL, INFO)
ZHEEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices ...
subroutine zungtr(UPLO, N, A, LDA, TAU, WORK, LWORK, INFO)
ZUNGTR
subroutine zstein(N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, IWORK, IFAIL, INFO)
ZSTEIN
subroutine zstedc(COMPZ, N, D, E, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZSTEDC
subroutine zhptrd(UPLO, N, AP, D, E, TAU, INFO)
ZHPTRD
subroutine zhpevx(JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO)
ZHPEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine zheevr(JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHEEVR computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices ...
subroutine zunmtr(SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMTR
subroutine zupmtr(SIDE, UPLO, TRANS, M, N, AP, TAU, C, LDC, WORK, INFO)
ZUPMTR
subroutine zhpev(JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, RWORK, INFO)
ZHPEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhbtrd(VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)
ZHBTRD
subroutine zheev(JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, INFO)
ZHEEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for HE matrices ...
subroutine zupgtr(UPLO, N, AP, TAU, Q, LDQ, WORK, INFO)
ZUPGTR