169 $ NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV,
170 $ B, X, XACT, WORK, RWORK, IWORK, NOUT )
180 INTEGER NN, NNB, NNS, NMAX, NOUT
185 INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
186 REAL A( * ), AFAC( * ), AINV( * ), B( * ),
187 $ rwork( * ), work( * ), x( * ), xact( * )
194 PARAMETER ( ZERO = 0.0e+0 )
196 parameter( ntypes = 10 )
198 parameter( ntests = 9 )
202 CHARACTER DIST,
TYPE, UPLO, XTYPE
203 CHARACTER*3 PATH, MATPATH
204 INTEGER I, I1, I2, IMAT, IN, INB, INFO, IOFF, IRHS,
205 $ iuplo, izero, j, k, kl, ku, lda, lwork, mode,
206 $ n, nb, nerrs, nfail, nimat, nrhs, nrun, nt
211 INTEGER ISEED( 4 ), ISEEDY( 4 )
212 REAL RESULT( NTESTS )
229 COMMON / infoc / infot, nunit, ok, lerr
230 COMMON / srnamc / srnamt
233 DATA iseedy / 1988, 1989, 1990, 1991 /
234 DATA uplos /
'U',
'L' /
243 path( 1: 1 ) =
'Single precision'
248 matpath( 1: 1 ) =
'Single precision'
249 matpath( 2: 3 ) =
'SY'
254 iseed( i ) = iseedy( i )
260 $
CALL serrsy( path, nout )
272 IF( n .GT. nmax )
THEN
274 WRITE(nout, 9995)
'M ', n, nmax
287 DO 170 imat = 1, nimat
291 IF( .NOT.dotype( imat ) )
296 zerot = imat.GE.3 .AND. imat.LE.6
297 IF( zerot .AND. n.LT.imat-2 )
303 uplo = uplos( iuplo )
311 CALL slatb4( matpath, imat, n, n,
TYPE, kl, ku,
312 $ anorm, mode, cndnum, dist )
317 CALL slatms( n, n, dist, iseed,
TYPE, rwork, mode,
318 $ cndnum, anorm, kl, ku, uplo, a, lda, work,
324 CALL alaerh( path,
'SLATMS', info, 0, uplo, n, n, -1,
325 $ -1, -1, imat, nfail, nerrs, nout )
339 ELSE IF( imat.EQ.4 )
THEN
349 IF( iuplo.EQ.1 )
THEN
350 ioff = ( izero-1 )*lda
351 DO 20 i = 1, izero - 1
361 DO 40 i = 1, izero - 1
371 IF( iuplo.EQ.1 )
THEN
418 CALL slacpy( uplo, n, n, a, lda, afac, lda )
425 srnamt =
'SSYTRF_AA_2STAGE'
426 lwork = min(n*nb, 3*nmax*nmax)
429 $ iwork, iwork( 1+n ),
436 IF( izero.GT.0 )
THEN
442 ELSE IF( iwork( j ).EQ.k )
THEN
456 CALL alaerh( path,
'SSYTRF_AA_2STAGE', info, k,
457 $ uplo, n, n, -1, -1, nb, imat, nfail,
474 IF( result( k ).GE.thresh )
THEN
475 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
476 $
CALL alahd( nout, path )
477 WRITE( nout, fmt = 9999 )uplo, n, nb, imat, k,
502 CALL slarhs( matpath, xtype, uplo,
' ', n, n,
503 $ kl, ku, nrhs, a, lda, xact, lda,
504 $ b, lda, iseed, info )
505 CALL slacpy(
'Full', n, nrhs, b, lda, x, lda )
507 srnamt =
'SSYTRS_AA_2STAGE'
508 lwork = max( 1, 3*n-2 )
510 $ ainv, (3*nb+1)*n, iwork, iwork( 1+n ),
516 IF( izero.EQ.0 )
THEN
517 CALL alaerh( path,
'SSYTRS_AA_2STAGE',
518 $ info, 0, uplo, n, n, -1, -1,
519 $ nrhs, imat, nfail, nerrs, nout )
522 CALL slacpy(
'Full', n, nrhs, b, lda, work, lda
527 CALL spot02( uplo, n, nrhs, a, lda, x, lda,
528 $ work, lda, rwork, result( 2 ) )
535 IF( result( k ).GE.thresh )
THEN
536 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
537 $
CALL alahd( nout, path )
538 WRITE( nout, fmt = 9998 )uplo, n, nrhs,
539 $ imat, k, result( k )
557 CALL alasum( path, nout, nfail, nrun, nerrs )
559 9999
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NB =', i4,
', type ',
560 $ i2,
', test ', i2,
', ratio =', g12.5 )
561 9998
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NRHS=', i3,
', type ',
562 $ i2,
', test(', i2,
') =', g12.5 )
563 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
subroutine alasum(type, nout, nfail, nrun, nerrs)
ALASUM
subroutine slarhs(path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info)
SLARHS
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine alaerh(path, subnam, info, infoe, opts, m, n, kl, ku, n5, imat, nfail, nerrs, nout)
ALAERH
subroutine alahd(iounit, path)
ALAHD
subroutine ssytrf_aa_2stage(uplo, n, a, lda, tb, ltb, ipiv, ipiv2, work, lwork, info)
SSYTRF_AA_2STAGE
subroutine ssytrs_aa_2stage(uplo, n, nrhs, a, lda, tb, ltb, ipiv, ipiv2, b, ldb, info)
SSYTRS_AA_2STAGE
subroutine slacpy(uplo, m, n, a, lda, b, ldb)
SLACPY copies all or part of one two-dimensional array to another.
subroutine schksy_aa_2stage(dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout)
SCHKSY_AA_2STAGE
subroutine serrsy(path, nunit)
SERRSY
subroutine slatb4(path, imat, m, n, type, kl, ku, anorm, mode, cndnum, dist)
SLATB4
subroutine slatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
SLATMS
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