168 SUBROUTINE zchksy_aa( DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL,
169 $ THRESH, TSTERR, NMAX, A, AFAC, AINV, B,
170 $ X, XACT, WORK, RWORK, IWORK, NOUT )
180 INTEGER NN, NNB, NNS, NMAX, NOUT
181 DOUBLE PRECISION THRESH
185 INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
186 DOUBLE PRECISION RWORK( * )
187 COMPLEX*16 A( * ), AFAC( * ), AINV( * ), B( * ),
188 $ work( * ), x( * ), xact( * )
194 DOUBLE PRECISION ZERO
195 PARAMETER ( ZERO = 0.0d+0 )
197 parameter( czero = ( 0.0d+0, 0.0d+0 ) )
199 parameter( ntypes = 10 )
201 parameter( ntests = 9 )
205 CHARACTER DIST,
TYPE, UPLO, XTYPE
206 CHARACTER*3 PATH, MATPATH
207 INTEGER I, I1, I2, IMAT, IN, INB, INFO, IOFF, IRHS,
208 $ iuplo, izero, j, k, kl, ku, lda, lwork, mode,
209 $ n, nb, nerrs, nfail, nimat, nrhs, nrun, nt
210 DOUBLE PRECISION ANORM, CNDNUM
214 INTEGER ISEED( 4 ), ISEEDY( 4 )
215 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 )
427 lwork = max( 1, n*nb + n )
428 CALL zsytrf_aa( uplo, n, afac, lda, iwork, ainv,
454 CALL alaerh( path,
'ZSYTRF_AA', info, k, uplo,
455 $ n, n, -1, -1, nb, imat, nfail, nerrs,
462 CALL zsyt01_aa( uplo, n, a, lda, afac, lda, iwork,
463 $ ainv, lda, rwork, result( 1 ) )
471 IF( result( k ).GE.thresh )
THEN
472 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
473 $
CALL alahd( nout, path )
474 WRITE( nout, fmt = 9999 )uplo, n, nb, imat, k,
499 CALL zlarhs( matpath, xtype, uplo,
' ', n, n,
500 $ kl, ku, nrhs, a, lda, xact, lda,
501 $ b, lda, iseed, info )
502 CALL zlacpy(
'Full', n, nrhs, b, lda, x, lda )
505 lwork = max( 1, 3*n-2 )
506 CALL zsytrs_aa( uplo, n, nrhs, afac, lda,
507 $ iwork, x, lda, work, lwork,
513 IF( izero.EQ.0 )
THEN
514 CALL alaerh( path,
'ZSYTRS_AA', info, 0,
515 $ uplo, n, n, -1, -1, nrhs, imat,
516 $ nfail, nerrs, nout )
519 CALL zlacpy(
'Full', n, nrhs, b, lda, work, lda
524 CALL zsyt02( uplo, n, nrhs, a, lda, x, lda,
525 $ work, lda, rwork, result( 2 ) )
532 IF( result( k ).GE.thresh )
THEN
533 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
534 $
CALL alahd( nout, path )
535 WRITE( nout, fmt = 9998 )uplo, n, nrhs,
536 $ imat, k, result( k )
554 CALL alasum( path, nout, nfail, nrun, nerrs )
556 9999
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NB =', i4,
', type ',
557 $ i2,
', test ', i2,
', ratio =', g12.5 )
558 9998
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NRHS=', i3,
', type ',
559 $ i2,
', test(', i2,
') =', g12.5 )
560 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
subroutine alasum(type, nout, nfail, nrun, nerrs)
ALASUM
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine zlarhs(path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info)
ZLARHS
subroutine alaerh(path, subnam, info, infoe, opts, m, n, kl, ku, n5, imat, nfail, nerrs, nout)
ALAERH
subroutine alahd(iounit, path)
ALAHD
subroutine zsytrf_aa(uplo, n, a, lda, ipiv, work, lwork, info)
ZSYTRF_AA
subroutine zsytrs_aa(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info)
ZSYTRS_AA
subroutine zlacpy(uplo, m, n, a, lda, b, ldb)
ZLACPY copies all or part of one two-dimensional array to another.
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 zerrsy(path, nunit)
ZERRSY
subroutine zlatb4(path, imat, m, n, type, kl, ku, anorm, mode, cndnum, dist)
ZLATB4
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 zsyt02(uplo, n, nrhs, a, lda, x, ldx, b, ldb, rwork, resid)
ZSYT02