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,
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
286 CALL ZSYTRF_ROOK( '/
', 0, A, 1, IP, W, 1, INFO )
287 CALL CHKXER( 'zsytrf_rook', INFOT, NOUT, LERR, OK )
289 CALL ZSYTRF_ROOK( 'u', -1, a, 1, ip, w, 1, info )
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 )
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
602 CALL ZSYTRF_AA_2STAGE( '/
', 0, A, 1, A, 1, IP, IP, W, 1,
606 CALL ZSYTRF_AA_2STAGE( 'u
', -1, A, 1, A, 1, IP, IP, W, 1,
610 CALL ZSYTRF_AA_2STAGE( 'u
', 2, A, 1, A, 2, IP, IP, W, 1,
614 CALL ZSYTRF_AA_2STAGE( 'u
', 2, A, 2, A, 1, IP, IP, W, 1,
618 CALL ZSYTRF_AA_2STAGE( 'u
', 2, A, 2, A, 8, IP, IP, W, 0,
626 CALL ZSYTRS_AA_2STAGE( '/
', 0, 0, A, 1, A, 1, IP, IP,
630 CALL ZSYTRS_AA_2STAGE( 'u
', -1, 0, A, 1, A, 1, IP, IP,
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 )