77 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
78 REAL ANRM, RCOND, BERR
82 REAL R( NMAX ), R1( NMAX ), R2( NMAX ),
83 $ S( NMAX ), ERR_BNDS_N( NMAX, 3 ),
84 $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 )
85 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
86 $ E( NMAX), W( 2*NMAX ), X( NMAX )
105 COMMON / infoc / infot, nout, ok, lerr
106 COMMON / srnamc / srnamt
109 INTRINSIC cmplx, real
114 WRITE( nout, fmt = * )
121 a( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
122 af( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
135 IF( lsamen( 2, c2,
'SY' ) )
THEN
145 CALL csytrf(
'/', 0, a, 1, ip, w, 1, info )
146 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
148 CALL csytrf(
'U', -1, a, 1, ip, w, 1, info )
149 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
151 CALL csytrf(
'U', 2, a, 1, ip, w, 4, info )
152 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
154 CALL csytrf(
'U', 0, a, 1, ip, w, 0, info )
155 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
157 CALL csytrf(
'U', 0, a, 1, ip, w, -2, info )
158 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
164 CALL csytf2(
'/', 0, a, 1, ip, info )
165 CALL chkxer(
'CSYTF2', infot, nout, lerr, ok )
167 CALL csytf2(
'U', -1, a, 1, ip, info )
168 CALL chkxer(
'CSYTF2', infot, nout, lerr, ok )
170 CALL csytf2(
'U', 2, a, 1, ip, info )
171 CALL chkxer(
'CSYTF2', infot, nout, lerr, ok )
177 CALL csytri(
'/', 0, a, 1, ip, w, info )
178 CALL chkxer(
'CSYTRI', infot, nout, lerr, ok )
180 CALL csytri(
'U', -1, a, 1, ip, w, info )
181 CALL chkxer(
'CSYTRI', infot, nout, lerr, ok )
183 CALL csytri(
'U', 2, a, 1, ip, w, info )
184 CALL chkxer(
'CSYTRI', infot, nout, lerr, ok )
190 CALL csytri2(
'/', 0, a, 1, ip, w, 1, info )
191 CALL chkxer(
'CSYTRI2', infot, nout, lerr, ok )
193 CALL csytri2(
'U', -1, a, 1, ip, w, 1, info )
194 CALL chkxer(
'CSYTRI2', infot, nout, lerr, ok )
196 CALL csytri2(
'U', 2, a, 1, ip, w, 1, info )
197 CALL chkxer(
'CSYTRI2', infot, nout, lerr, ok )
203 CALL csytri2x(
'/', 0, a, 1, ip, w, 1, info )
204 CALL chkxer(
'CSYTRI2X', infot, nout, lerr, ok )
206 CALL csytri2x(
'U', -1, a, 1, ip, w, 1, info )
207 CALL chkxer(
'CSYTRI2X', infot, nout, lerr, ok )
209 CALL csytri2x(
'U', 2, a, 1, ip, w, 1, info )
210 CALL chkxer(
'CSYTRI2X', infot, nout, lerr, ok )
216 CALL csytrs(
'/', 0, 0, a, 1, ip, b, 1, info )
217 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
219 CALL csytrs(
'U', -1, 0, a, 1, ip, b, 1, info )
220 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
222 CALL csytrs(
'U', 0, -1, a, 1, ip, b, 1, info )
223 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
225 CALL csytrs(
'U', 2, 1, a, 1, ip, b, 2, info )
226 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
228 CALL csytrs(
'U', 2, 1, a, 2, ip, b, 1, info )
229 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
235 CALL csyrfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
237 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
239 CALL csyrfs(
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
241 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
243 CALL csyrfs(
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
245 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
247 CALL csyrfs(
'U', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
249 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
251 CALL csyrfs(
'U', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
253 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
255 CALL csyrfs(
'U', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
257 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
259 CALL csyrfs(
'U', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
261 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
269 CALL csyrfsx(
'/', eq, 0, 0, a, 1, af, 1, ip, s, b, 1, x, 1,
270 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
271 $ params, w, r, info )
272 CALL chkxer(
'CSYRFSX', infot, nout, lerr, ok )
274 CALL csyrfsx(
'U', eq, -1, 0, a, 1, af, 1, ip, s, b, 1, x, 1,
275 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
276 $ params, w, r, info )
277 CALL chkxer(
'CSYRFSX', infot, nout, lerr, ok )
280 CALL csyrfsx(
'U', eq, -1, 0, a, 1, af, 1, ip, s, b, 1, x, 1,
281 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
282 $ params, w, r, info )
283 CALL chkxer(
'CSYRFSX', infot, nout, lerr, ok )
285 CALL csyrfsx(
'U', eq, 0, -1, a, 1, af, 1, ip, s, b, 1, x, 1,
286 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
287 $ params, w, r, info )
288 CALL chkxer(
'CSYRFSX', infot, nout, lerr, ok )
290 CALL csyrfsx(
'U', eq, 2, 1, a, 1, af, 2, ip, s, b, 2, x, 2,
291 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
292 $ params, w, r, info )
293 CALL chkxer(
'CSYRFSX', infot, nout, lerr, ok )
295 CALL csyrfsx(
'U', eq, 2, 1, a, 2, af, 1, ip, s, b, 2, x, 2,
296 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
297 $ params, w, r, info )
298 CALL chkxer(
'CSYRFSX', infot, nout, lerr, ok )
300 CALL csyrfsx(
'U', eq, 2, 1, a, 2, af, 2, ip, s, b, 1, x, 2,
301 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
302 $ params, w, r, info )
303 CALL chkxer(
'CSYRFSX', infot, nout, lerr, ok )
305 CALL csyrfsx(
'U', eq, 2, 1, a, 2, af, 2, ip, s, b, 2, x, 1,
306 $ rcond, berr, n_err_bnds, err_bnds_n, err_bnds_c, nparams,
307 $ params, w, r, info )
308 CALL chkxer(
'CSYRFSX', infot, nout, lerr, ok )
314 CALL csycon(
'/', 0, a, 1, ip, anrm, rcond, w, info )
315 CALL chkxer(
'CSYCON', infot, nout, lerr, ok )
317 CALL csycon(
'U', -1, a, 1, ip, anrm, rcond, w, info )
318 CALL chkxer(
'CSYCON', infot, nout, lerr, ok )
320 CALL csycon(
'U', 2, a, 1, ip, anrm, rcond, w, info )
321 CALL chkxer(
'CSYCON', infot, nout, lerr, ok )
323 CALL csycon(
'U', 1, a, 1, ip, -anrm, rcond, w, info )
324 CALL chkxer(
'CSYCON', infot, nout, lerr, ok )
326 ELSE IF( lsamen( 2, c2,
'SR' ) )
THEN
334 srnamt =
'CSYTRF_ROOK'
337 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
340 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
343 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
346 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
349 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
353 srnamt =
'CSYTF2_ROOK'
356 CALL chkxer(
'CSYTF2_ROOK', infot, nout, lerr, ok )
359 CALL chkxer(
'CSYTF2_ROOK', infot, nout, lerr, ok )
362 CALL chkxer(
'CSYTF2_ROOK', infot, nout, lerr, ok )
366 srnamt =
'CSYTRI_ROOK'
369 CALL chkxer(
'CSYTRI_ROOK', infot, nout, lerr, ok )
372 CALL chkxer(
'CSYTRI_ROOK', infot, nout, lerr, ok )
375 CALL chkxer(
'CSYTRI_ROOK', infot, nout, lerr, ok )
379 srnamt =
'CSYTRS_ROOK'
381 CALL csytrs_rook(
'/', 0, 0, a, 1, ip, b, 1, info )
382 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
384 CALL csytrs_rook(
'U', -1, 0, a, 1, ip, b, 1, info )
385 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
387 CALL csytrs_rook(
'U', 0, -1, a, 1, ip, b, 1, info )
388 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
390 CALL csytrs_rook(
'U', 2, 1, a, 1, ip, b, 2, info )
391 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
393 CALL csytrs_rook(
'U', 2, 1, a, 2, ip, b, 1, info )
394 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
398 srnamt =
'CSYCON_ROOK'
400 CALL csycon_rook(
'/', 0, a, 1, ip, anrm, rcond, w, info )
401 CALL chkxer(
'CSYCON_ROOK', infot, nout, lerr, ok )
403 CALL csycon_rook(
'U', -1, a, 1, ip, anrm, rcond, w, info )
404 CALL chkxer(
'CSYCON_ROOK', infot, nout, lerr, ok )
406 CALL csycon_rook(
'U', 2, a, 1, ip, anrm, rcond, w, info )
407 CALL chkxer(
'CSYCON_ROOK', infot, nout, lerr, ok )
409 CALL csycon_rook(
'U', 1, a, 1, ip, -anrm, rcond, w, info )
410 CALL chkxer(
'CSYCON_ROOK', infot, nout, lerr, ok )
412 ELSE IF( lsamen( 2, c2,
'SK' ) )
THEN
426 CALL csytrf_rk(
'/', 0, a, 1, e, ip, w, 1, info )
427 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
429 CALL csytrf_rk(
'U', -1, a, 1, e, ip, w, 1, info )
430 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
432 CALL csytrf_rk(
'U', 2, a, 1, e, ip, w, 4, info )
433 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
435 CALL csytrf_rk(
'U', 0, a, 1, e, ip, w, 0, info )
436 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
438 CALL csytrf_rk(
'U', 0, a, 1, e, ip, w, -2, info )
439 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
445 CALL csytf2_rk(
'/', 0, a, 1, e, ip, info )
446 CALL chkxer(
'CSYTF2_RK', infot, nout, lerr, ok )
448 CALL csytf2_rk(
'U', -1, a, 1, e, ip, info )
449 CALL chkxer(
'CSYTF2_RK', infot, nout, lerr, ok )
451 CALL csytf2_rk(
'U', 2, a, 1, e, ip, info )
452 CALL chkxer(
'CSYTF2_RK', infot, nout, lerr, ok )
458 CALL csytri_3(
'/', 0, a, 1, e, ip, w, 1, info )
459 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
461 CALL csytri_3(
'U', -1, a, 1, e, ip, w, 1, info )
462 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
464 CALL csytri_3(
'U', 2, a, 1, e, ip, w, 1, info )
465 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
467 CALL csytri_3(
'U', 0, a, 1, e, ip, w, 0, info )
468 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
470 CALL csytri_3(
'U', 0, a, 1, e, ip, w, -2, info )
471 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
477 CALL csytri_3x(
'/', 0, a, 1, e, ip, w, 1, info )
478 CALL chkxer(
'CSYTRI_3X', infot, nout, lerr, ok )
480 CALL csytri_3x(
'U', -1, a, 1, e, ip, w, 1, info )
481 CALL chkxer(
'CSYTRI_3X', infot, nout, lerr, ok )
483 CALL csytri_3x(
'U', 2, a, 1, e, ip, w, 1, info )
484 CALL chkxer(
'CSYTRI_3X', infot, nout, lerr, ok )
490 CALL csytrs_3(
'/', 0, 0, a, 1, e, ip, b, 1, info )
491 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
493 CALL csytrs_3(
'U', -1, 0, a, 1, e, ip, b, 1, info )
494 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
496 CALL csytrs_3(
'U', 0, -1, a, 1, e, ip, b, 1, info )
497 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
499 CALL csytrs_3(
'U', 2, 1, a, 1, e, ip, b, 2, info )
500 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
502 CALL csytrs_3(
'U', 2, 1, a, 2, e, ip, b, 1, info )
503 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
509 CALL csycon_3(
'/', 0, a, 1, e, ip, anrm, rcond, w, info )
510 CALL chkxer(
'CSYCON_3', infot, nout, lerr, ok )
512 CALL csycon_3(
'U', -1, a, 1, e, ip, anrm, rcond, w, info )
513 CALL chkxer(
'CSYCON_3', infot, nout, lerr, ok )
515 CALL csycon_3(
'U', 2, a, 1, e, ip, anrm, rcond, w, info )
516 CALL chkxer(
'CSYCON_3', infot, nout, lerr, ok )
518 CALL csycon_3(
'U', 1, a, 1, e, ip, -1.0e0, rcond, w, info)
519 CALL chkxer(
'CSYCON_3', infot, nout, lerr, ok )
521 ELSE IF( lsamen( 2, c2,
'SP' ) )
THEN
531 CALL csptrf(
'/', 0, a, ip, info )
532 CALL chkxer(
'CSPTRF', infot, nout, lerr, ok )
534 CALL csptrf(
'U', -1, a, ip, info )
535 CALL chkxer(
'CSPTRF', infot, nout, lerr, ok )
541 CALL csptri(
'/', 0, a, ip, w, info )
542 CALL chkxer(
'CSPTRI', infot, nout, lerr, ok )
544 CALL csptri(
'U', -1, a, ip, w, info )
545 CALL chkxer(
'CSPTRI', infot, nout, lerr, ok )
551 CALL csptrs(
'/', 0, 0, a, ip, b, 1, info )
552 CALL chkxer(
'CSPTRS', infot, nout, lerr, ok )
554 CALL csptrs(
'U', -1, 0, a, ip, b, 1, info )
555 CALL chkxer(
'CSPTRS', infot, nout, lerr, ok )
557 CALL csptrs(
'U', 0, -1, a, ip, b, 1, info )
558 CALL chkxer(
'CSPTRS', infot, nout, lerr, ok )
560 CALL csptrs(
'U', 2, 1, a, ip, b, 1, info )
561 CALL chkxer(
'CSPTRS', infot, nout, lerr, ok )
567 CALL csprfs(
'/', 0, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
569 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
571 CALL csprfs(
'U', -1, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
573 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
575 CALL csprfs(
'U', 0, -1, a, af, ip, b, 1, x, 1, r1, r2, w, r,
577 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
579 CALL csprfs(
'U', 2, 1, a, af, ip, b, 1, x, 2, r1, r2, w, r,
581 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
583 CALL csprfs(
'U', 2, 1, a, af, ip, b, 2, x, 1, r1, r2, w, r,
585 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
591 CALL cspcon(
'/', 0, a, ip, anrm, rcond, w, info )
592 CALL chkxer(
'CSPCON', infot, nout, lerr, ok )
594 CALL cspcon(
'U', -1, a, ip, anrm, rcond, w, info )
595 CALL chkxer(
'CSPCON', infot, nout, lerr, ok )
597 CALL cspcon(
'U', 1, a, ip, -anrm, rcond, w, info )
598 CALL chkxer(
'CSPCON', infot, nout, lerr, ok )
603 CALL alaesm( path, ok, nout )
subroutine alaesm(path, ok, nout)
ALAESM
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine cerrsy(path, nunit)
CERRSY
subroutine csycon_3(uplo, n, a, lda, e, ipiv, anorm, rcond, work, info)
CSYCON_3
subroutine csycon_rook(uplo, n, a, lda, ipiv, anorm, rcond, work, info)
CSYCON_ROOK
subroutine csycon(uplo, n, a, lda, ipiv, anorm, rcond, work, info)
CSYCON
subroutine csyrfs(uplo, n, nrhs, a, lda, af, ldaf, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info)
CSYRFS
subroutine csyrfsx(uplo, equed, n, nrhs, a, lda, af, ldaf, ipiv, s, b, ldb, x, ldx, rcond, berr, n_err_bnds, err_bnds_norm, err_bnds_comp, nparams, params, work, rwork, info)
CSYRFSX
subroutine csytf2_rk(uplo, n, a, lda, e, ipiv, info)
CSYTF2_RK computes the factorization of a complex symmetric indefinite matrix using the bounded Bunch...
subroutine csytf2_rook(uplo, n, a, lda, ipiv, info)
CSYTF2_ROOK computes the factorization of a complex symmetric indefinite matrix using the bounded Bun...
subroutine csytf2(uplo, n, a, lda, ipiv, info)
CSYTF2 computes the factorization of a real symmetric indefinite matrix, using the diagonal pivoting ...
subroutine csytrf_rk(uplo, n, a, lda, e, ipiv, work, lwork, info)
CSYTRF_RK computes the factorization of a complex symmetric indefinite matrix using the bounded Bunch...
subroutine csytrf_rook(uplo, n, a, lda, ipiv, work, lwork, info)
CSYTRF_ROOK
subroutine csytrf(uplo, n, a, lda, ipiv, work, lwork, info)
CSYTRF
subroutine csytri2(uplo, n, a, lda, ipiv, work, lwork, info)
CSYTRI2
subroutine csytri2x(uplo, n, a, lda, ipiv, work, nb, info)
CSYTRI2X
subroutine csytri_3(uplo, n, a, lda, e, ipiv, work, lwork, info)
CSYTRI_3
subroutine csytri_3x(uplo, n, a, lda, e, ipiv, work, nb, info)
CSYTRI_3X
subroutine csytri_rook(uplo, n, a, lda, ipiv, work, info)
CSYTRI_ROOK
subroutine csytri(uplo, n, a, lda, ipiv, work, info)
CSYTRI
subroutine csytrs_3(uplo, n, nrhs, a, lda, e, ipiv, b, ldb, info)
CSYTRS_3
subroutine csytrs_rook(uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
CSYTRS_ROOK
subroutine csytrs(uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
CSYTRS
subroutine cspcon(uplo, n, ap, ipiv, anorm, rcond, work, info)
CSPCON
subroutine csprfs(uplo, n, nrhs, ap, afp, ipiv, b, ldb, x, ldx, ferr, berr, work, rwork, info)
CSPRFS
subroutine csptrf(uplo, n, ap, ipiv, info)
CSPTRF
subroutine csptri(uplo, n, ap, ipiv, work, info)
CSPTRI
subroutine csptrs(uplo, n, nrhs, ap, ipiv, b, ldb, info)
CSPTRS