Skip to content

Commit acf5d0b

Browse files
committed
l2 err overrides one-output err in errmax for exit codes in test/finufft?d_test.cpp
1 parent 353c971 commit acf5d0b

File tree

4 files changed

+25
-25
lines changed

4 files changed

+25
-25
lines changed

test/basicpassfail.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ int main() {
1414
std::vector<CPX> F(N); // alloc output mode coeffs
1515

1616
// Make the input data....................................
17-
srand(42); // seed
17+
srand(42); // seed (fixed)
1818
std::vector<FLT> x(M); // NU pts locs
1919
std::vector<CPX> c(M); // strengths
2020
for (BIGINT j = 0; j < M; ++j) {

test/finufft1d_test.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,15 @@ int main(int argc, char *argv[]) {
8282
}
8383
err = abs(Ftr + IMA * Fti - F[N / 2 + nt]) / infnorm(N, F);
8484
printf("\tone mode: rel err in F[%lld] is %.3g\n", (long long)nt, err);
85-
errmax = max(err, errmax);
8685
if (((int64_t)M) * N <= TEST_BIGPROB) { // also full direct eval
8786
CPX *Ft = (CPX *)malloc(sizeof(CPX) * N);
8887
dirft1d1(M, x, c, isign, N, Ft);
8988
err = relerrtwonorm(N, Ft, F);
9089
errmax = max(err, errmax);
9190
printf("\tdirft1d: rel l2-err of result F is %.3g\n", err);
9291
free(Ft);
93-
}
92+
} else
93+
errmax = max(err, errmax);
9494

9595
printf("test 1d type 2:\n"); // -------------- type 2
9696
#pragma omp parallel
@@ -116,8 +116,7 @@ int main(int argc, char *argv[]) {
116116
// #pragma omp parallel for schedule(static,TEST_RANDCHUNK) reduction(cmplxadd:ct)
117117
for (BIGINT m1 = -k0; m1 <= (N - 1) / 2; ++m1)
118118
ct += F[m++] * exp(IMA * ((FLT)(isign * m1)) * x[jt]); // crude direct
119-
err = abs(ct - c[jt]) / infnorm(M, c);
120-
errmax = max(err, errmax);
119+
err = abs(ct - c[jt]) / infnorm(M, c);
121120
printf("\tone targ: rel err in c[%lld] is %.3g\n", (long long)jt, err);
122121
if (((int64_t)M) * N <= TEST_BIGPROB) { // also full direct eval
123122
CPX *ct = (CPX *)malloc(sizeof(CPX) * M);
@@ -127,7 +126,8 @@ int main(int argc, char *argv[]) {
127126
printf("\tdirft1d: rel l2-err of result c is %.3g\n", err);
128127
// cout<<"c/ct:\n"; for (int j=0;j<M;++j) cout<<c[j]/ct[j]<<endl;
129128
free(ct);
130-
}
129+
} else
130+
errmax = max(err, errmax);
131131

132132
printf("test 1d type 3:\n"); // -------------- type 3
133133
// reuse the strengths c, interpret N as number of targs:
@@ -165,8 +165,7 @@ int main(int argc, char *argv[]) {
165165
Ftr += real(c[j]) * co - imag(c[j]) * si; // cpx arith by hand
166166
Fti += imag(c[j]) * co + real(c[j]) * si;
167167
}
168-
err = abs(Ftr + IMA * Fti - F[kt]) / infnorm(N, F);
169-
errmax = max(err, errmax);
168+
err = abs(Ftr + IMA * Fti - F[kt]) / infnorm(N, F);
170169
printf("\tone targ: rel err in F[%lld] is %.3g\n", (long long)kt, err);
171170
if (((int64_t)M) * N <= TEST_BIGPROB) { // also full direct eval
172171
CPX *Ft = (CPX *)malloc(sizeof(CPX) * N);
@@ -177,7 +176,8 @@ int main(int argc, char *argv[]) {
177176
// cout<<"s, F, Ft:\n"; for (int k=0;k<N;++k) cout<<s[k]<<"
178177
// "<<F[k]<<"\t"<<Ft[k]<<"\t"<<F[k]/Ft[k]<<endl;
179178
free(Ft);
180-
}
179+
} else
180+
errmax = max(err, errmax);
181181

182182
free(x);
183183
free(c);

test/finufft2d_test.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ int main(int argc, char *argv[]) {
8282
}
8383
BIGINT it = N1 / 2 + nt1 + N1 * (N2 / 2 + nt2); // index in complex F as 1d array
8484
err = abs(Ftr + IMA * Fti - F[it]) / infnorm(N, F);
85-
errmax = max(err, errmax);
8685
printf("\tone mode: rel err in F[%lld,%lld] is %.3g\n", (long long)nt1, (long long)nt2,
8786
err);
8887
if ((int64_t)M * N <= TEST_BIGPROB) { // also check vs full direct eval
@@ -92,7 +91,8 @@ int main(int argc, char *argv[]) {
9291
errmax = max(err, errmax);
9392
printf("\tdirft2d: rel l2-err of result F is %.3g\n", err);
9493
free(Ft);
95-
}
94+
} else
95+
errmax = max(err, errmax);
9696

9797
printf("test 2d type 2:\n"); // -------------- type 2
9898
#pragma omp parallel
@@ -118,8 +118,7 @@ int main(int argc, char *argv[]) {
118118
for (BIGINT m1 = -(N1 / 2); m1 <= (N1 - 1) / 2; ++m1)
119119
ct += F[m++] * exp(IMA * (FLT)isign * (m1 * x[jt] + m2 * y[jt])); // crude
120120
// direct
121-
err = abs(ct - c[jt]) / infnorm(M, c);
122-
errmax = max(err, errmax);
121+
err = abs(ct - c[jt]) / infnorm(M, c);
123122
printf("\tone targ: rel err in c[%lld] is %.3g\n", (long long)jt, err);
124123
if ((int64_t)M * N <= TEST_BIGPROB) { // also full direct eval
125124
CPX *ct = (CPX *)malloc(sizeof(CPX) * M);
@@ -129,7 +128,8 @@ int main(int argc, char *argv[]) {
129128
printf("\tdirft2d: rel l2-err of result c is %.3g\n", err);
130129
// cout<<"c,ct:\n"; for (int j=0;j<M;++j) cout<<c[j]<<"\t"<<ct[j]<<endl;
131130
free(ct);
132-
}
131+
} else
132+
errmax = max(err, errmax);
133133

134134
printf("test 2d type 3:\n"); // -------------- type 3
135135
// reuse the strengths c, interpret N as number of targs:
@@ -174,8 +174,7 @@ int main(int argc, char *argv[]) {
174174
Ftr += real(c[j]) * co - imag(c[j]) * si; // cpx arith by hand
175175
Fti += imag(c[j]) * co + real(c[j]) * si;
176176
}
177-
err = abs(Ftr + IMA * Fti - F[kt]) / infnorm(N, F);
178-
errmax = max(err, errmax);
177+
err = abs(Ftr + IMA * Fti - F[kt]) / infnorm(N, F);
179178
printf("\tone targ: rel err in F[%lld] is %.3g\n", (long long)kt, err);
180179
if (((int64_t)M) * N <= TEST_BIGPROB) { // also full direct eval
181180
CPX *Ft = (CPX *)malloc(sizeof(CPX) * N);
@@ -186,7 +185,8 @@ int main(int argc, char *argv[]) {
186185
// cout<<"s t, F, Ft, F/Ft:\n"; for (int k=0;k<N;++k) cout<<s[k]<<" "<<t[k]<<",
187186
// "<<F[k]<<",\t"<<Ft[k]<<",\t"<<F[k]/Ft[k]<<endl;
188187
free(Ft);
189-
}
188+
} else
189+
errmax = max(err, errmax);
190190

191191
free(x);
192192
free(y);

test/finufft3d_test.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ int main(int argc, char *argv[]) {
8989
// index in complex F as 1d array...
9090
BIGINT it = N1 / 2 + nt1 + N1 * (N2 / 2 + nt2) + N1 * N2 * (N3 / 2 + nt3);
9191
err = abs(Ftr + IMA * Fti - F[it]) / infnorm(N, F);
92-
errmax = max(err, errmax);
9392
printf("\tone mode: rel err in F[%lld,%lld,%lld] is %.3g\n", (long long)nt1,
9493
(long long)nt2, (long long)nt3, err);
9594
if ((int64_t)M * N <= TEST_BIGPROB) { // also check vs full direct eval
@@ -99,7 +98,8 @@ int main(int argc, char *argv[]) {
9998
errmax = max(err, errmax);
10099
printf("\tdirft3d: rel l2-err of result F is %.3g\n", err);
101100
free(Ft);
102-
}
101+
} else
102+
errmax = max(err, errmax);
103103

104104
printf("test 3d type 2:\n"); // -------------- type 2
105105
#pragma omp parallel
@@ -125,8 +125,7 @@ int main(int argc, char *argv[]) {
125125
for (BIGINT m2 = -(N2 / 2); m2 <= (N2 - 1) / 2; ++m2)
126126
for (BIGINT m1 = -(N1 / 2); m1 <= (N1 - 1) / 2; ++m1)
127127
ct += F[m++] * exp(IMA * (FLT)isign * (m1 * x[jt] + m2 * y[jt] + m3 * z[jt]));
128-
err = abs(ct - c[jt]) / infnorm(M, c);
129-
errmax = max(err, errmax);
128+
err = abs(ct - c[jt]) / infnorm(M, c);
130129
printf("\tone targ: rel err in c[%lld] is %.3g\n", (long long)jt, err);
131130
if ((int64_t)M * N <= TEST_BIGPROB) { // also full direct eval
132131
CPX *ct = (CPX *)malloc(sizeof(CPX) * M);
@@ -135,7 +134,8 @@ int main(int argc, char *argv[]) {
135134
errmax = max(err, errmax);
136135
printf("\tdirft3d: rel l2-err of result c is %.3g\n", err);
137136
free(ct);
138-
}
137+
} else
138+
errmax = max(err, errmax);
139139

140140
printf("test 3d type 3:\n"); // -------------- type 3
141141
// reuse the strengths c, interpret N as number of targs:
@@ -185,8 +185,7 @@ int main(int argc, char *argv[]) {
185185
Ftr += real(c[j]) * co - imag(c[j]) * si; // cpx arith by hand
186186
Fti += imag(c[j]) * co + real(c[j]) * si;
187187
}
188-
err = abs(Ftr + IMA * Fti - F[kt]) / infnorm(N, F);
189-
errmax = max(err, errmax);
188+
err = abs(Ftr + IMA * Fti - F[kt]) / infnorm(N, F);
190189
printf("\tone targ: rel err in F[%lld] is %.3g\n", (long long)kt, err);
191190
if (((int64_t)M) * N <= TEST_BIGPROB) { // also full direct eval
192191
CPX *Ft = (CPX *)malloc(sizeof(CPX) * N);
@@ -197,7 +196,8 @@ int main(int argc, char *argv[]) {
197196
// cout<<"s t u, F, Ft, F/Ft:\n"; for (int k=0;k<N;++k) cout<<s[k]<<" "<<t[k]<<"
198197
// "<<u[k]<<", "<<F[k]<<",\t"<<Ft[k]<<",\t"<<F[k]/Ft[k]<<endl;
199198
free(Ft);
200-
}
199+
} else
200+
errmax = max(err, errmax);
201201

202202
free(x);
203203
free(y);

0 commit comments

Comments
 (0)