171 SUBROUTINE zchksy_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
185 DOUBLE PRECISION THRESH
189 INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
190 DOUBLE PRECISION RWORK( * )
191 COMPLEX*16 A( * ), AFAC( * ), AINV( * ), B( * ),
192 $ work( * ), x( * ), xact( * )
198 DOUBLE PRECISION ZERO
199 parameter( zero = 0.0d+0 )
201 parameter( czero = 0.0e+0 )
203 parameter( ntypes = 10 )
205 parameter( ntests = 9 )
209 CHARACTER DIST,
TYPE, UPLO, XTYPE
210 CHARACTER*3 PATH, MATPATH
211 INTEGER I, I1, I2, IMAT, IN, INB, INFO, IOFF, IRHS,
212 $ iuplo, izero, j, k, kl, ku, lda, lwork, mode,
213 $ n, nb, nerrs, nfail, nimat, nrhs, nrun, nt
214 DOUBLE PRECISION ANORM, CNDNUM
218 INTEGER ISEED( 4 ), ISEEDY( 4 )
219 DOUBLE PRECISION RESULT( ntests )
235 COMMON / infoc / infot, nunit, ok, lerr
236 COMMON / srnamc / srnamt
239 DATA iseedy / 1988, 1989, 1990, 1991 /
240 DATA uplos /
'U',
'L' /
248 path( 1: 1 ) =
'Zomplex precision' 253 matpath( 1: 1 ) =
'Zomplex precision' 254 matpath( 2: 3 ) =
'SY' 259 iseed( i ) = iseedy( i )
265 $
CALL zerrsy( path, nout )
277 IF( n .GT. nmax )
THEN 279 WRITE(nout, 9995)
'M ', n, nmax
292 DO 170 imat = 1, nimat
296 IF( .NOT.dotype( imat ) )
301 zerot = imat.GE.3 .AND. imat.LE.6
302 IF( zerot .AND. n.LT.imat-2 )
308 uplo = uplos( iuplo )
316 CALL zlatb4( matpath, imat, n, n,
TYPE, KL, KU,
317 $ anorm, mode, cndnum, dist )
322 CALL zlatms( n, n, dist, iseed,
TYPE, RWORK, MODE,
323 $ cndnum, anorm, kl, ku, uplo, a, lda, work,
329 CALL alaerh( path,
'ZLATMS', info, 0, uplo, n, n, -1,
330 $ -1, -1, imat, nfail, nerrs, nout )
344 ELSE IF( imat.EQ.4 )
THEN 354 IF( iuplo.EQ.1 )
THEN 355 ioff = ( izero-1 )*lda
356 DO 20 i = 1, izero - 1
366 DO 40 i = 1, izero - 1
376 IF( iuplo.EQ.1 )
THEN 423 CALL zlacpy( uplo, n, n, a, lda, afac, lda )
431 lwork = max( 1, n*nb + n )
432 CALL zsytrf_aa( uplo, n, afac, lda, iwork, ainv,
458 CALL alaerh( path,
'ZSYTRF_AA', info, k, uplo,
459 $ n, n, -1, -1, nb, imat, nfail, nerrs,
466 CALL zsyt01_aa( uplo, n, a, lda, afac, lda, iwork,
467 $ ainv, lda, rwork, result( 1 ) )
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 )
509 lwork = max( 1, 3*n-2 )
510 CALL zsytrs_aa( uplo, n, nrhs, afac, lda,
511 $ iwork, x, lda, work, lwork,
517 IF( izero.EQ.0 )
THEN 518 CALL alaerh( path,
'ZSYTRS_AA', info, 0,
519 $ uplo, n, n, -1, -1, nrhs, imat,
520 $ 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 alahd(IOUNIT, PATH)
ALAHD
subroutine zerrsy(PATH, NUNIT)
ZERRSY
subroutine zchksy_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
ZCHKSY_AA
subroutine alaerh(PATH, SUBNAM, INFO, INFOE, OPTS, M, N, KL, KU, N5, IMAT, NFAIL, NERRS, NOUT)
ALAERH
subroutine zsytrf_aa(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
ZSYTRF_AA
subroutine zlacpy(UPLO, M, N, A, LDA, B, LDB)
ZLACPY copies all or part of one two-dimensional array to another.
subroutine zlatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
ZLATB4
subroutine zsyt02(UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
ZSYT02
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
subroutine zsytrs_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
ZSYTRS_AA
subroutine zlatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
ZLATMS
subroutine zsyt01_aa(UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
ZSYT01
subroutine zlarhs(PATH, XTYPE, UPLO, TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, ISEED, INFO)
ZLARHS
subroutine alasum(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASUM