171 SUBROUTINE schksy_aa( DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL,
172 $ THRESH, TSTERR, NMAX, A, AFAC, AINV, B,
173 $ X, XACT, WORK, RWORK, IWORK, NOUT )
184 INTEGER NN, NNB, NNS, NMAX, NOUT
189 INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
190 REAL A( * ), AFAC( * ), AINV( * ), B( * ),
191 $ rwork( * ), work( * ), x( * ), xact( * )
198 parameter( zero = 0.0e+0 )
200 parameter( ntypes = 10 )
202 parameter( ntests = 9 )
206 CHARACTER DIST,
TYPE, UPLO, XTYPE
207 CHARACTER*3 PATH, MATPATH
208 INTEGER I, I1, I2, IMAT, IN, INB, INFO, IOFF, IRHS,
209 $ iuplo, izero, j, k, kl, ku, lda, lwork, mode,
210 $ n, nb, nerrs, nfail, nimat, nrhs, nrun, nt
215 INTEGER ISEED( 4 ), ISEEDY( 4 )
216 REAL RESULT( ntests )
232 COMMON / infoc / infot, nunit, ok, lerr
233 COMMON / srnamc / srnamt
236 DATA iseedy / 1988, 1989, 1990, 1991 /
237 DATA uplos /
'U',
'L' /
246 path( 1: 1 ) =
'Single precision' 251 matpath( 1: 1 ) =
'Single precision' 252 matpath( 2: 3 ) =
'SY' 257 iseed( i ) = iseedy( i )
263 $
CALL serrsy( path, nout )
275 IF( n .GT. nmax )
THEN 277 WRITE(nout, 9995)
'M ', n, nmax
290 DO 170 imat = 1, nimat
294 IF( .NOT.dotype( imat ) )
299 zerot = imat.GE.3 .AND. imat.LE.6
300 IF( zerot .AND. n.LT.imat-2 )
306 uplo = uplos( iuplo )
314 CALL slatb4( matpath, imat, n, n,
TYPE, KL, KU,
315 $ anorm, mode, cndnum, dist )
320 CALL slatms( n, n, dist, iseed,
TYPE, RWORK, MODE,
321 $ cndnum, anorm, kl, ku, uplo, a, lda, work,
327 CALL alaerh( path,
'SLATMS', info, 0, uplo, n, n, -1,
328 $ -1, -1, imat, nfail, nerrs, nout )
342 ELSE IF( imat.EQ.4 )
THEN 352 IF( iuplo.EQ.1 )
THEN 353 ioff = ( izero-1 )*lda
354 DO 20 i = 1, izero - 1
364 DO 40 i = 1, izero - 1
374 IF( iuplo.EQ.1 )
THEN 421 CALL slacpy( uplo, n, n, a, lda, afac, lda )
429 lwork = max( 1, n*nb + n )
430 CALL ssytrf_aa( uplo, n, afac, lda, iwork, ainv,
456 CALL alaerh( path,
'SSYTRF_AA', info, k, uplo,
457 $ n, n, -1, -1, nb, imat, nfail, nerrs,
464 CALL ssyt01_aa( uplo, n, a, lda, afac, lda, iwork,
465 $ ainv, lda, rwork, result( 1 ) )
473 IF( result( k ).GE.thresh )
THEN 474 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
475 $
CALL alahd( nout, path )
476 WRITE( nout, fmt = 9999 )uplo, n, nb, imat, k,
501 CALL slarhs( matpath, xtype, uplo,
' ', n, n,
502 $ kl, ku, nrhs, a, lda, xact, lda,
503 $ b, lda, iseed, info )
504 CALL slacpy(
'Full', n, nrhs, b, lda, x, lda )
507 lwork = max( 1, 3*n-2 )
508 CALL ssytrs_aa( uplo, n, nrhs, afac, lda,
509 $ iwork, x, lda, work, lwork,
515 IF( izero.EQ.0 )
THEN 516 CALL alaerh( path,
'SSYTRS_AA', info, 0,
517 $ uplo, n, n, -1, -1, nrhs, imat,
518 $ nfail, nerrs, nout )
521 CALL slacpy(
'Full', n, nrhs, b, lda, work, lda
526 CALL spot02( uplo, n, nrhs, a, lda, x, lda,
527 $ work, lda, rwork, result( 2 ) )
534 IF( result( k ).GE.thresh )
THEN 535 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
536 $
CALL alahd( nout, path )
537 WRITE( nout, fmt = 9998 )uplo, n, nrhs,
538 $ imat, k, result( k )
556 CALL alasum( path, nout, nfail, nrun, nerrs )
558 9999
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NB =', i4,
', type ',
559 $ i2,
', test ', i2,
', ratio =', g12.5 )
560 9998
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NRHS=', i3,
', type ',
561 $ i2,
', test(', i2,
') =', g12.5 )
562 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
subroutine alahd(IOUNIT, PATH)
ALAHD
subroutine ssytrf_aa(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
SSYTRF_AA
subroutine spot02(UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
SPOT02
subroutine ssyt01_aa(UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
SSYT01_AA
subroutine alaerh(PATH, SUBNAM, INFO, INFOE, OPTS, M, N, KL, KU, N5, IMAT, NFAIL, NERRS, NOUT)
ALAERH
subroutine slatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
SLATB4
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 xlaenv(ISPEC, NVALUE)
XLAENV
subroutine slatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
SLATMS
subroutine serrsy(PATH, NUNIT)
SERRSY
subroutine ssytrs_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
SSYTRS_AA
subroutine slacpy(UPLO, M, N, A, LDA, B, LDB)
SLACPY copies all or part of one two-dimensional array to another.
subroutine slarhs(PATH, XTYPE, UPLO, TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, ISEED, INFO)
SLARHS
subroutine alasum(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASUM