170 $ NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV,
171 $ B, X, XACT, WORK, RWORK, IWORK, NOUT )
181 INTEGER NN, NNB, NNS, NMAX, NOUT
182 DOUBLE PRECISION THRESH
186 INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
187 DOUBLE PRECISION RWORK( * )
188 COMPLEX*16 A( * ), AFAC( * ), AINV( * ), B( * ),
189 $ work( * ), x( * ), xact( * )
196 PARAMETER ( CZERO = ( 0.0d+0, 0.0d+0 ) )
198 parameter( ntypes = 10 )
200 parameter( ntests = 9 )
204 CHARACTER DIST,
TYPE, UPLO, XTYPE
205 CHARACTER*3 PATH, MATPATH
206 INTEGER I, I1, I2, IMAT, IN, INB, INFO, IOFF, IRHS,
207 $ iuplo, izero, j, k, kl, ku, lda, lwork, mode,
208 $ n, nb, nerrs, nfail, nimat, nrhs, nrun, nt
209 DOUBLE PRECISION ANORM, CNDNUM
213 INTEGER ISEED( 4 ), ISEEDY( 4 )
214 DOUBLE PRECISION RESULT( NTESTS )
231 COMMON / infoc / infot, nunit, ok, lerr
232 COMMON / srnamc / srnamt
235 DATA iseedy / 1988, 1989, 1990, 1991 /
236 DATA uplos /
'U',
'L' /
244 path( 1: 1 ) =
'Zomplex precision'
249 matpath( 1: 1 ) =
'Zomplex precision'
250 matpath( 2: 3 ) =
'SY'
255 iseed( i ) = iseedy( i )
261 $
CALL zerrsy( path, nout )
273 IF( n .GT. nmax )
THEN
275 WRITE(nout, 9995)
'M ', n, nmax
288 DO 170 imat = 1, nimat
292 IF( .NOT.dotype( imat ) )
297 zerot = imat.GE.3 .AND. imat.LE.6
298 IF( zerot .AND. n.LT.imat-2 )
304 uplo = uplos( iuplo )
312 CALL zlatb4( matpath, imat, n, n,
TYPE, kl, ku,
313 $ anorm, mode, cndnum, dist )
318 CALL zlatms( n, n, dist, iseed,
TYPE, rwork, mode,
319 $ cndnum, anorm, kl, ku, uplo, a, lda, work,
325 CALL alaerh( path,
'ZLATMS', info, 0, uplo, n, n, -1,
326 $ -1, -1, imat, nfail, nerrs, nout )
340 ELSE IF( imat.EQ.4 )
THEN
350 IF( iuplo.EQ.1 )
THEN
351 ioff = ( izero-1 )*lda
352 DO 20 i = 1, izero - 1
362 DO 40 i = 1, izero - 1
372 IF( iuplo.EQ.1 )
THEN
419 CALL zlacpy( uplo, n, n, a, lda, afac, lda )
426 srnamt =
'ZSYTRF_AA_2STAGE'
427 lwork = min(n*nb, 3*nmax*nmax)
430 $ iwork, iwork( 1+n ),
437 IF( izero.GT.0 )
THEN
443 ELSE IF( iwork( j ).EQ.k )
THEN
457 CALL alaerh( path,
'ZSYTRF_AA_2STAGE', info, k,
458 $ uplo, n, n, -1, -1, nb, imat, nfail,
475 IF( result( k ).GE.thresh )
THEN
476 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
477 $
CALL alahd( nout, path )
478 WRITE( nout, fmt = 9999 )uplo, n, nb, imat, k,
503 CALL zlarhs( matpath, xtype, uplo,
' ', n, n,
504 $ kl, ku, nrhs, a, lda, xact, lda,
505 $ b, lda, iseed, info )
506 CALL zlacpy(
'Full', n, nrhs, b, lda, x, lda )
508 srnamt =
'ZSYTRS_AA_2STAGE'
509 lwork = max( 1, 3*n-2 )
511 $ ainv, (3*nb+1)*n, iwork, iwork( 1+n ),
517 IF( izero.EQ.0 )
THEN
518 CALL alaerh( path,
'ZSYTRS_AA_2STAGE',
519 $ info, 0, uplo, n, n, -1, -1,
520 $ nrhs, imat, nfail, nerrs, nout )
523 CALL zlacpy(
'Full', n, nrhs, b, lda, work, lda
528 CALL zsyt02( uplo, n, nrhs, a, lda, x, lda,
529 $ work, lda, rwork, result( 2 ) )
536 IF( result( k ).GE.thresh )
THEN
537 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
538 $
CALL alahd( nout, path )
539 WRITE( nout, fmt = 9998 )uplo, n, nrhs,
540 $ imat, k, result( k )
558 CALL alasum( path, nout, nfail, nrun, nerrs )
560 9999
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NB =', i4,
', type ',
561 $ i2,
', test ', i2,
', ratio =', g12.5 )
562 9998
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NRHS=', i3,
', type ',
563 $ i2,
', test(', i2,
') =', g12.5 )
564 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
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 zlarhs(PATH, XTYPE, UPLO, TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, ISEED, INFO)
ZLARHS
subroutine zsyt02(UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZSYT02
subroutine zsyt01(UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
ZSYT01
subroutine zlatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
ZLATB4
subroutine zchksy_aa_2stage(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSY_AA_2STAGE
subroutine zerrsy(PATH, NUNIT)
ZERRSY
subroutine zlatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
ZLATMS
subroutine zlacpy(UPLO, M, N, A, LDA, B, LDB)
ZLACPY copies all or part of one two-dimensional array to another.
subroutine zsytrf_aa_2stage(UPLO, N, A, LDA, TB, LTB, IPIV, IPIV2, WORK, LWORK, INFO)
ZSYTRF_AA_2STAGE
subroutine zsytrs_aa_2stage(UPLO, N, NRHS, A, LDA, TB, LTB, IPIV, IPIV2, B, LDB, INFO)
ZSYTRS_AA_2STAGE