77 INTEGER IP( NMAX ), IW( NMAX )
78 REAL 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. / real( i+j )
118 af( i, j ) = 1. / real( i+j )
133 IF( lsamen( 2, c2,
'SY' ) )
THEN
143 CALL ssytrf(
'/', 0, a, 1, ip, w, 1, info )
144 CALL chkxer(
'SSYTRF', infot, nout, lerr, ok )
146 CALL ssytrf(
'U', -1, a, 1, ip, w, 1, info )
147 CALL chkxer(
'SSYTRF', infot, nout, lerr, ok )
149 CALL ssytrf(
'U', 2, a, 1, ip, w, 4, info )
150 CALL chkxer(
'SSYTRF', infot, nout, lerr, ok )
152 CALL ssytrf(
'U', 0, a, 1, ip, w, 0, info )
153 CALL chkxer(
'SSYTRF', infot, nout, lerr, ok )
155 CALL ssytrf(
'U', 0, a, 1, ip, w, -2, info )
156 CALL chkxer(
'SSYTRF', infot, nout, lerr, ok )
162 CALL ssytf2(
'/', 0, a, 1, ip, info )
163 CALL chkxer(
'SSYTF2', infot, nout, lerr, ok )
165 CALL ssytf2(
'U', -1, a, 1, ip, info )
166 CALL chkxer(
'SSYTF2', infot, nout, lerr, ok )
168 CALL ssytf2(
'U', 2, a, 1, ip, info )
169 CALL chkxer(
'SSYTF2', infot, nout, lerr, ok )
175 CALL ssytri(
'/', 0, a, 1, ip, w, info )
176 CALL chkxer(
'SSYTRI', infot, nout, lerr, ok )
178 CALL ssytri'U', -1, a, 1, ip, w, info )
179 CALL chkxer(
'SSYTRI', infot, nout, lerr, ok )
181 CALL ssytri(
'U', 2, a, 1, ip, w, info )
182 CALL chkxer(
'SSYTRI', infot, nout, lerr, ok )
188 CALL ssytri2(
'/', 0, a, 1, ip, w, iw(1), info )
189 CALL chkxer(
'SSYTRI2', infot, nout, lerr, ok )
191 CALL ssytri2(
'U', -1, a, 1, ip, w, iw(1), info )
192 CALL chkxer(
'SSYTRI2', infot, nout, lerr, ok )
194 CALL ssytri2(
'U', 2, a, 1, ip, w, iw(1), info )
195 CALL chkxer(
'SSYTRI2', infot, nout, lerr, ok )
201 CALL ssytri2x(
'/', 0, a, 1, ip, w, 1, info )
202 CALL chkxer(
'SSYTRI2X', infot, nout, lerr, ok )
204 CALL ssytri2x(
'U', -1, a, 1, ip, w, 1, info )
205 CALL chkxer(
'SSYTRI2X', infot, nout, lerr, ok )
207 CALL ssytri2x(
'U', 2, a, 1, ip, w, 1, info )
208 CALL chkxer(
'SSYTRI2X', infot, nout, lerr, ok )
214 CALL ssytrs(
'/', 0, 0, a, 1, ip, b, 1, info )
215 CALL chkxer(
'SSYTRS', infot, nout, lerr, ok )
217 CALL ssytrs(
'U', -1, 0, a, 1, ip, b, 1, info )
218 CALL chkxer(
'SSYTRS', infot, nout, lerr, ok )
220 CALL ssytrs(
'U', 0, -1, a, 1, ip, b, 1, info )
221 CALL chkxer(
'SSYTRS', infot, nout, lerr, ok )
223 CALL ssytrs(
'U', 2, 1, a, 1, ip, b, 2, info )
226 CALL SSYTRS( 'u
', 2, 1, A, 2, IP, B, 1, INFO )
227 CALL CHKXER( 'ssytrs', INFOT, NOUT, LERR, OK )
233 CALL SSYRFS( '/
', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W,
235 CALL CHKXER( 'ssyrfs', INFOT, NOUT, LERR, OK )
237 CALL SSYRFS( 'u
', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
239 CALL CHKXER( 'ssyrfs', INFOT, NOUT, LERR, OK )
241 CALL SSYRFS( 'u
', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
243 CALL CHKXER( 'ssyrfs', INFOT, NOUT, LERR, OK )
245 CALL SSYRFS( 'u
', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W,
247 CALL CHKXER( 'ssyrfs', INFOT, NOUT, LERR, OK )
249 CALL SSYRFS( 'u
', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W,
251 CALL CHKXER( 'ssyrfs', INFOT, NOUT, LERR, OK )
253 CALL SSYRFS( 'u
', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W,
255 CALL CHKXER( 'ssyrfs', INFOT, NOUT, LERR, OK )
257 CALL SSYRFS( 'u
', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W,
259 CALL CHKXER( 'ssyrfs', INFOT, NOUT, LERR, OK )
265 CALL SSYCON( '/
', 0, A, 1, IP, ANRM, RCOND, W, IW, INFO )
266 CALL CHKXER( 'ssycon', INFOT, NOUT, LERR, OK )
268 CALL SSYCON( 'u
', -1, A, 1, IP, ANRM, RCOND, W, IW, INFO )
269 CALL CHKXER( 'ssycon', INFOT, NOUT, LERR, OK )
271 CALL SSYCON( 'u
', 2, A, 1, IP, ANRM, RCOND, W, IW, INFO )
272 CALL CHKXER( 'ssycon', INFOT, NOUT, LERR, OK )
274 CALL SSYCON( 'u
', 1, A, 1, IP, -1.0, RCOND, W, IW, INFO )
275 CALL CHKXER( 'ssycon', INFOT, NOUT, LERR, OK )
277 ELSE IF( LSAMEN( 2, C2, 'sr
' ) ) THEN
287 CALL SSYTRF_ROOK( '/
', 0, A, 1, IP, W, 1, INFO )
288 CALL CHKXER( 'ssytrf_rook', INFOT, NOUT, LERR, OK )
290 CALL SSYTRF_ROOK( 'u
', -1, A, 1, IP, W, 1, INFO )
291 CALL CHKXER( 'ssytrf_rook', INFOT, NOUT, LERR, OK )
293 CALL SSYTRF_ROOK( 'u
', 2, A, 1, IP, W, 4, INFO )
294 CALL CHKXER( 'ssytrf_rook', INFOT, NOUT, LERR, OK )
296 CALL SSYTRF_ROOK( 'u
', 0, A, 1, IP, W, 0, INFO )
297 CALL CHKXER( 'ssytrf_rook', INFOT, NOUT, LERR, OK )
299 CALL SSYTRF_ROOK( 'u
', 0, A, 1, IP, W, -2, INFO )
300 CALL CHKXER( 'ssytrf_rook', INFOT, NOUT, LERR, OK )
306 CALL SSYTF2_ROOK( '/
', 0, A, 1, IP, INFO )
307 CALL CHKXER( 'ssytf2_rook', INFOT, NOUT, LERR, OK )
309 CALL SSYTF2_ROOK( 'u
', -1, A, 1, IP, INFO )
310 CALL CHKXER( 'ssytf2_rook', INFOT, NOUT, LERR, OK )
312 CALL SSYTF2_ROOK( 'u
', 2, A, 1, IP, INFO )
313 CALL CHKXER( 'ssytf2_rook', INFOT, NOUT, LERR, OK )
320 CALL chkxer(
'SSYTRI_ROOK', infot, nout, lerr, ok )
323 CALL chkxer(
'SSYTRI_ROOK', infot, nout, lerr, ok )
326 CALL chkxer(
'SSYTRI_ROOK', infot, nout, lerr, ok )
330 srnamt =
'SSYTRS_ROOK'
332 CALL ssytrs_rook(
'/', 0, 0, a, 1, ip, b, 1, info )
333 CALL chkxer(
'SSYTRS_ROOK', infot, nout, lerr, ok )
335 CALL ssytrs_rook(
'U', -1, 0, a, 1, ip, b, 1, info )
336 CALL chkxer(
'SSYTRS_ROOK', infot, nout, lerr, ok )
338 CALL ssytrs_rook(
'U', 0, -1, a, 1, ip, b, 1, info )
339 CALL chkxer(
'SSYTRS_ROOK', infot, nout, lerr, ok )
341 CALL ssytrs_rook(
'U', 2, 1, a, 1, ip, b, 2, info )
342 CALL chkxer(
'SSYTRS_ROOK', infot, nout, lerr, ok )
344 CALL ssytrs_rook(
'U', 2, 1, a, 2, ip, b, 1, info )
345 CALL chkxer(
'SSYTRS_ROOK', infot, nout, lerr, ok )
349 srnamt =
'SSYCON_ROOK'
351 CALL ssycon_rook(
'/', 0, a, 1, ip, anrm, rcond, w, iw, info )
352 CALL chkxer(
'SSYCON_ROOK', infot, nout, lerr, ok )
354 CALL ssycon_rook(
'U', -1, a, 1, ip, anrm, rcond, w, iw, info )
355 CALL chkxer(
'SSYCON_ROOK', infot, nout, lerr, ok )
357 CALL ssycon_rook(
'U', 2, a, 1, ip, anrm, rcond, w, iw, info )
358 CALL chkxer(
'SSYCON_ROOK', infot, nout, lerr, ok )
360 CALL ssycon_rook(
'U', 1, a, 1, ip, -1.0, rcond, w, iw, info )
361 CALL chkxer(
'SSYCON_ROOK', infot, nout, lerr, ok )
363 ELSE IF( lsamen( 2, c2,
'SK' ) )
THEN
377 CALL ssytrf_rk(
'/', 0, a, 1, e, ip, w, 1, info )
378 CALL chkxer(
'SSYTRF_RK', infot, nout, lerr, ok )
380 CALL ssytrf_rk(
'U', -1, a, 1, e, ip, w, 1, info )
381 CALL chkxer(
'SSYTRF_RK', infot, nout, lerr, ok )
383 CALL ssytrf_rk(
'U', 2, a, 1, e, ip, w, 4, info )
384 CALL chkxer(
'SSYTRF_RK', infot, nout, lerr, ok )
386 CALL ssytrf_rk(
'U', 0, a, 1, e, ip, w, 0, info )
387 CALL chkxer(
'SSYTRF_RK', infot, nout, lerr, ok )
389 CALL ssytrf_rk(
'U', 0, a, 1, e, ip, w, -2, info )
390 CALL chkxer(
'SSYTRF_RK', infot, nout, lerr, ok )
396 CALL SSYTF2_RK( '/
', 0, A, 1, E, IP, INFO )
397 CALL CHKXER( 'ssytf2_rk', INFOT, NOUT, LERR, OK )
399 CALL SSYTF2_RK( 'u
', -1, A, 1, E, IP, INFO )
400 CALL CHKXER( 'ssytf2_rk', INFOT, NOUT, LERR, OK )
402 CALL SSYTF2_RK( 'u
', 2, A, 1, E, IP, INFO )
403 CALL CHKXER( 'ssytf2_rk', INFOT, NOUT, LERR, OK )
409 CALL SSYTRI_3( '/
', 0, A, 1, E, IP, W, 1, INFO )
410 CALL CHKXER( 'ssytri_3', INFOT, NOUT, LERR, OK )
412 CALL SSYTRI_3( 'u
', -1, A, 1, E, IP, W, 1, INFO )
413 CALL CHKXER( 'ssytri_3', INFOT, NOUT, LERR, OK )
415 CALL SSYTRI_3( 'u
', 2, A, 1, E, IP, W, 1, INFO )
416 CALL CHKXER( 'ssytri_3', INFOT, NOUT, LERR, OK )
418 CALL SSYTRI_3( 'u
', 0, A, 1, E, IP, W, 0, INFO )
419 CALL CHKXER( 'ssytri_3', INFOT, NOUT, LERR, OK )
421 CALL SSYTRI_3( 'u
', 0, A, 1, E, IP, W, -2, INFO )
422 CALL CHKXER( 'ssytri_3', INFOT, NOUT, LERR, OK )
428 CALL SSYTRI_3X( '/
', 0, A, 1, E, IP, W, 1, INFO )
429 CALL CHKXER( 'ssytri_3x', INFOT, NOUT, LERR, OK )
431 CALL SSYTRI_3X( 'u
', -1, A, 1, E, IP, W, 1, INFO )
432 CALL CHKXER( 'ssytri_3x', INFOT, NOUT, LERR, OK )
434 CALL SSYTRI_3X( 'u
', 2, A, 1, E, IP, W, 1, INFO )
435 CALL CHKXER( 'ssytri_3x', INFOT, NOUT, LERR, OK )
441 CALL SSYTRS_3( '/
', 0, 0, A, 1, E, IP, B, 1, INFO )
442 CALL CHKXER( 'ssytrs_3', INFOT, NOUT, LERR, OK )
444 CALL SSYTRS_3( 'u
', -1, 0, A, 1, E, IP, B, 1, INFO )
445 CALL CHKXER( 'ssytrs_3', INFOT, NOUT, LERR, OK )
447 CALL SSYTRS_3( 'u
', 0, -1, A, 1, E, IP, B, 1, INFO )
448 CALL CHKXER( 'ssytrs_3', INFOT, NOUT, LERR, OK )
450 CALL SSYTRS_3( 'u
', 2, 1, A, 1, E, IP, B, 2, INFO )
451 CALL CHKXER( 'ssytrs_3', INFOT, NOUT, LERR, OK )
453 CALL SSYTRS_3( 'u
', 2, 1, A, 2, E, IP, B, 1, INFO )
454 CALL CHKXER( 'ssytrs_3', INFOT, NOUT, LERR, OK )
460 CALL SSYCON_3( '/
', 0, A, 1, E, IP, ANRM, RCOND, W, IW,
462 CALL CHKXER( 'ssycon_3', INFOT, NOUT, LERR, OK )
464 CALL SSYCON_3( 'u
', -1, A, 1, E, IP, ANRM, RCOND, W, IW,
466 CALL CHKXER( 'ssycon_3', INFOT, NOUT, LERR, OK )
468 CALL SSYCON_3( 'u
', 2, A, 1, E, IP, ANRM, RCOND, W, IW,
470 CALL CHKXER( 'ssycon_3', INFOT, NOUT, LERR, OK )
472 CALL SSYCON_3( 'u
', 1, A, 1, E, IP, -1.0E0, RCOND, W, IW,
474 CALL CHKXER( 'ssycon_3', INFOT, NOUT, LERR, OK )
476 ELSE IF( LSAMEN( 2, C2, 'sa
' ) ) THEN
485 CALL SSYTRF_AA( '/
', 0, A, 1, IP, W, 1, INFO )
486 CALL CHKXER( 'ssytrf_aa', INFOT, NOUT, LERR, OK )
488 CALL SSYTRF_AA( 'u
', -1, A, 1, IP, W, 1, INFO )
489 CALL CHKXER( 'ssytrf_aa', INFOT, NOUT, LERR, OK )
491 CALL SSYTRF_AA( 'u
', 2, A, 1, IP, W, 4, INFO )
492 CALL CHKXER( 'ssytrf_aa', INFOT, NOUT, LERR, OK )
494 CALL SSYTRF_AA( 'u
', 0, A, 1, IP, W, 0, INFO )
495 CALL CHKXER( 'ssytrf_aa', INFOT, NOUT, LERR, OK )
497 CALL SSYTRF_AA( 'u
', 0, A, 1, IP, W, -2, INFO )
498 CALL CHKXER( 'ssytrf_aa', INFOT, NOUT, LERR, OK )
504 CALL SSYTRS_AA( '/
', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
505 CALL CHKXER( 'ssytrs_aa', INFOT, NOUT, LERR, OK )
507 CALL SSYTRS_AA( 'u
', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
508 CALL CHKXER( 'ssytrs_aa', INFOT, NOUT, LERR, OK )
510 CALL SSYTRS_AA( 'u
', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
511 CALL CHKXER( 'ssytrs_aa', INFOT, NOUT, LERR, OK )
513 CALL SSYTRS_AA( 'u
', 2, 1, A, 1, IP, B, 2, W, 1, INFO )
514 CALL CHKXER( 'ssytrs_aa', INFOT, NOUT, LERR, OK )
516 CALL SSYTRS_AA( 'u
', 2, 1, A, 2, IP, B, 1, W, 1, INFO )
517 CALL CHKXER( 'ssytrs_aa', INFOT, NOUT, LERR, OK )
519 CALL SSYTRS_AA( 'u
', 0, 1, A, 2, IP, B, 1, W, 0, INFO )
520 CALL CHKXER( 'ssytrs_aa', INFOT, NOUT, LERR, OK )
522 CALL SSYTRS_AA( 'u
', 0, 1, A, 2, IP, B, 1, W, -2, INFO )
523 CALL CHKXER( 'ssytrs_aa', INFOT, NOUT, LERR, OK )
524 ELSE IF( LSAMEN( 2, C2, 's2
' ) ) THEN
533 CALL SSYTRF_AA_2STAGE( '/
', 0, A, 1, A, 1, IP, IP, W, 1,
537 CALL SSYTRF_AA_2STAGE( 'u
', -1, A, 1, A, 1, IP, IP, W, 1,
541 CALL SSYTRF_AA_2STAGE( 'u
', 2, A, 1, A, 2, IP, IP, W, 1,
545 CALL SSYTRF_AA_2STAGE( 'u
', 2, A, 2, A, 1, IP, IP, W, 1,
549 CALL SSYTRF_AA_2STAGE( 'u
', 2, A, 2, A, 8, IP, IP, W, 0,
557 CALL SSYTRS_AA_2STAGE( '/
', 0, 0, A, 1, A, 1, IP, IP,
561 CALL SSYTRS_AA_2STAGE( 'u
', -1, 0, A, 1, A, 1, IP, IP,
565 CALL SSYTRS_AA_2STAGE( 'u
', 0, -1, A, 1, A, 1, IP, IP,
569 CALL SSYTRS_AA_2STAGE( 'u
', 2, 1, A, 1, A, 1, IP, IP,
573 CALL SSYTRS_AA_2STAGE( 'u
', 2, 1, A, 2, A, 1, IP, IP,
577 CALL SSYTRS_AA_2STAGE( 'u
', 2, 1, A, 2, A, 8, IP, IP,
579 CALL CHKXER( 'ssytrs_aa_stage
', INFOT, NOUT, LERR, OK )
581 ELSE IF( LSAMEN( 2, C2, 'sp
' ) ) THEN
591 CALL SSPTRF( '/
', 0, A, IP, INFO )
592 CALL CHKXER( 'ssptrf', INFOT, NOUT, LERR, OK )
594 CALL SSPTRF( 'u
', -1, A, IP, INFO )
595 CALL CHKXER( 'ssptrf', INFOT, NOUT, LERR, OK )
601 CALL SSPTRI( '/
', 0, A, IP, W, INFO )
602 CALL CHKXER( 'ssptri', INFOT, NOUT, LERR, OK )
604 CALL SSPTRI( 'u
', -1, A, IP, W, INFO )
605 CALL CHKXER( 'ssptri', INFOT, NOUT, LERR, OK )
611 CALL SSPTRS( '/
', 0, 0, A, IP, B, 1, INFO )
612 CALL CHKXER( 'ssptrs', INFOT, NOUT, LERR, OK )
614 CALL SSPTRS( 'u
', -1, 0, A, IP, B, 1, INFO )
615 CALL CHKXER( 'ssptrs', INFOT, NOUT, LERR, OK )
617 CALL SSPTRS( 'u
', 0, -1, A, IP, B, 1, INFO )
618 CALL CHKXER( 'ssptrs', INFOT, NOUT, LERR, OK )
620 CALL SSPTRS( 'u
', 2, 1, A, IP, B, 1, INFO )
621 CALL CHKXER( 'ssptrs', INFOT, NOUT, LERR, OK )
627 CALL SSPRFS( '/
', 0, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, IW,
629 CALL CHKXER( 'ssprfs', INFOT, NOUT, LERR, OK )
631 CALL SSPRFS( 'u
', -1, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, IW,
633 CALL CHKXER( 'ssprfs', INFOT, NOUT, LERR, OK )
635 CALL SSPRFS( 'u
', 0, -1, A, AF, IP, B, 1, X, 1, R1, R2, W, IW,
637 CALL CHKXER( 'ssprfs', INFOT, NOUT, LERR, OK )
639 CALL SSPRFS( 'u
', 2, 1, A, AF, IP, B, 1, X, 2, R1, R2, W, IW,
641 CALL CHKXER( 'ssprfs', INFOT, NOUT, LERR, OK )
643 CALL SSPRFS( 'u
', 2, 1, A, AF, IP, B, 2, X, 1, R1, R2, W, IW,
645 CALL CHKXER( 'ssprfs', INFOT, NOUT, LERR, OK )
651 CALL SSPCON( '/
', 0, A, IP, ANRM, RCOND, W, IW, INFO )
652 CALL CHKXER( 'sspcon', INFOT, NOUT, LERR, OK )
654 CALL SSPCON( 'u
', -1, A, IP, ANRM, RCOND, W, IW, INFO )
655 CALL CHKXER( 'sspcon', INFOT, NOUT, LERR, OK )
657 CALL SSPCON( 'u
', 1, A, IP, -1.0, RCOND, W, IW, INFO )
658 CALL CHKXER( 'sspcon', INFOT, NOUT, LERR, OK )
663 CALL ALAESM( PATH, OK, NOUT )