74 DOUBLE PRECISION ANRM, RCOND
78 DOUBLE PRECISION R( NMAX ), R1( NMAX ), R2( NMAX )
79 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
80 $ E( NMAX ), W( 2*NMAX ), X( NMAX )
100 COMMON / infoc / infot, nout, ok, lerr
101 COMMON / srnamc / srnamt
104 INTRINSIC dble, dcmplx
109 WRITE( nout, fmt = * )
116 a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
117 $ -1.d0 / dble( i+j ) )
118 af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
119 $ -1.d0 / dble( i+j ) )
132 IF( lsamen( 2, c2,
'SY' ) )
THEN
142 CALL zsytrf(
'/', 0, a, 1, ip, w, 1, info )
143 CALL chkxer(
'ZSYTRF', infot, nout, lerr, ok )
145 CALL zsytrf(
'U', -1, a, 1, ip, w, 1, info )
146 CALL chkxer(
'ZSYTRF', infot, nout, lerr, ok )
148 CALL zsytrf(
'U', 2, a, 1, ip, w, 4, info )
149 CALL chkxer(
'ZSYTRF', infot, nout, lerr, ok )
151 CALL zsytrf(
'U', 0, a, 1, ip, w, 0, info )
152 CALL chkxer(
'ZSYTRF', infot, nout, lerr, ok )
154 CALL zsytrf(
'U', 0, a, 1, ip, w, -2, info )
155 CALL chkxer(
'ZSYTRF', infot, nout, lerr, ok )
161 CALL zsytf2(
'/', 0, a, 1, ip, info )
162 CALL chkxer(
'ZSYTF2', infot, nout, lerr, ok )
164 CALL zsytf2(
'U', -1, a, 1, ip, info )
165 CALL chkxer(
'ZSYTF2', infot, nout, lerr, ok )
167 CALL zsytf2(
'U', 2, a, 1, ip, info )
168 CALL chkxer(
'ZSYTF2', infot, nout, lerr, ok )
174 CALL zsytri(
'/', 0, a, 1, ip, w, info )
175 CALL chkxer(
'ZSYTRI', infot, nout, lerr, ok )
177 CALL zsytri(
'U', -1, a, 1, ip, w, info )
178 CALL chkxer(
'ZSYTRI', infot, nout, lerr, ok )
180 CALL zsytri(
'U', 2, a, 1, ip, w, info )
181 CALL chkxer(
'ZSYTRI', infot, nout, lerr, ok )
187 CALL zsytri2(
'/', 0, a, 1, ip, w, 1, info )
188 CALL chkxer(
'ZSYTRI2', infot, nout, lerr, ok )
190 CALL zsytri2(
'U', -1, a, 1, ip, w, 1, info )
191 CALL chkxer(
'ZSYTRI2', infot, nout, lerr, ok )
193 CALL zsytri2(
'U', 2, a, 1, ip, w, 1, info )
194 CALL chkxer(
'ZSYTRI2', infot, nout, lerr, ok )
200 CALL zsytri2x(
'/', 0, a, 1, ip, w, 1, info )
201 CALL chkxer(
'ZSYTRI2X', infot, nout, lerr, ok )
203 CALL zsytri2x(
'U', -1, a, 1, ip, w, 1, info )
204 CALL chkxer(
'ZSYTRI2X', infot, nout, lerr, ok )
206 CALL zsytri2x(
'U', 2, a, 1, ip, w, 1, info )
207 CALL chkxer(
'ZSYTRI2X', infot, nout, lerr, ok )
213 CALL zsytrs(
'/', 0, 0, a, 1, ip, b, 1, info )
214 CALL chkxer(
'ZSYTRS', infot, nout, lerr, ok )
216 CALL zsytrs(
'U', -1, 0, a, 1, ip, b, 1, info )
217 CALL chkxer(
'ZSYTRS', infot, nout, lerr, ok )
219 CALL zsytrs(
'U', 0, -1, a, 1, ip, b, 1, info )
220 CALL chkxer(
'ZSYTRS', infot, nout, lerr, ok )
222 CALL zsytrs(
'U', 2, 1, a, 1, ip, b, 2, info )
223 CALL chkxer(
'ZSYTRS', infot, nout, lerr, ok )
225 CALL zsytrs(
'U', 2, 1, a, 2, ip, b, 1, info )
226 CALL chkxer(
'ZSYTRS', infot, nout, lerr, ok )
232 CALL zsyrfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
234 CALL chkxer(
'ZSYRFS', infot, nout, lerr, ok )
236 CALL zsyrfs(
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
238 CALL chkxer(
'ZSYRFS', infot, nout, lerr, ok )
240 CALL zsyrfs(
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
242 CALL chkxer(
'ZSYRFS', infot, nout, lerr, ok )
244 CALL zsyrfs(
'U', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
246 CALL chkxer(
'ZSYRFS', infot, nout, lerr, ok )
248 CALL zsyrfs(
'U', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
250 CALL chkxer(
'ZSYRFS', infot, nout, lerr, ok )
252 CALL zsyrfs(
'U', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
254 CALL chkxer(
'ZSYRFS', infot, nout, lerr, ok )
256 CALL zsyrfs(
'U', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
258 CALL chkxer(
'ZSYRFS', infot, nout, lerr, ok )
264 CALL zsycon(
'/', 0, a, 1, ip, anrm, rcond, w, info )
265 CALL chkxer(
'ZSYCON', infot, nout, lerr, ok )
267 CALL zsycon(
'U', -1, a, 1, ip, anrm, rcond, w, info )
268 CALL chkxer(
'ZSYCON', infot, nout, lerr, ok )
270 CALL zsycon(
'U', 2, a, 1, ip, anrm, rcond, w, info )
271 CALL chkxer(
'ZSYCON', infot, nout, lerr, ok )
273 CALL zsycon(
'U', 1, a, 1, ip, -anrm, rcond, w, info )
274 CALL chkxer(
'ZSYCON', infot, nout, lerr, ok )
276 ELSE IF( lsamen( 2, c2,
'SR' ) )
THEN
284 srnamt =
'ZSYTRF_ROOK'
287 CALL chkxer(
'ZSYTRF_ROOK', infot, nout, lerr, ok )
290 CALL chkxer(
'ZSYTRF_ROOK', infot, nout, lerr, ok )
293 CALL chkxer(
'ZSYTRF_ROOK', infot, nout, lerr, ok )
296 CALL chkxer(
'ZSYTRF_ROOK', infot, nout, lerr, ok )
299 CALL chkxer(
'ZSYTRF_ROOK', infot, nout, lerr, ok )
303 srnamt =
'ZSYTF2_ROOK'
306 CALL chkxer(
'ZSYTF2_ROOK', infot, nout, lerr, ok )
309 CALL chkxer(
'ZSYTF2_ROOK', infot, nout, lerr, ok )
312 CALL chkxer(
'ZSYTF2_ROOK', infot, nout, lerr, ok )
316 srnamt =
'ZSYTRI_ROOK'
319 CALL chkxer(
'ZSYTRI_ROOK', infot, nout, lerr, ok )
322 CALL chkxer(
'ZSYTRI_ROOK', infot, nout, lerr, ok )
325 CALL chkxer(
'ZSYTRI_ROOK', infot, nout, lerr, ok )
329 srnamt =
'ZSYTRS_ROOK'
331 CALL zsytrs_rook(
'/', 0, 0, a, 1, ip, b, 1, info )
332 CALL chkxer(
'ZSYTRS_ROOK', infot, nout, lerr, ok )
334 CALL zsytrs_rook(
'U', -1, 0, a, 1, ip, b, 1, info )
335 CALL chkxer(
'ZSYTRS_ROOK', infot, nout, lerr, ok )
337 CALL zsytrs_rook(
'U', 0, -1, a, 1, ip, b, 1, info )
338 CALL chkxer(
'ZSYTRS_ROOK', infot, nout, lerr, ok )
340 CALL zsytrs_rook(
'U', 2, 1, a, 1, ip, b, 2, info )
341 CALL chkxer(
'ZSYTRS_ROOK', infot, nout, lerr, ok )
343 CALL zsytrs_rook(
'U', 2, 1, a, 2, ip, b, 1, info )
344 CALL chkxer(
'ZSYTRS_ROOK', infot, nout, lerr, ok )
348 srnamt =
'ZSYCON_ROOK'
350 CALL zsycon_rook(
'/', 0, a, 1, ip, anrm, rcond, w, info )
351 CALL chkxer(
'ZSYCON_ROOK', infot, nout, lerr, ok )
353 CALL zsycon_rook(
'U', -1, a, 1, ip, anrm, rcond, w, info )
354 CALL chkxer(
'ZSYCON_ROOK', infot, nout, lerr, ok )
356 CALL zsycon_rook(
'U', 2, a, 1, ip, anrm, rcond, w, info )
357 CALL chkxer(
'ZSYCON_ROOK', infot, nout, lerr, ok )
359 CALL zsycon_rook(
'U', 1, a, 1, ip, -anrm, rcond, w, info )
360 CALL chkxer(
'ZSYCON_ROOK', infot, nout, lerr, ok )
362 ELSE IF( lsamen( 2, c2,
'SK' ) )
THEN
376 CALL zsytrf_rk(
'/', 0, a, 1, e, ip, w, 1, info )
377 CALL chkxer(
'ZSYTRF_RK', infot, nout, lerr, ok )
379 CALL zsytrf_rk(
'U', -1, a, 1, e, ip, w, 1, info )
380 CALL chkxer(
'ZSYTRF_RK', infot, nout, lerr, ok )
382 CALL zsytrf_rk(
'U', 2, a, 1, e, ip, w, 4, info )
383 CALL chkxer(
'ZSYTRF_RK', infot, nout, lerr, ok )
385 CALL zsytrf_rk(
'U', 0, a, 1, e, ip, w, 0, info )
386 CALL chkxer(
'ZSYTRF_RK', infot, nout, lerr, ok )
388 CALL zsytrf_rk(
'U', 0, a, 1, e, ip, w, -2, info )
389 CALL chkxer(
'ZSYTRF_RK', infot, nout, lerr, ok )
395 CALL zsytf2_rk(
'/', 0, a, 1, e, ip, info )
396 CALL chkxer(
'ZSYTF2_RK', infot, nout, lerr, ok )
398 CALL zsytf2_rk(
'U', -1, a, 1, e, ip, info )
399 CALL chkxer(
'ZSYTF2_RK', infot, nout, lerr, ok )
401 CALL zsytf2_rk(
'U', 2, a, 1, e, ip, info )
402 CALL chkxer(
'ZSYTF2_RK', infot, nout, lerr, ok )
408 CALL zsytri_3(
'/', 0, a, 1, e, ip, w, 1, info )
409 CALL chkxer(
'ZSYTRI_3', infot, nout, lerr, ok )
411 CALL zsytri_3(
'U', -1, a, 1, e, ip, w, 1, info )
412 CALL chkxer(
'ZSYTRI_3', infot, nout, lerr, ok )
414 CALL zsytri_3(
'U', 2, a, 1, e, ip, w, 1, info )
415 CALL chkxer(
'ZSYTRI_3', infot, nout, lerr, ok )
417 CALL zsytri_3(
'U', 0, a, 1, e, ip, w, 0, info )
418 CALL chkxer(
'ZSYTRI_3', infot, nout, lerr, ok )
420 CALL zsytri_3(
'U', 0, a, 1, e, ip, w, -2, info )
421 CALL chkxer(
'ZSYTRI_3', infot, nout, lerr, ok )
427 CALL zsytri_3x(
'/', 0, a, 1, e, ip, w, 1, info )
428 CALL chkxer(
'ZSYTRI_3X', infot, nout, lerr, ok )
430 CALL zsytri_3x(
'U', -1, a, 1, e, ip, w, 1, info )
431 CALL chkxer(
'ZSYTRI_3X', infot, nout, lerr, ok )
433 CALL zsytri_3x(
'U', 2, a, 1, e, ip, w, 1, info )
434 CALL chkxer(
'ZSYTRI_3X', infot, nout, lerr, ok )
440 CALL zsytrs_3(
'/', 0, 0, a, 1, e, ip, b, 1, info )
441 CALL chkxer(
'ZSYTRS_3', infot, nout, lerr, ok )
443 CALL zsytrs_3(
'U', -1, 0, a, 1, e, ip, b, 1, info )
444 CALL chkxer(
'ZSYTRS_3', infot, nout, lerr, ok )
446 CALL zsytrs_3(
'U', 0, -1, a, 1, e, ip, b, 1, info )
447 CALL chkxer(
'ZSYTRS_3', infot, nout, lerr, ok )
449 CALL zsytrs_3(
'U', 2, 1, a, 1, e, ip, b, 2, info )
450 CALL chkxer(
'ZSYTRS_3', infot, nout, lerr, ok )
452 CALL zsytrs_3(
'U', 2, 1, a, 2, e, ip, b, 1, info )
453 CALL chkxer(
'ZSYTRS_3', infot, nout, lerr, ok )
459 CALL zsycon_3(
'/', 0, a, 1, e, ip, anrm, rcond, w, info )
460 CALL chkxer(
'ZSYCON_3', infot, nout, lerr, ok )
462 CALL zsycon_3(
'U', -1, a, 1, e, ip, anrm, rcond, w, info )
463 CALL chkxer(
'ZSYCON_3', infot, nout, lerr, ok )
465 CALL zsycon_3(
'U', 2, a, 1, e, ip, anrm, rcond, w, info )
466 CALL chkxer(
'ZSYCON_3', infot, nout, lerr, ok )
468 CALL zsycon_3(
'U', 1, a, 1, e, ip, -1.0d0, rcond, w, info)
469 CALL chkxer(
'ZSYCON_3', infot, nout, lerr, ok )
471 ELSE IF( lsamen( 2, c2,
'SP' ) )
THEN
481 CALL zsptrf(
'/', 0, a, ip, info )
482 CALL chkxer(
'ZSPTRF', infot, nout, lerr, ok )
484 CALL zsptrf(
'U', -1, a, ip, info )
485 CALL chkxer(
'ZSPTRF', infot, nout, lerr, ok )
491 CALL zsptri(
'/', 0, a, ip, w, info )
492 CALL chkxer(
'ZSPTRI', infot, nout, lerr, ok )
494 CALL zsptri(
'U', -1, a, ip, w, info )
495 CALL chkxer(
'ZSPTRI', infot, nout, lerr, ok )
501 CALL zsptrs(
'/', 0, 0, a, ip, b, 1, info )
502 CALL chkxer(
'ZSPTRS', infot, nout, lerr, ok )
504 CALL zsptrs(
'U', -1, 0, a, ip, b, 1, info )
505 CALL chkxer(
'ZSPTRS', infot, nout, lerr, ok )
507 CALL zsptrs(
'U', 0, -1, a, ip, b, 1, info )
508 CALL chkxer(
'ZSPTRS', infot, nout, lerr, ok )
510 CALL zsptrs(
'U', 2, 1, a, ip, b, 1, info )
511 CALL chkxer(
'ZSPTRS', infot, nout, lerr, ok )
517 CALL zsprfs(
'/', 0, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
519 CALL chkxer(
'ZSPRFS', infot, nout, lerr, ok )
521 CALL zsprfs(
'U', -1, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
523 CALL chkxer(
'ZSPRFS', infot, nout, lerr, ok )
525 CALL zsprfs(
'U', 0, -1, a, af, ip, b, 1, x, 1, r1, r2, w, r,
527 CALL chkxer(
'ZSPRFS', infot, nout, lerr, ok )
529 CALL zsprfs(
'U', 2, 1, a, af, ip, b, 1, x, 2, r1, r2, w, r,
531 CALL chkxer(
'ZSPRFS', infot, nout, lerr, ok )
533 CALL zsprfs(
'U', 2, 1, a, af, ip, b, 2, x, 1, r1, r2, w, r,
535 CALL chkxer(
'ZSPRFS', infot, nout, lerr, ok )
541 CALL zspcon(
'/', 0, a, ip, anrm, rcond, w, info )
542 CALL chkxer(
'ZSPCON', infot, nout, lerr, ok )
544 CALL zspcon(
'U', -1, a, ip, anrm, rcond, w, info )
545 CALL chkxer(
'ZSPCON', infot, nout, lerr, ok )
547 CALL zspcon(
'U', 1, a, ip, -anrm, rcond, w, info )
548 CALL chkxer(
'ZSPCON', infot, nout, lerr, ok )
550 ELSE IF( lsamen( 2, c2,
'SA' ) )
THEN
559 CALL zsytrf_aa(
'/', 0, a, 1, ip, w, 1, info )
560 CALL chkxer(
'ZSYTRF_AA', infot, nout, lerr, ok )
562 CALL zsytrf_aa(
'U', -1, a, 1, ip, w, 1, info )
563 CALL chkxer(
'ZSYTRF_AA', infot, nout, lerr, ok )
565 CALL zsytrf_aa(
'U', 2, a, 1, ip, w, 4, info )
566 CALL chkxer(
'ZSYTRF_AA', infot, nout, lerr, ok )
568 CALL zsytrf_aa(
'U', 0, a, 1, ip, w, 0, info )
569 CALL chkxer(
'ZSYTRF_AA', infot, nout, lerr, ok )
571 CALL zsytrf_aa(
'U', 0, a, 1, ip, w, -2, info )
572 CALL chkxer(
'ZSYTRF_AA', infot, nout, lerr, ok )
578 CALL zsytrs_aa(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
579 CALL chkxer(
'ZSYTRS_AA', infot, nout, lerr, ok )
581 CALL zsytrs_aa(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
582 CALL chkxer(
'ZSYTRS_AA', infot, nout, lerr, ok )
584 CALL zsytrs_aa(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
585 CALL chkxer(
'ZSYTRS_AA', infot, nout, lerr, ok )
587 CALL zsytrs_aa(
'U', 2, 1, a, 1, ip, b, 2, w, 1, info )
588 CALL chkxer(
'ZSYTRS_AA', infot, nout, lerr, ok )
590 CALL zsytrs_aa(
'U', 2, 1, a, 2, ip, b, 1, w, 1, info )
591 CALL chkxer(
'ZSYTRS_AA', infot, nout, lerr, ok )
593 ELSE IF( lsamen( 2, c2,
'S2' ) )
THEN
600 srnamt =
'ZSYTRF_AA_2STAGE'
602 CALL zsytrf_aa_2stage(
'/', 0, a, 1, a, 1, ip, ip, w, 1,
604 CALL chkxer(
'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
606 CALL zsytrf_aa_2stage(
'U', -1, a, 1, a, 1, ip, ip, w, 1,
608 CALL chkxer(
'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
610 CALL zsytrf_aa_2stage(
'U', 2, a, 1, a, 2, ip, ip, w, 1,
612 CALL chkxer(
'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
614 CALL zsytrf_aa_2stage(
'U', 2, a, 2, a, 1, ip, ip, w, 1,
616 CALL chkxer(
'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
618 CALL zsytrf_aa_2stage(
'U', 2, a, 2, a, 8, ip, ip, w, 0,
620 CALL chkxer(
'ZSYTRF_AA_2STAGE', infot, nout, lerr, ok )
624 srnamt =
'ZSYTRS_AA_2STAGE'
628 CALL chkxer(
'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
632 CALL chkxer(
'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
636 CALL chkxer(
'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
640 CALL chkxer(
'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
644 CALL chkxer(
'ZSYTRS_AA_2STAGE', infot, nout, lerr, ok )
648 CALL chkxer(
'ZSYTRS_AA_STAGE', infot, nout, lerr, ok )
654 CALL alaesm( path, ok, nout )