74 DOUBLE PRECISION ANRM, RCOND
77 INTEGER IP( NMAX ), IW( NMAX )
78 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
79 $ E( NMAX ), R1( NMAX ), R2( NMAX ), W( 3*NMAX ),
101 COMMON / infoc / infot, nout, ok, lerr
102 COMMON / srnamc / srnamt
110 WRITE( nout, fmt = * )
117 a( i, j ) = 1.d0 / dble( i+j )
118 af( i, j ) = 1.d0 / dble( i+j )
133 IF( lsamen( 2, c2,
'SY' ) )
THEN
143 CALL dsytrf(
'/', 0, a, 1, ip, w, 1, info )
144 CALL chkxer(
'DSYTRF', infot, nout, lerr, ok )
146 CALL dsytrf(
'U', -1, a, 1, ip, w, 1, info )
147 CALL chkxer(
'DSYTRF', infot, nout, lerr, ok )
149 CALL dsytrf(
'U', 2, a, 1, ip, w, 4, info )
150 CALL chkxer(
'DSYTRF', infot, nout, lerr, ok )
152 CALL dsytrf(
'U', 0, a, 1, ip, w, 0, info )
153 CALL chkxer(
'DSYTRF', infot, nout, lerr, ok )
155 CALL dsytrf(
'U', 0, a, 1, ip, w, -2, info )
156 CALL chkxer(
'DSYTRF', infot, nout, lerr, ok )
162 CALL dsytf2(
'/', 0, a, 1, ip, info )
163 CALL chkxer(
'DSYTF2', infot, nout, lerr, ok )
165 CALL dsytf2(
'U', -1, a, 1, ip, info )
166 CALL chkxer(
'DSYTF2', infot, nout, lerr, ok )
168 CALL dsytf2(
'U', 2, a, 1, ip, info )
169 CALL chkxer(
'DSYTF2', infot, nout, lerr, ok )
175 CALL dsytri(
'/', 0, a, 1, ip, w, info )
176 CALL chkxer(
'DSYTRI', infot, nout, lerr, ok )
178 CALL dsytri(
'U', -1, a, 1, ip, w, info )
179 CALL chkxer(
'DSYTRI', infot, nout, lerr, ok )
181 CALL dsytri(
'U', 2, a, 1, ip, w, info )
182 CALL chkxer(
'DSYTRI', infot, nout, lerr, ok )
188 CALL dsytri2(
'/', 0, a, 1, ip, w, iw(1), info )
189 CALL chkxer(
'DSYTRI2', infot, nout, lerr, ok )
191 CALL dsytri2(
'U', -1, a, 1, ip, w, iw(1), info )
192 CALL chkxer(
'DSYTRI2', infot, nout, lerr, ok )
194 CALL dsytri2(
'U', 2, a, 1, ip, w, iw(1), info )
195 CALL chkxer(
'DSYTRI2', infot, nout, lerr, ok )
201 CALL dsytri2x(
'/', 0, a, 1, ip, w, 1, info )
202 CALL chkxer(
'DSYTRI2X', infot, nout, lerr, ok )
204 CALL dsytri2x(
'U', -1, a, 1, ip, w, 1, info )
205 CALL chkxer(
'DSYTRI2X', infot, nout, lerr, ok )
207 CALL dsytri2x(
'U', 2, a, 1, ip, w, 1, info )
208 CALL chkxer(
'DSYTRI2X', infot, nout, lerr, ok )
214 CALL dsytrs(
'/', 0, 0, a, 1, ip, b, 1, info )
215 CALL chkxer(
'DSYTRS', infot, nout, lerr, ok )
217 CALL dsytrs(
'U', -1, 0, a, 1, ip, b, 1, info )
218 CALL chkxer(
'DSYTRS', infot, nout, lerr, ok )
220 CALL dsytrs(
'U', 0, -1, a, 1, ip, b, 1, info )
221 CALL chkxer(
'DSYTRS', infot, nout, lerr, ok )
223 CALL dsytrs(
'U', 2, 1, a, 1, ip, b, 2, info )
224 CALL chkxer(
'DSYTRS', infot, nout, lerr, ok )
226 CALL dsytrs(
'U', 2, 1, a, 2, ip, b, 1, info )
227 CALL chkxer(
'DSYTRS', infot, nout, lerr, ok )
233 CALL dsyrfs(
'/', 0, 0, a, 1, af, 1, ip, b, 1, x, 1, r1, r2, w,
235 CALL chkxer(
'DSYRFS', infot, nout, lerr, ok )
237 CALL dsyrfs(
'U', -1, 0, a, 1, af, 1, ip, b, 1, x, 1, r1
239 CALL chkxer(
'DSYRFS', infot, nout, lerr, ok )
241 CALL dsyrfs(
'U', 0, -1, a, 1, af, 1, ip, b, 1, x, 1, r1, r2,
243 CALL chkxer(
'DSYRFS', infot, nout, lerr, ok )
245 CALL dsyrfs(
'U', 2, 1, a, 1, af, 2, ip, b, 2, x, 2, r1, r2, w,
247 CALL chkxer(
'DSYRFS', infot, nout, lerr, ok )
249 CALL dsyrfs(
'U', 2, 1, a, 2, af, 1, ip, b, 2, x, 2, r1, r2, w,
251 CALL chkxer(
'DSYRFS', infot, nout, lerr, ok )
253 CALL dsyrfs(
'U', 2, 1, a, 2, af, 2, ip, b, 1, x, 2, r1, r2, w,
255 CALL chkxer(
'DSYRFS', infot, nout, lerr, ok )
257 CALL dsyrfs(
'U', 2, 1, a, 2, af, 2, ip, b, 2, x, 1, r1, r2, w,
259 CALL chkxer(
'DSYRFS', infot, nout, lerr, ok )
265 CALL dsycon(
'/', 0, a, 1, ip, anrm, rcond, w, iw, info )
266 CALL chkxer(
'DSYCON', infot, nout, lerr, ok )
268 CALL dsycon(
'U', -1, a, 1, ip, anrm, rcond, w, iw, info )
269 CALL chkxer(
'DSYCON', infot, nout, lerr, ok )
271 CALL dsycon(
'U', 2, a, 1, ip, anrm, rcond, w, iw, info )
274 CALL dsycon(
'U', 1, a, 1, ip, -1.0d0, rcond, w, iw, info )
275 CALL chkxer(
'DSYCON', infot, nout, lerr, ok )
277 ELSE IF( lsamen( 2, c2,
'SR' ) )
THEN
285 srnamt =
'DSYTRF_ROOK'
288 CALL chkxer(
'DSYTRF_ROOK', infot, nout, lerr, ok )
291 CALL chkxer(
'DSYTRF_ROOK', infot, nout, lerr, ok )
294 CALL chkxer(
'DSYTRF_ROOK', infot, nout, lerr
297 CALL chkxer(
'DSYTRF_ROOK', infot, nout, lerr, ok )
300 CALL chkxer(
'DSYTRF_ROOK', infot, nout, lerr, ok )
304 srnamt =
'DSYTF2_ROOK'
307 CALL chkxer(
'DSYTF2_ROOK', infot, nout, lerr, ok )
310 CALL chkxer(
'DSYTF2_ROOK', infot, nout, lerr, ok )
313 CALL chkxer(
'DSYTF2_ROOK', infot, nout, lerr, ok )
317 srnamt =
'DSYTRI_ROOK'
320 CALL chkxer(
'DSYTRI_ROOK', infot, nout, lerr, ok )
323 CALL chkxer(
'DSYTRI_ROOK', infot, nout, lerr, ok )
326 CALL chkxer(
'DSYTRI_ROOK', infot, nout, lerr, ok )
330 srnamt =
'DSYTRS_ROOK'
332 CALL dsytrs_rook(
'/', 0, 0, a, 1, ip, b, 1, info )
333 CALL chkxer(
'DSYTRS_ROOK', infot, nout, lerr, ok )
335 CALL dsytrs_rook(
'U', -1, 0, a, 1, ip, b, 1, info )
336 CALL chkxer(
'DSYTRS_ROOK', infot, nout, lerr, ok )
338 CALL dsytrs_rook(
'U', 0, -1, a, 1, ip, b, 1, info )
339 CALL chkxer(
'DSYTRS_ROOK', infot, nout, lerr, ok )
341 CALL dsytrs_rook(
'U', 2, 1, a, 1, ip, b, 2, info )
342 CALL chkxer(
'DSYTRS_ROOK', infot, nout, lerr, ok )
344 CALL dsytrs_rook(
'U', 2, 1, a, 2, ip, b, 1, info )
345 CALL chkxer(
'DSYTRS_ROOK', infot, nout, lerr, ok )
349 srnamt =
'DSYCON_ROOK'
351 CALL dsycon_rook(
'/', 0, a, 1, ip, anrm, rcond, w, iw, info )
352 CALL chkxer(
'DSYCON_ROOK', infot, nout, lerr, ok )
354 CALL dsycon_rook(
'U', -1, a, 1, ip, anrm, rcond, w, iw, info )
355 CALL chkxer(
'DSYCON_ROOK', infot, nout, lerr, ok )
357 CALL dsycon_rook(
'U', 2, a, 1, ip, anrm, rcond, w, iw, info )
358 CALL chkxer(
'DSYCON_ROOK'
360 CALL dsycon_rook(
'U', 1, a, 1, ip, -1.0d0, rcond, w, iw, info)
361 CALL chkxer(
'DSYCON_ROOK', infot, nout, lerr, ok )
363 ELSE IF( lsamen( 2, c2,
'SK' ) )
THEN
377 CALL dsytrf_rk(
'/', 0, a, 1, e, ip, w, 1, info )
378 CALL chkxer(
'DSYTRF_RK', infot, nout, lerr, ok )
380 CALL dsytrf_rk(
'U', -1, a, 1, e, ip, w, 1, info )
381 CALL chkxer(
'DSYTRF_RK', infot, nout, lerr, ok )
383 CALL dsytrf_rk(
'U', 2, a, 1, e, ip, w, 1, info )
384 CALL chkxer(
'DSYTRF_RK', infot, nout, lerr, ok )
386 CALL dsytrf_rk(
'U', 0, a, 1, e, ip, w, 0, info )
387 CALL chkxer(
'DSYTRF_RK', infot, nout, lerr, ok )
389 CALL dsytrf_rk(
'U', 0, a, 1, e, ip, w, -2, info )
390 CALL chkxer(
'DSYTRF_RK', infot, nout, lerr, ok )
396 CALL dsytf2_rk(
'/', 0, a, 1, e, ip, info )
397 CALL chkxer(
'DSYTF2_RK', infot, nout, lerr, ok )
399 CALL dsytf2_rk(
'U', -1, a, 1, e, ip, info )
400 CALL chkxer(
'DSYTF2_RK', infot, nout, lerr, ok )
402 CALL dsytf2_rk(
'U', 2, a, 1, e, ip, info )
403 CALL chkxer(
'DSYTF2_RK', infot, nout, lerr, ok )
409 CALL dsytri_3(
'/', 0, a, 1, e, ip, w, 1, info )
410 CALL chkxer(
'DSYTRI_3', infot, nout, lerr, ok )
412 CALL dsytri_3(
'U', -1, a, 1, e, ip, w, 1, info )
413 CALL chkxer(
'DSYTRI_3', infot, nout, lerr, ok )
415 CALL dsytri_3(
'U', 2, a, 1, e, ip, w, 1, info )
416 CALL chkxer(
'DSYTRI_3', infot, nout, lerr, ok )
418 CALL dsytri_3(
'U', 0, a, 1, e, ip, w, 0, info )
419 CALL chkxer(
'DSYTRI_3', infot, nout, lerr, ok )
421 CALL dsytri_3(
'U', 0, a, 1, e, ip, w, -2, info )
422 CALL chkxer(
'DSYTRI_3', infot, nout, lerr, ok )
428 CALL dsytri_3x(
'/', 0, a, 1, e, ip, w, 1, info )
429 CALL chkxer(
'DSYTRI_3X', infot, nout, lerr, ok )
431 CALL dsytri_3x(
'U', -1, a, 1, e, ip, w, 1, info )
432 CALL chkxer(
'DSYTRI_3X', infot, nout, lerr, ok )
434 CALL dsytri_3x(
'U', 2, a, 1, e, ip, w, 1, info )
435 CALL chkxer(
'DSYTRI_3X', infot, nout, lerr, ok )
441 CALL dsytrs_3(
'/', 0, 0, a, 1, e, ip, b, 1, info )
442 CALL chkxer(
'DSYTRS_3', infot, nout, lerr, ok )
444 CALL dsytrs_3(
'U', -1, 0, a, 1, e, ip, b, 1, info )
445 CALL chkxer(
'DSYTRS_3', infot, nout, lerr, ok )
447 CALL dsytrs_3(
'U', 0, -1, a, 1, e, ip, b, 1, info )
448 CALL chkxer(
'DSYTRS_3', infot, nout, lerr, ok )
450 CALL dsytrs_3(
'U', 2, 1, a, 1, e, ip, b, 2, info )
451 CALL chkxer(
'DSYTRS_3', infot, nout, lerr, ok )
453 CALL dsytrs_3(
'U', 2, 1, a, 2, e, ip, b, 1, info )
454 CALL chkxer(
'DSYTRS_3', infot, nout, lerr, ok )
460 CALL dsycon_3(
'/', 0, a, 1, e, ip, anrm, rcond, w, iw,
462 CALL chkxer(
'DSYCON_3', infot, nout, lerr, ok )
464 CALL dsycon_3(
'U', -1, a, 1, e, ip, anrm, rcond, w, iw,
468 CALL dsycon_3(
'U', 2, a, 1, e, ip, anrm, rcond, w, iw,
470 CALL chkxer(
'DSYCON_3', infot, nout, lerr, ok )
472 CALL dsycon_3(
'U', 1, a, 1, e, ip, -1.0d0, rcond, w, iw,
474 CALL chkxer(
'DSYCON_3', infot, nout, lerr, ok )
476 ELSE IF( lsamen( 2, c2,
'SA' ) )
THEN
485 CALL dsytrf_aa(
'/', 0, a, 1, ip, w, 1, info )
486 CALL chkxer(
'DSYTRF_AA', infot, nout, lerr, ok )
488 CALL dsytrf_aa(
'U', -1, a, 1, ip, w, 1, info )
489 CALL chkxer(
'DSYTRF_AA', infot, nout, lerr, ok )
491 CALL dsytrf_aa(
'U', 2, a, 1, ip, w, 4, info )
492 CALL chkxer(
'DSYTRF_AA', infot, nout, lerr, ok )
494 CALL dsytrf_aa(
'U', 0, a, 1, ip, w, 0, info )
495 CALL chkxer(
'DSYTRF_AA', infot, nout, lerr, ok )
497 CALL dsytrf_aa(
'U', 0, a, 1, ip, w, -2, info )
498 CALL chkxer(
'DSYTRF_AA', infot, nout, lerr, ok )
504 CALL dsytrs_aa(
'/', 0, 0, a, 1, ip, b, 1, w, 1, info )
505 CALL chkxer(
'DSYTRS_AA', infot, nout, lerr, ok )
507 CALL dsytrs_aa(
'U', -1, 0, a, 1, ip, b, 1, w, 1, info )
508 CALL chkxer(
'DSYTRS_AA', infot, nout, lerr, ok )
510 CALL dsytrs_aa(
'U', 0, -1, a, 1, ip, b, 1, w, 1, info )
511 CALL chkxer(
'DSYTRS_AA', infot, nout, lerr, ok )
513 CALL dsytrs_aa(
'U', 2, 1, a, 1, ip, b, 2, w, 1, info )
514 CALL chkxer(
'DSYTRS_AA', infot, nout, lerr, ok )
516 CALL dsytrs_aa(
'U', 2, 1, a, 2, ip, b, 1, w, 1, info )
517 CALL chkxer(
'DSYTRS_AA', infot, nout, lerr, ok )
519 CALL dsytrs_aa(
'U', 0, 1, a, 2, ip, b, 1, w, 0, info )
520 CALL chkxer(
'DSYTRS_AA', infot, nout, lerr, ok )
522 CALL dsytrs_aa(
'U', 0, 1, a, 2, ip, b, 1, w, -2, info )
523 CALL chkxer(
'DSYTRS_AA', infot, nout, lerr, ok )
525 ELSE IF( lsamen( 2, c2,
'S2' ) )
THEN
532 srnamt =
'DSYTRF_AA_2STAGE'
534 CALL dsytrf_aa_2stage(
'/', 0, a, 1, a, 1, ip, ip, w, 1,
536 CALL chkxer(
'DSYTRF_AA_2STAGE', infot, nout, lerr, ok )
538 CALL dsytrf_aa_2stage(
'U', -1, a, 1, a, 1, ip, ip, w, 1,
540 CALL chkxer(
'DSYTRF_AA_2STAGE', infot, nout, lerr, ok )
542 CALL dsytrf_aa_2stage(
'U', 2, a, 1, a, 2, ip, ip, w, 1,
544 CALL chkxer(
'DSYTRF_AA_2STAGE', infot, nout, lerr, ok )
546 CALL dsytrf_aa_2stage(
'U', 2, a, 2, a, 1, ip, ip, w, 1,
548 CALL chkxer(
'DSYTRF_AA_2STAGE', infot, nout, lerr, ok )
550 CALL dsytrf_aa_2stage(
'U', 2, a, 2, a, 8, ip, ip, w, 0,
552 CALL chkxer(
'DSYTRF_AA_2STAGE', infot, nout, lerr, ok )
556 srnamt =
'DSYTRS_AA_2STAGE'
560 CALL chkxer(
'DSYTRS_AA_2STAGE', infot, nout, lerr, ok )
564 CALL chkxer(
'DSYTRS_AA_2STAGE', infot, nout, lerr, ok )
568 CALL chkxer(
'DSYTRS_AA_2STAGE', infot, nout, lerr, ok )
574 CALL DSYTRS_AA_2STAGE( 'u
', 2, 1, A, 2, A, 1, IP, IP,
578 CALL DSYTRS_AA_2STAGE( 'u
', 2, 1, A, 2, A, 8, IP, IP,
580 CALL CHKXER( 'dsytrs_aa_stage
', INFOT, NOUT, LERR, OK )
581 ELSE IF( LSAMEN( 2, C2, 'sp
' ) ) THEN
591 CALL DSPTRF( '/
', 0, A, IP, INFO )
592 CALL CHKXER( 'dsptrf', INFOT, NOUT, LERR, OK )
594 CALL DSPTRF( 'u
', -1, A, IP, INFO )
595 CALL CHKXER( 'dsptrf', INFOT, NOUT, LERR, OK )
601 CALL DSPTRI( '/
', 0, A, IP, W, INFO )
602 CALL CHKXER( 'dsptri', INFOT, NOUT, LERR, OK )
604 CALL DSPTRI( 'u
', -1, A, IP, W, INFO )
605 CALL CHKXER( 'dsptri', INFOT, NOUT, LERR, OK )
611 CALL DSPTRS( '/
', 0, 0, A, IP, B, 1, INFO )
612 CALL CHKXER( 'dsptrs', INFOT, NOUT, LERR, OK )
614 CALL DSPTRS( 'u
', -1, 0, A, IP, B, 1, INFO )
615 CALL CHKXER( 'dsptrs', INFOT, NOUT, LERR, OK )
617 CALL DSPTRS( 'u
', 0, -1, A, IP, B, 1, INFO )
618 CALL CHKXER( 'dsptrs', INFOT, NOUT, LERR, OK )
620 CALL DSPTRS( 'u
', 2, 1, A, IP, B, 1, INFO )
621 CALL CHKXER( 'dsptrs', INFOT, NOUT, LERR, OK )
627 CALL DSPRFS( '/
', 0, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, IW,
629 CALL CHKXER( 'dsprfs', INFOT, NOUT, LERR, OK )
631 CALL DSPRFS( 'u
', -1, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, IW,
633 CALL CHKXER( 'dsprfs', INFOT, NOUT, LERR, OK )
635 CALL DSPRFS( 'u
', 0, -1, A, AF, IP, B, 1, X, 1, R1, R2, W, IW,
637 CALL CHKXER( 'dsprfs', INFOT, NOUT, LERR, OK )
639 CALL DSPRFS( 'u
', 2, 1, A, AF, IP, B, 1, X, 2, R1, R2, W, IW,
641 CALL CHKXER( 'dsprfs', INFOT, NOUT, LERR, OK )
643 CALL DSPRFS( 'u
', 2, 1, A, AF, IP, B, 2, X, 1, R1, R2, W, IW,
645 CALL CHKXER( 'dsprfs', INFOT, NOUT, LERR, OK )
651 CALL DSPCON( '/
', 0, A, IP, ANRM, RCOND, W, IW, INFO )
652 CALL CHKXER( 'dspcon', INFOT, NOUT, LERR, OK )
654 CALL DSPCON( 'u
', -1, A, IP, ANRM, RCOND, W, IW, INFO )
655 CALL CHKXER( 'dspcon', INFOT, NOUT, LERR, OK )
657 CALL DSPCON( 'u
', 1, A, IP, -1.0D0, RCOND, W, IW, INFO )
658 CALL CHKXER( 'dspcon', INFOT, NOUT, LERR, OK )
663 CALL ALAESM( PATH, OK, NOUT )