167 SUBROUTINE cchksy_aa( DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL,
168 $ THRESH, TSTERR, NMAX, A, AFAC, AINV, B,
169 $ X, XACT, WORK, RWORK, IWORK, NOUT )
179 INTEGER NN, NNB, NNS, NMAX, NOUT
184 INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
186 COMPLEX ( * ), AINV( * ), B( * ),
194 PARAMETER ( ZERO = 0.0d+0 )
196 parameter( czero = 0.0e+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
213 INTEGER ISEED( 4 ), ISEEDY( 4 )
214 REAL RESULT( NTESTS )
230 COMMON / infoc / infot, nunit, ok, lerr
231 COMMON / srnamc / srnamt
234 DATA iseedy / 1988, 1989, 1990, 1991 /
235 DATA uplos / 'u
', 'l
' /
243 PATH( 1: 1 ) = 'Complex precision
'
248 MATPATH( 1: 1 ) = 'Complex '
249 MATPATH( 2: 3 ) = 'SY
'
254 ISEED( I ) = ISEEDY( I )
260 $ CALL CERRSY( PATH, NOUT )
272.GT.
IF( N NMAX ) THEN
274 WRITE(NOUT, 9995) 'M
', N, NMAX
287 DO 170 IMAT = 1, NIMAT
291.NOT.
IF( DOTYPE( IMAT ) )
296.GE..AND..LE.
ZEROT = IMAT3 IMAT6
297.AND..LT.
IF( ZEROT NIMAT-2 )
303 UPLO = UPLOS( IUPLO )
311 CALL CLATB4( MATPATH, IMAT, N, N, TYPE, KL, KU,
312 $ ANORM, MODE, CNDNUM, DIST )
317 CALL CLATMS( N, N, DIST, ISEED, TYPE, RWORK, MODE,
318 $ CNDNUM, ANORM, KL, KU, UPLO, A, LDA, WORK,
324 CALL ALAERH( PATH, 'CLATMS
', INFO, 0, UPLO, N, N, -1,
325 $ -1, -1, IMAT, NFAIL, NERRS, NOUT )
339.EQ.
ELSE IF( IMAT4 ) THEN
349.EQ.
IF( IUPLO1 ) THEN
350 IOFF = ( IZERO-1 )*LDA
351 DO 20 I = 1, IZERO - 1
361 DO 40 I = 1, IZERO - 1
371.EQ.
IF( IUPLO1 ) THEN
418 CALL CLACPY( UPLO, N, N, A, LDA, AFAC, LDA )
426 LWORK = MAX( 1, N*NB + N )
427 CALL CSYTRF_AA( UPLO, N, AFAC, LDA, IWORK, AINV,
453 CALL ALAERH( PATH, 'CSYTRF_AA
', INFO, K, UPLO,
454 $ N, N, -1, -1, NB, IMAT, NFAIL, NERRS,
461 CALL CSYT01_AA( UPLO, N, A, LDA, AFAC, LDA, IWORK,
462 $ AINV, LDA, RWORK, RESULT( 1 ) )
470.GE.
IF( RESULT( K )THRESH ) THEN
471.EQ..AND..EQ.
IF( NFAIL0 NERRS0 )
472 $ CALL ALAHD( NOUT, PATH )
473 WRITE( NOUT, FMT = 9999 )UPLO, N, NB, IMAT, K,
498 CALL CLARHS( MATPATH, XTYPE, UPLO, ' ', N, N,
499 $ KL, KU, NRHS, A, LDA, XACT, LDA,
500 $ B, LDA, ISEED, INFO )
501 CALL CLACPY( 'Full
', N, NRHS, B, LDA, X, LDA )
504 LWORK = MAX( 1, 3*N-2 )
505 CALL CSYTRS_AA( UPLO, N, NRHS, AFAC, LDA,
506 $ IWORK, X, LDA, WORK, LWORK,
512.EQ.
IF( IZERO0 ) THEN
513 CALL ALAERH( PATH, 'CSYTRS_AA
', INFO, 0,
514 $ UPLO, N, N, -1, -1, NRHS, IMAT,
515 $ NFAIL, NERRS, NOUT )
518 CALL CLACPY( 'Full
', N, NRHS, B, LDA, WORK, LDA
523 CALL CSYT02( UPLO, N, NRHS, A, LDA, X, LDA,
524 $ WORK, LDA, RWORK, RESULT( 2 ) )
531.GE.
IF( RESULT( K )THRESH ) THEN
532.EQ..AND..EQ.
IF( NFAIL0 NERRS0 )
533 $ CALL ALAHD( NOUT, PATH )
534 WRITE( NOUT, FMT = 9998 )UPLO, N, NRHS,
535 $ IMAT, K, RESULT( K )
553 CALL ALASUM( PATH, NOUT, NFAIL, NRUN, NERRS )
555 9999 FORMAT( ' UPLO =
''', A1, ''', n =
', I5, ', nb =
', I4, ',
type ',
556 $ I2, ', test
', I2, ', ratio =
', G12.5 )
557 9998 FORMAT( ' uplo =
''', A1, ''', n =
', I5, ', nrhs=
', I3, ',
type ',
558 $ I2, ', test(
', I2, ') =
', G12.5 )
559 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 clacpy(uplo, m, n, a, lda, b, ldb)
CLACPY copies all or part of one two-dimensional array to another.
subroutine csytrf_aa(uplo, n, a, lda, ipiv, work, lwork, info)
CSYTRF_AA
subroutine csytrs_aa(uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info)
CSYTRS_AA
subroutine clarhs(path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info)
CLARHS
subroutine cerrsy(path, nunit)
CERRSY
subroutine csyt01_aa(uplo, n, a, lda, afac, ldafac, ipiv, c, ldc, rwork, resid)
CSYT01
subroutine cchksy_aa(dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout)
CCHKSY_AA
subroutine csyt02(uplo, n, nrhs, a, lda, x, ldx, b, ldb, rwork, resid)
CSYT02
subroutine clatb4(path, imat, m, n, type, kl, ku, anorm, mode, cndnum, dist)
CLATB4
subroutine clatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
CLATMS