171 SUBROUTINE cchksy_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
189 INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
191 COMPLEX A( * ), AFAC( * ), AINV( * ), B( * ),
192 $ work( * ), x( * ), xact( * )
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
218 INTEGER ISEED( 4 ), ISEEDY( 4 )
219 REAL 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 ) =
'Complex precision' 253 matpath( 1: 1 ) =
'Complex precision' 254 matpath( 2: 3 ) =
'SY' 259 iseed( i ) = iseedy( i )
265 $
CALL cerrsy( 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 clatb4( matpath, imat, n, n,
TYPE, KL, KU,
317 $ anorm, mode, cndnum, dist )
322 CALL clatms( n, n, dist, iseed,
TYPE, RWORK, MODE,
323 $ cndnum, anorm, kl, ku, uplo, a, lda, work,
329 CALL alaerh( path,
'CLATMS', 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 clacpy( uplo, n, n, a, lda, afac, lda )
431 lwork = max( 1, n*nb + n )
432 CALL csytrf_aa( uplo, n, afac, lda, iwork, ainv,
458 CALL alaerh( path,
'CSYTRF_AA', info, k, uplo,
459 $ n, n, -1, -1, nb, imat, nfail, nerrs,
466 CALL csyt01_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 clarhs( matpath, xtype, uplo,
' ', n, n,
504 $ kl, ku, nrhs, a, lda, xact, lda,
505 $ b, lda, iseed, info )
506 CALL clacpy(
'Full', n, nrhs, b, lda, x, lda )
509 lwork = max( 1, 3*n-2 )
510 CALL csytrs_aa( uplo, n, nrhs, afac, lda,
511 $ iwork, x, lda, work, lwork,
517 IF( izero.EQ.0 )
THEN 518 CALL alaerh( path,
'CSYTRS_AA', info, 0,
519 $ uplo, n, n, -1, -1, nrhs, imat,
520 $ nfail, nerrs, nout )
523 CALL clacpy(
'Full', n, nrhs, b, lda, work, lda
528 CALL csyt02( 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 csytrf_aa(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CSYTRF_AA
subroutine cerrsy(PATH, NUNIT)
CERRSY
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 alaerh(PATH, SUBNAM, INFO, INFOE, OPTS, M, N, KL, KU, N5, IMAT, NFAIL, NERRS, NOUT)
ALAERH
subroutine csyt01_aa(UPLO, N, A, LDA, AFAC, LDAFAC, IPIV, C, LDC, RWORK, RESID)
CSYT01
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
subroutine csyt02(UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
CSYT02
subroutine csytrs_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
CSYTRS_AA
subroutine clacpy(UPLO, M, N, A, LDA, B, LDB)
CLACPY copies all or part of one two-dimensional array to another.
subroutine clatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
CLATMS
subroutine clarhs(PATH, XTYPE, UPLO, TRANS, M, N, KL, KU, NRHS, A, LDA, X, LDX, B, LDB, ISEED, INFO)
CLARHS
subroutine alasum(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASUM
subroutine clatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
CLATB4