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 )