167 SUBROUTINE schksy_aa( DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL,
168 $ THRESH, TSTERR, NMAX, A, AFAC, AINV, B,
169 $ X, XACT, WORK, RWORK, IWORK, NOUT )
179 INTEGER NN, NNB, NNS, NMAX, NOUT
184 INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
185 REAL A( * ), AFAC( * ), AINV( * ), B( * ),
186 $ rwork( * ), work( * ), x( * ), xact( * )
193 PARAMETER ( ZERO = 0.0e+0 )
195 parameter( ntypes = 10 )
197 parameter( ntests = 9 )
201 CHARACTER DIST,
TYPE, UPLO, XTYPE
202 CHARACTER*3 PATH, MATPATH
203 INTEGER I, I1, I2, IMAT, IN, INB, INFO, IOFF, IRHS,
204 $ iuplo, izero, j, k, kl, ku, lda, lwork, mode,
205 $ n, nb, nerrs, nfail, nimat, nrhs, nrun, nt
210 INTEGER ISEED( 4 ), ISEEDY( 4 )
211 REAL RESULT( NTESTS )
227 COMMON / infoc / infot, nunit, ok, lerr
228 COMMON / srnamc / srnamt
231 DATA iseedy / 1988, 1989, 1990, 1991 /
232 DATA uplos /
'U',
'L' /
241 path( 1: 1 ) =
'Single precision'
246 matpath( 1: 1 ) =
'Single precision'
247 matpath( 2: 3 ) =
'SY'
252 iseed( i ) = iseedy( i )
258 $
CALL serrsy( path, nout )
270 IF( n .GT. nmax )
THEN
272 WRITE(nout, 9995)
'M ', n, nmax
285 DO 170 imat = 1, nimat
289 IF( .NOT.dotype( imat ) )
294 zerot = imat.GE.3 .AND. imat.LE.6
295 IF( zerot .AND. n.LT.imat-2 )
301 uplo = uplos( iuplo )
309 CALL slatb4( matpath, imat, n, n,
TYPE, kl, ku,
310 $ anorm, mode, cndnum, dist )
315 CALL slatms( n, n, dist, iseed,
TYPE, rwork, mode,
316 $ cndnum, anorm, kl, ku, uplo, a, lda, work,
322 CALL alaerh( path,
'SLATMS', info, 0, uplo, n, n, -1,
323 $ -1, -1, imat, nfail, nerrs, nout )
337 ELSE IF( imat.EQ.4 )
THEN
347 IF( iuplo.EQ.1 )
THEN
348 ioff = ( izero-1 )*lda
349 DO 20 i = 1, izero - 1
359 DO 40 i = 1, izero - 1
369 IF( iuplo.EQ.1 )
THEN
416 CALL slacpy( uplo, n, n, a, lda, afac, lda )
424 lwork = max( 1, n*nb + n )
425 CALL ssytrf_aa( uplo, n, afac, lda, iwork, ainv,
451 CALL alaerh( path,
'SSYTRF_AA', info, k, uplo,
452 $ n, n, -1, -1, nb, imat, nfail, nerrs,
459 CALL ssyt01_aa( uplo, n, a, lda, afac, lda, iwork,
460 $ ainv, lda, rwork, result( 1 ) )
468 IF( result( k ).GE.thresh )
THEN
469 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
470 $
CALL alahd( nout, path )
471 WRITE( nout, fmt = 9999 )uplo, n, nb, imat, k,
496 CALL slarhs( matpath, xtype, uplo,
' ', n, n,
497 $ kl, ku, nrhs, a, lda, xact, lda,
498 $ b, lda, iseed, info )
499 CALL slacpy(
'Full', n, nrhs, b, lda, x, lda )
502 lwork = max( 1, 3*n-2 )
503 CALL ssytrs_aa( uplo, n, nrhs, afac, lda,
504 $ iwork, x, lda, work, lwork,
510 IF( izero.EQ.0 )
THEN
511 CALL alaerh( path,
'SSYTRS_AA', info, 0,
512 $ uplo, n, n, -1, -1, nrhs, imat,
513 $ nfail, nerrs, nout )
516 CALL slacpy(
'Full', n, nrhs, b, lda, work, lda
521 CALL spot02( uplo, n, nrhs, a, lda, x, lda,
522 $ work, lda, rwork, result( 2 ) )
529 IF( result( k ).GE.thresh )
THEN
530 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
531 $
CALL alahd( nout, path )
532 WRITE( nout, fmt = 9998 )uplo, n, nrhs,
533 $ imat, k, result( k )
551 CALL alasum( path, nout, nfail, nrun, nerrs )
553 9999
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NB =', i4,
', type ',
554 $ i2,
', test ', i2,
', ratio =', g12.5 )
555 9998
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NRHS=', i3,
', type ',
556 $ i2,
', test(', i2,
') =', g12.5 )
557 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
subroutine slacpy(UPLO, M, N, A, LDA, B, LDB)
SLACPY copies all or part of one two-dimensional array to another.
subroutine alasum(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASUM
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
subroutine alahd(IOUNIT, PATH)
ALAHD
subroutine alaerh(PATH, SUBNAM, INFO, INFOE, OPTS, M, N, KL, KU, N5, IMAT, NFAIL, NERRS, NOUT)
ALAERH
subroutine slatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
SLATMS
subroutine ssytrf_aa(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
SSYTRF_AA
subroutine ssytrs_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
SSYTRS_AA
subroutine slarhs(PATH, XTYPE, UPLO, TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, ISEED, INFO)
SLARHS
subroutine slatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
SLATB4
subroutine serrsy(PATH, NUNIT)
SERRSY
subroutine spot02(UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
SPOT02
subroutine schksy_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKSY_AA
subroutine ssyt01_aa(UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
SSYT01_AA