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( * ), ( * ), 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.NOT.
IF( DOTYPE( IMAT ) )
297.GE..AND..LE.
ZEROT = IMAT3 IMAT6
298.AND..LT.
IF( ZEROT NIMAT-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.EQ.
ELSE IF( IMAT4 ) THEN
350.EQ.
IF( IUPLO1 ) THEN
351 IOFF = ( IZERO-1 )*LDA
352 DO 20 I = 1, IZERO - 1
362 DO 40 I = 1, IZERO - 1
372.EQ.
IF( IUPLO1 ) 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.GE.
IF( RESULT( K )THRESH ) THEN
472.EQ..AND..EQ.
IF( NFAIL0 NERRS0 )
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.EQ.
IF( IZERO0 ) THEN
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.GE.
IF( RESULT( K )THRESH ) THEN
533.EQ..AND..EQ.
IF( NFAIL0 NERRS0 )
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 xlaenv(ispec, nvalue)
XLAENV
subroutine alasum(type, nout, nfail, nrun, nerrs)
ALASUM
subroutine alahd(iounit, path)
ALAHD
subroutine alaerh(path, subnam, info, infoe, opts, m, n, kl, ku, n5, imat, nfail, nerrs, nout)
ALAERH
subroutine zlacpy(uplo, m, n, a, lda, b, ldb)
ZLACPY copies all or part of one two-dimensional array to another.
subroutine zsytrs_aa(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info)
ZSYTRS_AA
subroutine zsytrf_aa(uplo, n, a, lda, ipiv, work, lwork, info)
ZSYTRF_AA
subroutine zlarhs(path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info)
ZLARHS
subroutine zsyt01_aa(uplo, n, a, lda, afac, ldafac, ipiv, c, ldc, rwork, resid)
ZSYT01
subroutine zerrsy(path, nunit)
ZERRSY
subroutine zsyt02(uplo, n, nrhs, a, lda, x, ldx, b, ldb, rwork, resid)
ZSYT02
subroutine zlatb4(path, imat, m, n, type, kl, ku, anorm, mode, cndnum, dist)
ZLATB4
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 zlatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
ZLATMS