170 $ NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV,
171 $ B, X, XACT, WORK, RWORK, IWORK, NOUT )
181 INTEGER NN, NNB, NNS, NMAX, NOUT
187 INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
189 COMPLEX A( * ), AFAC( * ), AINV( * ), B( * ),
190 $ work( * ), x( * ), xact( * )
197 PARAMETER ( ZERO = 0.0e+0 )
199 parameter( czero = ( 0.0e+0, 0.0e+0 ) )
201 parameter( ntypes = 10 )
203 parameter( ntests = 9 )
207 CHARACTER DIST,
TYPE, UPLO, XTYPE
208 CHARACTER*3 PATH, MATPATH
209 INTEGER I, I1, I2, IMAT, IN, INB, INFO, IOFF, IRHS,
210 $ iuplo, izero, j, k, kl, ku, lda, lwork, mode,
211 $ n, nb, nerrs, nfail, nimat, nrhs, nrun, nt
216 INTEGER ISEED( 4 ), ISEEDY( 4 )
217 REAL RESULT( NTESTS )
234 COMMON / infoc / infot, nunit, ok, lerr
235 COMMON / srnamc / srnamt
238 DATA iseedy / 1988, 1989, 1990, 1991 /
239 DATA uplos /
'U',
'L' /
248 path( 1: 1 ) =
'Complex precision'
253 matpath( 1: 1 ) =
'Complex precision'
254 matpath( 2: 3 ) =
'HE'
259 iseed( i ) = iseedy( i )
265 $
CALL cerrhe( 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
412 CALL claipd( n, a, lda+1, 0 )
428 CALL clacpy( uplo, n, n, a, lda, afac, lda )
435 srnamt =
'CHETRF_AA_2STAGE'
436 lwork = min(n*nb, 3*nmax*nmax)
439 $ iwork, iwork( 1+n ),
446 IF( izero.GT.0 )
THEN
452 ELSE IF( iwork( j ).EQ.k )
THEN
466 CALL alaerh( path,
'CHETRF_AA_2STAGE', info, k,
467 $ uplo, n, n, -1, -1, nb, imat, nfail,
486 IF( result( k ).GE.thresh )
THEN
487 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
488 $
CALL alahd( nout, path )
489 WRITE( nout, fmt = 9999 )uplo, n, nb, imat, k,
514 CALL clarhs( matpath, xtype, uplo,
' ', n, n,
515 $ kl, ku, nrhs, a, lda, xact, lda,
516 $ b, lda, iseed, info )
517 CALL clacpy(
'Full', n, nrhs, b, lda, x, lda )
519 srnamt =
'CHETRS_AA_2STAGE'
520 lwork = max( 1, 3*n-2 )
522 $ ainv, (3*nb+1)*n, iwork, iwork( 1+n ),
528 IF( izero.EQ.0 )
THEN
529 CALL alaerh( path,
'CHETRS_AA_2STAGE',
530 $ info, 0, uplo, n, n, -1, -1,
531 $ nrhs, imat, nfail, nerrs, nout )
534 CALL clacpy(
'Full', n, nrhs, b, lda, work, lda
539 CALL cpot02( uplo, n, nrhs, a, lda, x, lda,
540 $ work, lda, rwork, result( 2 ) )
546 IF( result( k ).GE.thresh )
THEN
547 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
548 $
CALL alahd( nout, path )
549 WRITE( nout, fmt = 9998 )uplo, n, nrhs,
550 $ imat, k, result( k )
568 CALL alasum( path, nout, nfail, nrun, nerrs )
570 9999
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NB =', i4,
', type ',
571 $ i2,
', test ', i2,
', ratio =', g12.5 )
572 9998
FORMAT(
' UPLO = ''', a1,
''', N =', i5,
', NRHS=', i3,
', type ',
573 $ i2,
', test(', i2,
') =', g12.5 )
574 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 cchkhe_aa_2stage(dotype, nn, nval, nnb, nbval, nns, nsval, thresh, tsterr, nmax, a, afac, ainv, b, x, xact, work, rwork, iwork, nout)
CCHKHE_AA_2STAGE
subroutine cerrhe(path, nunit)
CERRHE
subroutine claipd(n, a, inda, vinda)
CLAIPD
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 cpot02(uplo, n, nrhs, a, lda, x, ldx, b, ldb, rwork, resid)
CPOT02
subroutine chetrf_aa_2stage(uplo, n, a, lda, tb, ltb, ipiv, ipiv2, work, lwork, info)
CHETRF_AA_2STAGE
subroutine chetrs_aa_2stage(uplo, n, nrhs, a, lda, tb, ltb, ipiv, ipiv2, b, ldb, info)
CHETRS_AA_2STAGE
subroutine clacpy(uplo, m, n, a, lda, b, ldb)
CLACPY copies all or part of one two-dimensional array to another.