Skip to content

Commit e3b58c4

Browse files
committed
added testing code for DGEQP3RK
1 parent c037c32 commit e3b58c4

File tree

9 files changed

+1127
-28
lines changed

9 files changed

+1127
-28
lines changed

TESTING/LIN/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ set(ZLINTST zchkaa.F
158158
zchkhe.f zchkhe_rook.f zchkhe_rk.f
159159
zchkhe_aa.f zchkhe_aa_2stage.f
160160
zchkhp.f zchklq.f zchkpb.f
161-
zchkpo.f zchkps.f zchkpp.f zchkpt.f zchkq3.f zchkql.f
161+
zchkpo.f zchkps.f zchkpp.f zchkpt.f zchkq3.f zchkq3rk.f zchkql.f
162162
zchkqr.f zchkrq.f zchksp.f zchksy.f zchksy_rook.f zchksy_rk.f
163163
zchksy_aa.f zchksy_aa_2stage.f
164164
zchktb.f

TESTING/LIN/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ ZLINTST = zchkaa.o \
182182
zchkeq.o zchkgb.o zchkge.o zchkgt.o \
183183
zchkhe.o zchkhe_rook.o zchkhe_rk.o zchkhe_aa.o zchkhe_aa_2stage.o \
184184
zchkhp.o zchklq.o zchkpb.o \
185-
zchkpo.o zchkps.o zchkpp.o zchkpt.o zchkq3.o zchkql.o \
185+
zchkpo.o zchkps.o zchkpp.o zchkpt.o zchkq3.o zchkqp3rk.o zchkql.o \
186186
zchkqr.o zchkrq.o zchksp.o zchksy.o zchksy_rook.o zchksy_rk.o \
187187
zchksy_aa.o zchksy_aa_2stage.o zchktb.o \
188188
zchktp.o zchktr.o zchktz.o \

TESTING/LIN/zchkaa.F

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
*> ZLQ 8 List types on next line if 0 < NTYPES < 8
7070
*> ZQL 8 List types on next line if 0 < NTYPES < 8
7171
*> ZQP 6 List types on next line if 0 < NTYPES < 6
72+
*> ZQK 19 List types on next line if 0 < NTYPES < 19
7273
*> ZTZ 3 List types on next line if 0 < NTYPES < 3
7374
*> ZLS 6 List types on next line if 0 < NTYPES < 6
7475
*> ZEQ
@@ -153,12 +154,11 @@ PROGRAM ZCHKAA
153154
$ NBVAL( MAXIN ), NBVAL2( MAXIN ),
154155
$ NSVAL( MAXIN ), NVAL( MAXIN ), NXVAL( MAXIN ),
155156
$ RANKVAL( MAXIN ), PIV( NMAX )
156-
DOUBLE PRECISION S( 2*NMAX )
157157
COMPLEX*16 E( NMAX )
158158
*
159159
* .. Allocatable Arrays ..
160160
INTEGER AllocateStatus
161-
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: RWORK
161+
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE:: RWORK, S
162162
COMPLEX*16, DIMENSION(:,:), ALLOCATABLE:: A, B, WORK
163163
* ..
164164
* .. External Functions ..
@@ -170,8 +170,8 @@ PROGRAM ZCHKAA
170170
EXTERNAL ALAREQ, ZCHKEQ, ZCHKGB, ZCHKGE, ZCHKGT, ZCHKHE,
171171
$ ZCHKHE_ROOK, ZCHKHE_RK, ZCHKHE_AA, ZCHKHP,
172172
$ ZCHKLQ, ZCHKUNHR_COL, ZCHKPB, ZCHKPO, ZCHKPS,
173-
$ ZCHKPP, ZCHKPT, ZCHKQ3, ZCHKQL, ZCHKQR, ZCHKRQ,
174-
$ ZCHKSP, ZCHKSY, ZCHKSY_ROOK, ZCHKSY_RK,
173+
$ ZCHKPP, ZCHKPT, ZCHKQ3, ZCHKQP3RK, ZCHKQL, ZCHKQR,
174+
$ ZCHKRQ, ZCHKSP, ZCHKSY, ZCHKSY_ROOK, ZCHKSY_RK,
175175
$ ZCHKSY_AA, ZCHKTB, ZCHKTP, ZCHKTR, ZCHKTZ,
176176
$ ZDRVGB, ZDRVGE, ZDRVGT, ZDRVHE, ZDRVHE_ROOK,
177177
$ ZDRVHE_RK, ZDRVHE_AA, ZDRVHE_AA_2STAGE, ZDRVHP,
@@ -197,14 +197,16 @@ PROGRAM ZCHKAA
197197
DATA THREQ / 2.0D0 / , INTSTR / '0123456789' /
198198
*
199199
* .. Allocate memory dynamically ..
200-
ALLOCATE (RWORK( 150*NMAX+2*MAXRHS ), STAT = AllocateStatus)
201-
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
202200
ALLOCATE (A ((KDMAX+1) * NMAX, 7), STAT = AllocateStatus)
203201
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
204202
ALLOCATE (B (NMAX * MAXRHS, 4), STAT = AllocateStatus)
205203
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
206204
ALLOCATE (WORK (NMAX, NMAX+MAXRHS+10), STAT = AllocateStatus)
207205
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
206+
ALLOCATE (S( 2*NMAX ), STAT = AllocateStatus)
207+
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
208+
ALLOCATE (RWORK( 150*NMAX+2*MAXRHS ), STAT = AllocateStatus)
209+
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
208210
* ..
209211
* .. Executable Statements ..
210212
*
@@ -1109,6 +1111,23 @@ PROGRAM ZCHKAA
11091111
ELSE
11101112
WRITE( NOUT, FMT = 9989 )PATH
11111113
END IF
1114+
*
1115+
ELSE IF( LSAMEN( 2, C2, 'QK' ) ) THEN
1116+
*
1117+
* QK: truncated QR factorization with pivoting
1118+
*
1119+
NTYPES = 19
1120+
CALL ALAREQ( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
1121+
*
1122+
IF( TSTCHK ) THEN
1123+
CALL ZCHKQP3RK( DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL,
1124+
$ NNB, NBVAL, NXVAL, THRESH, A( 1, 1 ),
1125+
$ A( 1, 2 ), B( 1, 1 ), B( 1, 2 ),
1126+
$ S( 1 ), B( 1, 4 ),
1127+
$ WORK, RWORK, IWORK, NOUT )
1128+
ELSE
1129+
WRITE( NOUT, FMT = 9989 )PATH
1130+
END IF
11121131
*
11131132
ELSE IF( LSAMEN( 2, C2, 'LS' ) ) THEN
11141133
*

0 commit comments

Comments
 (0)