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 A( * ), AFAC( * ), AINV( * ), B( * ),
187 $ work( * ), x( * ), xact( * )
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 precision'
249 matpath( 2: 3 ) =
'SY'
254 iseed( i ) = iseedy( i )
260 $
CALL cerrsy( path, nout )
272 IF( n .GT. nmax )
THEN
274 WRITE(nout, 9995)
'M ', n, nmax
287 DO 170 imat = 1, nimat
291 IF( .NOT.dotype( imat ) )
296 zerot = imat.GE.3 .AND. imat.LE.6
297 IF( zerot .AND. n.LT.imat-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 ELSE IF( imat.EQ.4 )
THEN
349 IF( iuplo.EQ.1 )
THEN
350 ioff = ( izero-1 )*lda
351 DO 20 i = 1, izero - 1
361 DO 40 i = 1, izero - 1
371 IF( iuplo.EQ.1 )
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 IF( result( k ).GE.thresh )
THEN
471 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
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 IF( izero.EQ.0 )
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 IF( result( k ).GE.thresh )
THEN
532 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
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 alasum(type, nout, nfail, nrun, nerrs)
ALASUM
subroutine clarhs(path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info)
CLARHS
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine alaerh(path, subnam, info, infoe, opts, m, n, kl, ku, n5, imat, nfail, nerrs, nout)
ALAERH
subroutine alahd(iounit, path)
ALAHD
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 cerrsy(path, nunit)
CERRSY
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
subroutine csyt01_aa(uplo, n, a, lda, afac, ldafac, ipiv, c, ldc, rwork, resid)
CSYT01
subroutine csyt02(uplo, n, nrhs, a, lda, x, ldx, b, ldb, rwork, resid)
CSYT02
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 clacpy(uplo, m, n, a, lda, b, ldb)
CLACPY copies all or part of one two-dimensional array to another.