From 404f7ea40aa7f3a6d6c3713a6e517a51f19558b7 Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Fri, 18 Sep 2020 13:45:25 +0200 Subject: Minor, using a few c_forrange (). --- examples/prime.c | 10 ++++++---- examples/random.c | 10 +++++----- examples/rngtest.c | 13 ++++++------- examples/stack.c | 4 ++-- 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 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__; \ -- cgit v1.2.3