81 REAL R( NMAX ), R1( NMAX ), R2( NMAX )
82 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
83 $ E( NMAX), W( 2*NMAX ), X( NMAX )
103 COMMON / infoc / infot, nout, ok, lerr
104 COMMON / srnamc / srnamt
107 INTRINSIC cmplx, real
112 WRITE( nout, fmt = * )
119 a( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
120 af( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
133 IF(
lsamen( 2, c2,
'SY' ) )
THEN
143 CALL csytrf(
'/', 0, a, 1, ip, w, 1, info )
144 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
146 CALL csytrf(
'U', -1, a, 1, ip, w, 1, info )
147 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
149 CALL csytrf(
'U', 2, a, 1, ip, w, 4, info )
150 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
152 CALL csytrf(
'U', 0, a, 1, ip, w, 0, info )
153 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
155 CALL csytrf(
'U', 0, a, 1, ip, w, -2, info )
156 CALL chkxer(
'CSYTRF', infot, nout, lerr, ok )
162 CALL csytf2(
'/', 0, a, 1, ip, info )
163 CALL chkxer(
'CSYTF2', infot, nout, lerr, ok )
165 CALL csytf2(
'U', -1, a, 1, ip, info )
166 CALL chkxer(
'CSYTF2', infot, nout, lerr, ok )
168 CALL csytf2(
'U', 2, a, 1, ip, info )
169 CALL chkxer(
'CSYTF2', infot, nout, lerr, ok )
175 CALL csytri(
'/', 0, a, 1, ip, w, info )
176 CALL chkxer(
'CSYTRI', infot, nout, lerr, ok )
178 CALL csytri(
'U', -1, a, 1, ip, w, info )
179 CALL chkxer(
'CSYTRI', infot, nout, lerr, ok )
181 CALL csytri(
'U', 2, a, 1, ip, w, info )
182 CALL chkxer(
'CSYTRI', infot, nout, lerr, ok )
188 CALL csytri2(
'/', 0, a, 1, ip, w, 1, info )
189 CALL chkxer(
'CSYTRI2', infot, nout, lerr, ok )
191 CALL csytri2(
'U', -1, a, 1, ip, w, 1, info )
192 CALL chkxer(
'CSYTRI2', infot, nout, lerr, ok )
194 CALL csytri2(
'U', 2, a, 1, ip, w, 1, info )
195 CALL chkxer(
'CSYTRI2', infot, nout, lerr, ok )
201 CALL csytri2x(
'/', 0, a, 1, ip, w, 1, info )
202 CALL chkxer(
'CSYTRI2X', infot, nout, lerr, ok )
204 CALL csytri2x(
'U', -1, a, 1, ip, w, 1, info )
205 CALL chkxer(
'CSYTRI2X', infot, nout, lerr, ok )
207 CALL csytri2x(
'U', 2, a, 1, ip, w, 1, info )
208 CALL chkxer(
'CSYTRI2X', infot, nout, lerr, ok )
214 CALL csytrs(
'/', 0, 0, a, 1, ip, b, 1, info )
215 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
217 CALL csytrs(
'U', -1, 0, a, 1, ip, b, 1, info )
218 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
220 CALL csytrs(
'U', 0, -1, a, 1, ip, b, 1, info )
221 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
223 CALL csytrs(
'U', 2, 1, a, 1, ip, b, 2, info )
224 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
226 CALL csytrs(
'U', 2, 1, a, 2, ip, b, 1, info )
227 CALL chkxer(
'CSYTRS', infot, nout, lerr, ok )
233 CALL csyrfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
235 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
237 CALL csyrfs(
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
239 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
241 CALL csyrfs(
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
243 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
245 CALL csyrfs(
'U', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
247 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
249 CALL csyrfs(
'U', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
251 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
253 CALL csyrfs(
'U', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
255 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
257 CALL csyrfs(
'U', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
259 CALL chkxer(
'CSYRFS', infot, nout, lerr, ok )
265 CALL csycon(
'/', 0, a, 1, ip, anrm, rcond, w, info )
266 CALL chkxer(
'CSYCON', infot, nout, lerr, ok )
268 CALL csycon(
'U', -1, a, 1, ip, anrm, rcond, w, info )
269 CALL chkxer(
'CSYCON', infot, nout, lerr, ok )
271 CALL csycon(
'U', 2, a, 1, ip, anrm, rcond, w, info )
272 CALL chkxer(
'CSYCON', infot, nout, lerr, ok )
274 CALL csycon(
'U', 1, a, 1, ip, -anrm, rcond, w, info )
275 CALL chkxer(
'CSYCON', infot, nout, lerr, ok )
277 ELSE IF(
lsamen( 2, c2,
'SR' ) )
THEN
285 srnamt =
'CSYTRF_ROOK'
288 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
291 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
294 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
297 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
300 CALL chkxer(
'CSYTRF_ROOK', infot, nout, lerr, ok )
304 srnamt =
'CSYTF2_ROOK'
307 CALL chkxer(
'CSYTF2_ROOK', infot, nout, lerr, ok )
310 CALL chkxer(
'CSYTF2_ROOK', infot, nout, lerr, ok )
313 CALL chkxer(
'CSYTF2_ROOK', infot, nout, lerr, ok )
317 srnamt =
'CSYTRI_ROOK'
320 CALL chkxer(
'CSYTRI_ROOK', infot, nout, lerr, ok )
323 CALL chkxer(
'CSYTRI_ROOK', infot, nout, lerr, ok )
326 CALL chkxer(
'CSYTRI_ROOK', infot, nout, lerr, ok )
330 srnamt =
'CSYTRS_ROOK'
332 CALL csytrs_rook(
'/', 0, 0, a, 1, ip, b, 1, info )
333 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
335 CALL csytrs_rook(
'U', -1, 0, a, 1, ip, b, 1, info )
336 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
338 CALL csytrs_rook(
'U', 0, -1, a, 1, ip, b, 1, info )
339 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
341 CALL csytrs_rook(
'U', 2, 1, a, 1, ip, b, 2, info )
342 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
344 CALL csytrs_rook(
'U', 2, 1, a, 2, ip, b, 1, info )
345 CALL chkxer(
'CSYTRS_ROOK', infot, nout, lerr, ok )
349 srnamt =
'CSYCON_ROOK'
351 CALL csycon_rook(
'/', 0, a, 1, ip, anrm, rcond, w, info )
352 CALL chkxer(
'CSYCON_ROOK', infot, nout, lerr, ok )
354 CALL csycon_rook(
'U', -1, a, 1, ip, anrm, rcond, w, info )
355 CALL chkxer(
'CSYCON_ROOK', infot, nout, lerr, ok )
357 CALL csycon_rook(
'U', 2, a, 1, ip, anrm, rcond, w, info )
358 CALL chkxer(
'CSYCON_ROOK', infot, nout, lerr, ok )
360 CALL csycon_rook(
'U', 1, a, 1, ip, -anrm, rcond, w, info )
361 CALL chkxer(
'CSYCON_ROOK', infot, nout, lerr, ok )
363 ELSE IF(
lsamen( 2, c2,
'SK' ) )
THEN
377 CALL csytrf_rk(
'/', 0, a, 1, e, ip, w, 1, info )
378 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
380 CALL csytrf_rk(
'U', -1, a, 1, e, ip, w, 1, info )
381 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
383 CALL csytrf_rk(
'U', 2, a, 1, e, ip, w, 4, info )
384 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
386 CALL csytrf_rk(
'U', 0, a, 1, e, ip, w, 0, info )
387 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
389 CALL csytrf_rk(
'U', 0, a, 1, e, ip, w, -2, info )
390 CALL chkxer(
'CSYTRF_RK', infot, nout, lerr, ok )
396 CALL csytf2_rk(
'/', 0, a, 1, e, ip, info )
397 CALL chkxer(
'CSYTF2_RK', infot, nout, lerr, ok )
399 CALL csytf2_rk(
'U', -1, a, 1, e, ip, info )
400 CALL chkxer(
'CSYTF2_RK', infot, nout, lerr, ok )
402 CALL csytf2_rk(
'U', 2, a, 1, e, ip, info )
403 CALL chkxer(
'CSYTF2_RK', infot, nout, lerr, ok )
409 CALL csytri_3(
'/', 0, a, 1, e, ip, w, 1, info )
410 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
412 CALL csytri_3(
'U', -1, a, 1, e, ip, w, 1, info )
413 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
415 CALL csytri_3(
'U', 2, a, 1, e, ip, w, 1, info )
416 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
418 CALL csytri_3(
'U', 0, a, 1, e, ip, w, 0, info )
419 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
421 CALL csytri_3(
'U', 0, a, 1, e, ip, w, -2, info )
422 CALL chkxer(
'CSYTRI_3', infot, nout, lerr, ok )
428 CALL csytri_3x(
'/', 0, a, 1, e, ip, w, 1, info )
429 CALL chkxer(
'CSYTRI_3X', infot, nout, lerr, ok )
431 CALL csytri_3x(
'U', -1, a, 1, e, ip, w, 1, info )
432 CALL chkxer(
'CSYTRI_3X', infot, nout, lerr, ok )
434 CALL csytri_3x(
'U', 2, a, 1, e, ip, w, 1, info )
435 CALL chkxer(
'CSYTRI_3X', infot, nout, lerr, ok )
441 CALL csytrs_3(
'/', 0, 0, a, 1, e, ip, b, 1, info )
442 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
444 CALL csytrs_3(
'U', -1, 0, a, 1, e, ip, b, 1, info )
445 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
447 CALL csytrs_3(
'U', 0, -1, a, 1, e, ip, b, 1, info )
448 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
450 CALL csytrs_3(
'U', 2, 1, a, 1, e, ip, b, 2, info )
451 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
453 CALL csytrs_3(
'U', 2, 1, a, 2, e, ip, b, 1, info )
454 CALL chkxer(
'CSYTRS_3', infot, nout, lerr, ok )
460 CALL csycon_3(
'/', 0, a, 1, e, ip, anrm, rcond, w, info )
461 CALL chkxer(
'CSYCON_3', infot, nout, lerr, ok )
463 CALL csycon_3(
'U', -1, a, 1, e, ip, anrm, rcond, w, info )
464 CALL chkxer(
'CSYCON_3', infot, nout, lerr, ok )
466 CALL csycon_3(
'U', 2, a, 1, e, ip, anrm, rcond, w, info )
467 CALL chkxer(
'CSYCON_3', infot, nout, lerr, ok )
469 CALL csycon_3(
'U', 1, a, 1, e, ip, -1.0e0, rcond, w, info)
470 CALL chkxer(
'CSYCON_3', infot, nout, lerr, ok )
472 ELSE IF(
lsamen( 2, c2,
'SP' ) )
THEN
482 CALL csptrf(
'/', 0, a, ip, info )
483 CALL chkxer(
'CSPTRF', infot, nout, lerr, ok )
485 CALL csptrf(
'U', -1, a, ip, info )
486 CALL chkxer(
'CSPTRF', infot, nout, lerr, ok )
492 CALL csptri(
'/', 0, a, ip, w, info )
493 CALL chkxer(
'CSPTRI', infot, nout, lerr, ok )
495 CALL csptri(
'U', -1, a, ip, w, info )
496 CALL chkxer(
'CSPTRI', infot, nout, lerr, ok )
502 CALL csptrs(
'/', 0, 0, a, ip, b, 1, info )
503 CALL chkxer(
'CSPTRS', infot, nout, lerr, ok )
505 CALL csptrs(
'U', -1, 0, a, ip, b, 1, info )
506 CALL chkxer(
'CSPTRS', infot, nout, lerr, ok )
508 CALL csptrs(
'U', 0, -1, a, ip, b, 1, info )
509 CALL chkxer(
'CSPTRS', infot, nout, lerr, ok )
511 CALL csptrs(
'U', 2, 1, a, ip, b, 1, info )
512 CALL chkxer(
'CSPTRS', infot, nout, lerr, ok )
518 CALL csprfs(
'/', 0, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
520 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
522 CALL csprfs(
'U', -1, 0, a, af, ip, b, 1, x, 1, r1, r2, w, r,
524 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
526 CALL csprfs(
'U', 0, -1, a, af, ip, b, 1, x, 1, r1, r2, w, r,
528 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
530 CALL csprfs(
'U', 2, 1, a, af, ip, b, 1, x, 2, r1, r2, w, r,
532 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
534 CALL csprfs(
'U', 2, 1, a, af, ip, b, 2, x, 1, r1, r2, w, r,
536 CALL chkxer(
'CSPRFS', infot, nout, lerr, ok )
542 CALL cspcon(
'/', 0, a, ip, anrm, rcond, w, info )
543 CALL chkxer(
'CSPCON', infot, nout, lerr, ok )
545 CALL cspcon(
'U', -1, a, ip, anrm, rcond, w, info )
546 CALL chkxer(
'CSPCON', infot, nout, lerr, ok )
548 CALL cspcon(
'U', 1, a, ip, -anrm, rcond, w, info )
549 CALL chkxer(
'CSPCON', infot, nout, lerr, ok )
551 ELSE IF(
lsamen( 2, c2,
'SA' ) )
THEN
560 CALL csytrf_aa(
'/', 0, a, 1, ip, w, 1, info )
561 CALL chkxer(
'CSYTRF_AA', infot, nout, lerr, ok )
563 CALL csytrf_aa(
'U', -1, a, 1, ip, w, 1, info )
564 CALL chkxer(
'CSYTRF_AA', infot, nout, lerr, ok )
566 CALL csytrf_aa(
'U', 2, a, 1, ip, w, 4, info )
567 CALL chkxer(
'CSYTRF_AA', infot, nout, lerr, ok )
569 CALL csytrf_aa(
'U', 0, a, 1, ip, w, 0, info )
570 CALL chkxer(
'CSYTRF_AA', infot, nout, lerr, ok )
572 CALL csytrf_aa(
'U', 0, a, 1, ip, w, -2, info )
573 CALL chkxer(
'CSYTRF_AA', infot, nout, lerr, ok )
579 CALL csytrs_aa(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
580 CALL chkxer(
'CSYTRS_AA', infot, nout, lerr, ok )
582 CALL csytrs_aa(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
583 CALL chkxer(
'CSYTRS_AA', infot, nout, lerr, ok )
585 CALL csytrs_aa(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
586 CALL chkxer(
'CSYTRS_AA', infot, nout, lerr, ok )
588 CALL csytrs_aa(
'U', 2, 1, a, 1, ip, b, 2, w, 1, info )
589 CALL chkxer(
'CSYTRS_AA', infot, nout, lerr, ok )
591 CALL csytrs_aa(
'U', 2, 1, a, 2, ip, b, 1, w, 1, info )
592 CALL chkxer(
'CSYTRS_AA', infot, nout, lerr, ok )
594 CALL csytrs_aa(
'U', 0, 1, a, 1, ip, b, 1, w, 0, info )
595 CALL chkxer(
'CSYTRS_AA', infot, nout, lerr, ok )
597 CALL csytrs_aa(
'U', 0, 1, a, 1, ip, b, 1, w, -2, info )
598 CALL chkxer(
'CSYTRS_AA', infot, nout, lerr, ok )
600 ELSE IF(
lsamen( 2, c2,
'S2' ) )
THEN
607 srnamt =
'CSYTRF_AA_2STAGE'
609 CALL csytrf_aa_2stage(
'/', 0, a, 1, a, 1, ip, ip, w, 1,
611 CALL chkxer(
'CSYTRF_AA_2STAGE', infot, nout, lerr, ok )
613 CALL csytrf_aa_2stage(
'U', -1, a, 1, a, 1, ip, ip, w, 1,
615 CALL chkxer(
'CSYTRF_AA_2STAGE', infot, nout, lerr, ok )
617 CALL csytrf_aa_2stage(
'U', 2, a, 1, a, 2, ip, ip, w, 1,
619 CALL chkxer(
'CSYTRF_AA_2STAGE', infot, nout, lerr, ok )
621 CALL csytrf_aa_2stage(
'U', 2, a, 2, a, 1, ip, ip, w, 1,
623 CALL chkxer(
'CSYTRF_AA_2STAGE', infot, nout, lerr, ok )
625 CALL csytrf_aa_2stage(
'U', 2, a, 2, a, 8, ip, ip, w, 0,
627 CALL chkxer(
'CSYTRF_AA_2STAGE', infot, nout, lerr, ok )
631 srnamt =
'CSYTRS_AA_2STAGE'
635 CALL chkxer(
'CSYTRS_AA_2STAGE', infot, nout, lerr, ok )
639 CALL chkxer(
'CSYTRS_AA_2STAGE', infot, nout, lerr, ok )
643 CALL chkxer(
'CSYTRS_AA_2STAGE', infot, nout, lerr, ok )
647 CALL chkxer(
'CSYTRS_AA_2STAGE', infot, nout, lerr, ok )
651 CALL chkxer(
'CSYTRS_AA_2STAGE', infot, nout, lerr, ok )
655 CALL chkxer(
'CSYTRS_AA_STAGE', infot, nout, lerr, ok )
661 CALL alaesm( path, ok, nout )