Skip to content

Commit ef3b282

Browse files
committed
adding double precision testing
1 parent 06312aa commit ef3b282

10 files changed

Lines changed: 188 additions & 60 deletions

File tree

TESTING/LIN/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,15 +153,15 @@ endif()
153153
set(ZLINTST zchkaa.f
154154
zchkeq.f zchkgb.f zchkge.f zchkgt.f
155155
zchkhe.f zchkhe_rook.f zchkhe_rk.f
156-
zchkhe_aa.f
156+
zchkhe_aa.f zchkhe_aa_2stage.f
157157
zchkhp.f zchklq.f zchkpb.f
158158
zchkpo.f zchkps.f zchkpp.f zchkpt.f zchkq3.f zchkql.f
159159
zchkqr.f zchkrq.f zchksp.f zchksy.f zchksy_rook.f zchksy_rk.f
160160
zchksy_aa.f
161161
zchktb.f
162162
zchktp.f zchktr.f zchktz.f
163163
zdrvgt.f zdrvhe_rook.f zdrvhe_rk.f
164-
zdrvhe_aa.f
164+
zdrvhe_aa.f zdrvhe_aa_2stage.f
165165
zdrvhp.f
166166
zdrvls.f zdrvpb.f zdrvpp.f zdrvpt.f
167167
zdrvsp.f zdrvsy_rook.f zdrvsy_rk.f

TESTING/LIN/Makefile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,13 @@ endif
180180

181181
ZLINTST = zchkaa.o \
182182
zchkeq.o zchkgb.o zchkge.o zchkgt.o \
183-
zchkhe.o zchkhe_rook.o zchkhe_rk.o zchkhe_aa.o zchkhp.o zchklq.o zchkpb.o \
183+
zchkhe.o zchkhe_rook.o zchkhe_rk.o zchkhe_aa.o zchkhe_aa_2stage.o \
184+
zchkhp.o zchklq.o zchkpb.o \
184185
zchkpo.o zchkps.o zchkpp.o zchkpt.o zchkq3.o zchkql.o \
185-
zchkqr.o zchkrq.o zchksp.o zchksy.o zchksy_rook.o zchksy_rk.o zchksy_aa.o zchktb.o \
186+
zchkqr.o zchkrq.o zchksp.o zchksy.o zchksy_rook.o zchksy_rk.o \
187+
zchksy_aa.o zchktb.o \
186188
zchktp.o zchktr.o zchktz.o \
187-
zdrvgt.o zdrvhe_rook.o zdrvhe_rk.o zdrvhe_aa.o zdrvhp.o \
189+
zdrvgt.o zdrvhe_rook.o zdrvhe_rk.o zdrvhe_aa.o zdrvhe_aa_2stage.o zdrvhp.o \
188190
zdrvls.o zdrvpb.o zdrvpp.o zdrvpt.o \
189191
zdrvsp.o zdrvsy_rook.o zdrvsy_rk.o zdrvsy_aa.o \
190192
zerrgt.o zerrlq.o \

TESTING/LIN/cerrhe.f

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,7 @@ SUBROUTINE CERRHE( PATH, NUNIT )
520520
INFOT = 10
521521
CALL CHETRS_AA( 'U', 2, 1, A, 2, IP, B, 2, W, -2, INFO )
522522
CALL CHKXER( 'CHETRS_AA', INFOT, NOUT, LERR, OK )
523+
*
523524
ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN
524525
*
525526
* Test error exits of the routines that use factorization

TESTING/LIN/schksy_aa_2stage.f

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -465,9 +465,10 @@ SUBROUTINE SCHKSY_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
465465
*+ TEST 1
466466
* Reconstruct matrix from factors and compute residual.
467467
*
468-
CALL SSYT01_AA( UPLO, N, A, LDA, AFAC, LDA, IWORK,
469-
$ AINV, LDA, RWORK, RESULT( 1 ) )
470-
NT = 1
468+
* CALL SSYT01_AA( UPLO, N, A, LDA, AFAC, LDA, IWORK,
469+
* $ AINV, LDA, RWORK, RESULT( 1 ) )
470+
* NT = 1
471+
NT = 0
471472
*
472473
*
473474
* Print information about the tests that did not pass

TESTING/LIN/zchkaa.f

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
*> ZHR 10 List types on next line if 0 < NTYPES < 10
5454
*> ZHK 10 List types on next line if 0 < NTYPES < 10
5555
*> ZHA 10 List types on next line if 0 < NTYPES < 10
56+
*> ZH2 10 List types on next line if 0 < NTYPES < 10
5657
*> ZHP 10 List types on next line if 0 < NTYPES < 10
5758
*> ZSY 11 List types on next line if 0 < NTYPES < 11
5859
*> ZSR 11 List types on next line if 0 < NTYPES < 11
@@ -168,10 +169,11 @@ PROGRAM ZCHKAA
168169
$ ZCHKSY_ROOK, ZCHKSY_RK, ZCHKSY_AA, ZCHKTB,
169170
$ ZCHKTP, ZCHKTR, ZCHKTZ, ZDRVGB, ZDRVGE, ZDRVGT,
170171
$ ZDRVHE, ZDRVHE_ROOK, ZDRVHE_RK, ZDRVHE_AA,
171-
$ ZDRVHP, ZDRVLS, ZDRVPB, ZDRVPO, ZDRVPP, ZDRVPT,
172-
$ ZDRVSP, ZDRVSY, ZDRVSY_ROOK, ZDRVSY_RK,
173-
$ ZDRVSY_AA, ILAVER, ZCHKQRT, ZCHKQRTP, ZCHKLQT,
174-
$ ZCHKLQTP, ZCHKTSQR
172+
$ ZDRVHE_AA_2STAGE, ZDRVHP, ZDRVLS, ZDRVPB,
173+
$ ZDRVPO, ZDRVPP, ZDRVPT, ZDRVSP, ZDRVSY,
174+
$ ZDRVSY_ROOK, ZDRVSY_RK, ZDRVSY_AA,
175+
$ ZDRVSY_AA_2STAGE, ILAVER, ZCHKQRT, ZCHKQRTP,
176+
$ ZCHKLQT, ZCHKLQTP, ZCHKTSQR
175177
* ..
176178
* .. Scalars in Common ..
177179
LOGICAL LERR, OK
@@ -700,8 +702,8 @@ PROGRAM ZCHKAA
700702
*
701703
ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN
702704
*
703-
* HA: Hermitian indefinite matrices,
704-
* with partial (Aasen's) pivoting algorithm
705+
* HA: Hermitian matrices,
706+
* Aasen Algorithm
705707
*
706708
NTYPES = 10
707709
CALL ALAREQ( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
@@ -724,6 +726,35 @@ PROGRAM ZCHKAA
724726
ELSE
725727
WRITE( NOUT, FMT = 9988 )PATH
726728
END IF
729+
*
730+
ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN
731+
*
732+
* H2: Hermitian matrices,
733+
* with partial (Aasen's) pivoting algorithm
734+
*
735+
NTYPES = 10
736+
CALL ALAREQ( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
737+
*
738+
IF( TSTCHK ) THEN
739+
CALL ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB2, NBVAL2,
740+
$ NNS, NSVAL, THRESH, TSTERR, LDA,
741+
$ A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
742+
$ B( 1, 1 ), B( 1, 2 ), B( 1, 3 ),
743+
$ WORK, RWORK, IWORK, NOUT )
744+
ELSE
745+
WRITE( NOUT, FMT = 9989 )PATH
746+
END IF
747+
*
748+
IF( TSTDRV ) THEN
749+
CALL ZDRVHE_AA_2STAGE(
750+
$ DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR,
751+
$ LDA, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
752+
$ B( 1, 1 ), B( 1, 2 ), B( 1, 3 ),
753+
$ WORK, RWORK, IWORK, NOUT )
754+
ELSE
755+
WRITE( NOUT, FMT = 9988 )PATH
756+
END IF
757+
*
727758
*
728759
ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
729760
*

TESTING/LIN/zchkhe_aa_2stage.f

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@
1616
* .. Scalar Arguments ..
1717
* LOGICAL TSTERR
1818
* INTEGER NMAX, NN, NNB, NNS, NOUT
19-
* COMPLEX*16 THRESH
19+
* DOUBLE PRECISION THRESH
2020
* ..
2121
* .. Array Arguments ..
2222
* LOGICAL DOTYPE( * )
2323
* INTEGER IWORK( * ), NBVAL( * ), NSVAL( * ), NVAL( * )
24+
* DOUBLE PRECISION RWORK( * )
2425
* COMPLEX*16 A( * ), AFAC( * ), AINV( * ), B( * ),
25-
* $ RWORK( * ), WORK( * ), X( * ), XACT( * )
26+
* $ WORK( * ), X( * ), XACT( * )
2627
* ..
2728
*
2829
*
@@ -83,7 +84,7 @@
8384
*>
8485
*> \param[in] THRESH
8586
*> \verbatim
86-
*> THRESH is COMPLEX*16
87+
*> THRESH is DOUBLE PRECISION
8788
*> The threshold value for the test ratios. A result is
8889
*> included in the output file if RESULT >= THRESH. To have
8990
*> every test ratio printed, use THRESH = 0.
@@ -140,7 +141,7 @@
140141
*>
141142
*> \param[out] RWORK
142143
*> \verbatim
143-
*> RWORK is COMPLEX*16 array, dimension (max(NMAX,2*NSMAX))
144+
*> RWORK is DOUBLE PRECISION array, dimension (max(NMAX,2*NSMAX))
144145
*> \endverbatim
145146
*>
146147
*> \param[out] IWORK
@@ -181,7 +182,7 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
181182
* .. Scalar Arguments ..
182183
LOGICAL TSTERR
183184
INTEGER NN, NNB, NNS, NMAX, NOUT
184-
REAL THRESH
185+
DOUBLE PRECISION THRESH
185186
* ..
186187
* .. Array Arguments ..
187188
LOGICAL DOTYPE( * )
@@ -193,9 +194,10 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
193194
* =====================================================================
194195
*
195196
* .. Parameters ..
196-
COMPLEX*16 ZERO, ONE
197-
PARAMETER ( ZERO = ( 0.0D+0, 0.0D+0 ),
198-
$ ONE = ( 1.0D+0, 0.0D+0 ) )
197+
DOUBLE PRECISION ZERO
198+
PARAMETER ( ZERO = 0.0D+0 )
199+
COMPLEX*16 CZERO
200+
PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ) )
199201
INTEGER NTYPES
200202
PARAMETER ( NTYPES = 10 )
201203
INTEGER NTESTS
@@ -208,16 +210,16 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
208210
INTEGER I, I1, I2, IMAT, IN, INB, INFO, IOFF, IRHS,
209211
$ IUPLO, IZERO, J, K, KL, KU, LDA, LWORK, MODE,
210212
$ N, NB, NERRS, NFAIL, NIMAT, NRHS, NRUN, NT
211-
COMPLEX*16 ANORM, CNDNUM
213+
DOUBLE PRECISION ANORM, CNDNUM
212214
* ..
213215
* .. Local Arrays ..
214216
CHARACTER UPLOS( 2 )
215217
INTEGER ISEED( 4 ), ISEEDY( 4 )
216-
REAL RESULT( NTESTS )
218+
DOUBLE PRECISION RESULT( NTESTS )
217219
* ..
218220
* .. External Subroutines ..
219-
EXTERNAL ALAERH, ALAHD, ALASUM, ZERRHE, ZLACPY, ZLARHS,
220-
$ ZLATB4, ZLATMS, ZPOT02, ZHET01,
221+
EXTERNAL ALAERH, ALAHD, ALASUM, ZERRHE, ZLACPY,
222+
$ ZLARHS, ZLATB4, ZLATMS, ZPOT02,
221223
$ ZHETRF_AA_2STAGE, ZHETRS_AA_2STAGE,
222224
$ XLAENV
223225
* ..
@@ -352,22 +354,22 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
352354
IF( IUPLO.EQ.1 ) THEN
353355
IOFF = ( IZERO-1 )*LDA
354356
DO 20 I = 1, IZERO - 1
355-
A( IOFF+I ) = ZERO
357+
A( IOFF+I ) = CZERO
356358
20 CONTINUE
357359
IOFF = IOFF + IZERO
358360
DO 30 I = IZERO, N
359-
A( IOFF ) = ZERO
361+
A( IOFF ) = CZERO
360362
IOFF = IOFF + LDA
361363
30 CONTINUE
362364
ELSE
363365
IOFF = IZERO
364366
DO 40 I = 1, IZERO - 1
365-
A( IOFF ) = ZERO
367+
A( IOFF ) = CZERO
366368
IOFF = IOFF + LDA
367369
40 CONTINUE
368370
IOFF = IOFF - IZERO
369371
DO 50 I = IZERO, N
370-
A( IOFF+I ) = ZERO
372+
A( IOFF+I ) = CZERO
371373
50 CONTINUE
372374
END IF
373375
ELSE
@@ -379,7 +381,7 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
379381
DO 70 J = 1, N
380382
I2 = MIN( J, IZERO )
381383
DO 60 I = 1, I2
382-
A( IOFF+I ) = ZERO
384+
A( IOFF+I ) = CZERO
383385
60 CONTINUE
384386
IOFF = IOFF + LDA
385387
70 CONTINUE
@@ -392,7 +394,7 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
392394
DO 90 J = 1, N
393395
I1 = MAX( J, IZERO )
394396
DO 80 I = I1, N
395-
A( IOFF+I ) = ZERO
397+
A( IOFF+I ) = CZERO
396398
80 CONTINUE
397399
IOFF = IOFF + LDA
398400
90 CONTINUE
@@ -464,10 +466,11 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
464466
*+ TEST 1
465467
* Reconstruct matrix from factors and compute residual.
466468
*
467-
CALL DSYT01_AA( UPLO, N, A, LDA, AFAC, LDA, IWORK,
468-
$ AINV, LDA, RWORK, RESULT( 1 ) )
469-
NT = 1
470-
* NT = 0
469+
* NEED TO CREATE ZHET01_AA_2STAGE
470+
* CALL ZHET01_AA( UPLO, N, A, LDA, AFAC, LDA, IWORK,
471+
* $ AINV, LDA, RWORK, RESULT( 1 ) )
472+
* NT = 1
473+
NT = 0
471474
*
472475
*
473476
* Print information about the tests that did not pass
@@ -513,7 +516,7 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
513516
$ AINV, (3*NB+1)*N, IWORK, IWORK( 1+N ),
514517
$ X, LDA, INFO )
515518
*
516-
* Check error code from CHETRS and handle error.
519+
* Check error code from ZHETRS and handle error.
517520
*
518521
IF( INFO.NE.0 ) THEN
519522
IF( IZERO.EQ.0 ) THEN
@@ -522,6 +525,7 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
522525
$ NRHS, IMAT, NFAIL, NERRS, NOUT )
523526
END IF
524527
ELSE
528+
*
525529
CALL ZLACPY( 'Full', N, NRHS, B, LDA, WORK, LDA
526530
$ )
527531
*
@@ -530,7 +534,6 @@ SUBROUTINE ZCHKHE_AA_2STAGE( DOTYPE, NN, NVAL, NNB, NBVAL, NNS,
530534
CALL ZPOT02( UPLO, N, NRHS, A, LDA, X, LDA,
531535
$ WORK, LDA, RWORK, RESULT( 2 ) )
532536
*
533-
*
534537
* Print information about the tests that did not pass
535538
* the threshold.
536539
*

0 commit comments

Comments
 (0)