154 SUBROUTINE cdrvsy_aa( DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR,
155 $ NMAX, A, AFAC, AINV, B, X, XACT, WORK,
156 $ RWORK, IWORK, NOUT )
165 INTEGER NMAX, NN, NOUT, NRHS
170 INTEGER IWORK( * ), NVAL( * )
172 COMPLEX A( * ), AFAC( * ), AINV( * ), B( * ),
173 $ work( * ), x( * ), xact( * )
180 parameter( zero = 0.0d+0 )
182 parameter( czero = 0.0e+0 )
183 INTEGER NTYPES, NTESTS
184 parameter( ntypes = 10, ntests = 3 )
186 parameter( nfact = 2 )
190 CHARACTER DIST, FACT,
TYPE, UPLO, XTYPE
191 CHARACTER*3 MATPATH, PATH
192 INTEGER I, I1, I2, IFACT, IMAT, IN, INFO, IOFF, IUPLO,
193 $ izero, j, k, kl, ku, lda, lwork, mode, n,
194 $ nb, nbmin, nerrs, nfail, nimat, nrun, nt
198 CHARACTER FACTS( nfact ), UPLOS( 2 )
199 INTEGER ISEED( 4 ), ISEEDY( 4 )
200 REAL RESULT( ntests )
204 EXTERNAL dget06, clansy
217 COMMON / infoc / infot, nunit, ok, lerr
218 COMMON / srnamc / srnamt
224 DATA iseedy / 1988, 1989, 1990, 1991 /
225 DATA uplos /
'U',
'L' / , facts /
'F',
'N' /
233 path( 1: 1 ) =
'Complex precision' 238 matpath( 1: 1 ) =
'Complex precision' 239 matpath( 2: 3 ) =
'SY' 245 iseed( i ) = iseedy( i )
247 lwork = max( 2*nmax, nmax*nrhs )
252 $
CALL cerrvx( path, nout )
272 DO 170 imat = 1, nimat
276 IF( .NOT.dotype( imat ) )
281 zerot = imat.GE.3 .AND. imat.LE.6
282 IF( zerot .AND. n.LT.imat-2 )
288 uplo = uplos( iuplo )
293 CALL clatb4( matpath, imat, n, n,
TYPE, KL, KU, ANORM,
294 $ mode, cndnum, dist )
297 CALL clatms( n, n, dist, iseed,
TYPE, RWORK, MODE,
298 $ cndnum, anorm, kl, ku, uplo, a, lda, work,
304 CALL alaerh( path,
'CLATMS', info, 0, uplo, n, n, -1,
305 $ -1, -1, imat, nfail, nerrs, nout )
315 ELSE IF( imat.EQ.4 )
THEN 325 IF( iuplo.EQ.1 )
THEN 326 ioff = ( izero-1 )*lda
327 DO 20 i = 1, izero - 1
337 DO 40 i = 1, izero - 1
348 IF( iuplo.EQ.1 )
THEN 377 DO 150 ifact = 1, nfact
381 fact = facts( ifact )
386 CALL clarhs( matpath, xtype, uplo,
' ', n, n, kl, ku,
387 $ nrhs, a, lda, xact, lda, b, lda, iseed,
393 IF( ifact.EQ.2 )
THEN 394 CALL clacpy( uplo, n, n, a, lda, afac, lda )
395 CALL clacpy(
'Full', n, nrhs, b, lda, x, lda )
400 CALL csysv_aa( uplo, n, nrhs, afac, lda, iwork,
401 $ x, lda, work, lwork, info )
406 IF( izero.GT.0 )
THEN 412 ELSE IF( iwork( j ).EQ.k )
THEN 426 CALL alaerh( path,
'CSYSV_AA ', info, k,
427 $ uplo, n, n, -1, -1, nrhs,
428 $ imat, nfail, nerrs, nout )
430 ELSE IF( info.NE.0 )
THEN 437 CALL csyt01_aa( uplo, n, a, lda, afac, lda,
438 $ iwork, ainv, lda, rwork,
443 CALL clacpy(
'Full', n, nrhs, b, lda, work, lda )
444 CALL csyt02( uplo, n, nrhs, a, lda, x, lda, work,
445 $ lda, rwork, result( 2 ) )
452 IF( result( k ).GE.thresh )
THEN 453 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
454 $
CALL aladhd( nout, path )
455 WRITE( nout, fmt = 9999 )
'CSYSV_AA ',
456 $ uplo, n, imat, k, result( k )
472 CALL alasvm( path, nout, nfail, nrun, nerrs )
474 9999
FORMAT( 1x, a,
', UPLO=''', a1,
''', N =', i5,
', type ', i2,
475 $
', test ', i2,
', ratio =', g12.5 )
subroutine alasvm(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASVM
subroutine csytrf_aa(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CSYTRF_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 claset(UPLO, M, N, ALPHA, BETA, A, LDA)
CLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...
subroutine cerrvx(PATH, NUNIT)
CERRVX
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
subroutine cdrvsy_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_AA
subroutine csysv_aa(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO)
CSYSV_AA computes the solution to system of linear equations A * X = B for SY matrices ...
subroutine csyt02(UPLO, N, NRHS, A, LDA, X, LDX, B, LDB, RWORK, RESID)
CSYT02
subroutine aladhd(IOUNIT, PATH)
ALADHD
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 cget04(N, NRHS, X, LDX, XACT, LDXACT, RCOND, RESID)
CGET04
subroutine clatb4(PATH, IMAT, M, N, TYPE, KL, KU, ANORM, MODE, CNDNUM, DIST)
CLATB4