diff options
| author | Tyge Løvset <[email protected]> | 2020-09-18 13:45:25 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2020-09-18 13:45:25 +0200 |
| commit | 404f7ea40aa7f3a6d6c3713a6e517a51f19558b7 (patch) | |
| tree | aed7d7728c950461c72c03873e92ac0db163e544 | |
| parent | 4526ee4c4ad675fbcc79934cfdee2ad15ee5139e (diff) | |
| download | STC-modified-404f7ea40aa7f3a6d6c3713a6e517a51f19558b7.tar.gz STC-modified-404f7ea40aa7f3a6d6c3713a6e517a51f19558b7.zip | |
Minor, using a few c_forrange ().
| -rw-r--r-- | examples/prime.c | 10 | ||||
| -rw-r--r-- | examples/random.c | 10 | ||||
| -rw-r--r-- | examples/rngtest.c | 13 | ||||
| -rw-r--r-- | examples/stack.c | 4 | ||||
| -rw-r--r-- | stc/cdefs.h | 4 |
5 files changed, 21 insertions, 20 deletions
diff --git a/examples/prime.c b/examples/prime.c index e49d2f20..95e1fd46 100644 --- a/examples/prime.c +++ b/examples/prime.c @@ -7,10 +7,10 @@ static inline cbitset_t sieveOfEratosthenes(size_t n) cbitset_reset(&pbits, 0);
cbitset_reset(&pbits, 1);
- for (size_t i = 2; i <= n; ++i) {
+ c_forrange (i, size_t, 2, n+1) {
// If pbits[i] is not changed, then it is a prime
if (cbitset_test(pbits, i) && i*i <= n) {
- for (size_t j = i*i; j <= n; j += i) {
+ c_forrange (j, size_t, i*i, n+1, i) {
cbitset_reset(&pbits, j);
}
}
@@ -30,8 +30,10 @@ int main(void) size_t np = cbitset_count(primes);
printf("number of primes: %zu\n", np);
- for (uint32_t i = 2; i <= 1000; ++i)
- if (cbitset_test(primes, i)) printf("%u ", i);
+ printf("2 ");
+ c_forrange (i, int, 3, 1001, 2) {
+ if (cbitset_test(primes, i)) printf("%d ", i);
+ }
puts("");
cbitset_del(&primes);
}
\ No newline at end of file diff --git a/examples/random.c b/examples/random.c index df10acdc..44465ce7 100644 --- a/examples/random.c +++ b/examples/random.c @@ -18,7 +18,7 @@ int main() printf("32 uniform: %u\n", dist0.range);
double fsum = 0;
before = clock();
- for (size_t i = 0; i < N; ++i) {
+ c_forrange (i, size_t, N) {
fsum += (double) crand_uniform_i32(&pcg, &dist0) / dist0.range;
}
difference = clock() - before;
@@ -29,7 +29,7 @@ int main() puts("32 unbiased");
fsum = 0;
before = clock();
- for (size_t i = 0; i < N; ++i) {
+ c_forrange (i, size_t, N) {
fsum += (double) crand_unbiased_i32(&pcg, &dist0) / dist0.range;
}
difference = clock() - before;
@@ -40,7 +40,7 @@ int main() crand_uniform_i64_t dist1 = crand_uniform_i64_init(0, N);
sum = 0;
before = clock();
- for (size_t i = 0; i < N; ++i) {
+ c_forrange (i, size_t, N) {
sum += crand_uniform_i64(&stc, &dist1);
}
difference = clock() - before;
@@ -52,14 +52,14 @@ int main() size_t N2 = 10000000;
int hist[R] = {0};
sum = 0;
- for (size_t i = 0; i < N2; ++i) {
+ c_forrange (i, size_t, N2) {
int n = (int) (crand_normal_f64(&stc, &dist2) + 0.5);
sum += n;
if (n >= 0 && n < R) ++hist[n];
}
cstr_t bar = cstr_INIT;
- for (int i=0; i < R; ++i) {
+ c_forrange (i, int, R) {
cstr_take(&bar, cstr_with_size(hist[i] * 25ull * R / N2, '*'));
printf("%2d %s\n", i, bar.str);
}
diff --git a/examples/rngtest.c b/examples/rngtest.c index dbe272c0..16360eac 100644 --- a/examples/rngtest.c +++ b/examples/rngtest.c @@ -17,7 +17,7 @@ int main(void) crand_uniform_i64_t idist = crand_uniform_i64_init(10, 20);
crand_uniform_f64_t fdist = crand_uniform_f64_init(10, 20);
- for (int i=0; i<30; ++i) printf("%02zd ", crand_uniform_i64(&stc, &idist));
+ c_forrange (i, int, 30) printf("%02zd ", crand_uniform_i64(&stc, &idist));
puts("");
crand_rng32_t pcg = crand_rng32_init(time(NULL));
@@ -26,7 +26,7 @@ int main(void) before = clock(); \
v = 0;
- for (size_t i=0; i<NN; i++) {
+ c_forrange (i, size_t, NN) {
//v += crand_i32(&pcg);
v += crand_uniform_i32(&pcg, &i32dist);
}
@@ -35,21 +35,20 @@ int main(void) before = clock(); \
v = 0;
- for (size_t i=0; i<NN; i++) {
+ c_forrange (i, size_t, NN) {
//v += crand_i64(&stc) & 0xffffffff;
v += crand_uniform_i64(&stc, &idist);
}
difference = clock() - before;
printf("stc64: %.02f, %zu\n", (float) difference / CLOCKS_PER_SEC, v);
-
- for (int i=0; i<8; ++i) printf("%d ", crand_uniform_i32(&pcg, &i32dist));
+ c_forrange (i, int, 8) printf("%d ", crand_uniform_i32(&pcg, &i32dist));
puts("");
- for (int i=0; i<8; ++i) printf("%f ", crand_uniform_f32(&pcg, &f32dist));
+ c_forrange (i, int, 8) printf("%f ", crand_uniform_f32(&pcg, &f32dist));
puts("");
- for (int i=0; i<8; ++i) printf("%f ", crand_uniform_f64(&stc, &fdist));
+ c_forrange (i, int, 8) printf("%f ", crand_uniform_f64(&stc, &fdist));
puts("");
}
\ No newline at end of file diff --git a/examples/stack.c b/examples/stack.c index e514808d..a911e4a2 100644 --- a/examples/stack.c +++ b/examples/stack.c @@ -12,10 +12,10 @@ int main() { cstack_i stack = cstack_i_init();
cstack_c chars = cstack_c_init();
- for (int i=0; i<100; ++i)
+ c_forrange (i, int, 100)
cstack_i_push(&stack, i*i);
- for (int i=0; i<90; ++i)
+ c_forrange (i, int, 90)
cstack_i_pop(&stack);
c_foreach (i, cstack_i, stack)
diff --git a/stc/cdefs.h b/stc/cdefs.h index 7ee1962b..571dafd7 100644 --- a/stc/cdefs.h +++ b/stc/cdefs.h @@ -78,7 +78,7 @@ #define c_default_less(x, y) (*(x) < *(y))
#define c_less_compare(less, x, y) (less(x, y) ? -1 : less(y, x))
#define c_default_compare(x, y) c_less_compare(c_default_less, x, y)
-#define c_default_del(ptr) ((void) (ptr))
+#define c_default_del(ptr) ((void) (ptr))
#define c_foreach(...) c_MACRO_OVERLOAD(c_foreach, __VA_ARGS__)
#define c_foreach_3(it, ctype, cnt) \
@@ -90,7 +90,7 @@ #define c_forrange_3(i, type, stop) for (type i=0, i##_end_=stop; i < i##_end_; ++i)
#define c_forrange_4(i, type, start, stop) for (type i=start, i##_end_=stop; i < i##_end_; ++i)
#define c_forrange_5(i, type, start, stop, step) \
- for (type i=start, i##_inc_=step, i##_end_=(stop) - (i##_inc_ > 0); (i <= i##_end_) == (0 < i##_inc_); i += i##_inc_)
+ for (type i=start, i##_inc_=step, i##_end_=(stop) - (0 < i##_inc_); (i <= i##_end_) == (0 < i##_inc_); i += i##_inc_)
#define c_push_items(self, ctype, ...) do { \
const ctype##_input_t __arr[] = __VA_ARGS__; \
|
