summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2022-10-19 15:50:51 +0200
committerTyge Løvset <[email protected]>2022-10-19 15:50:51 +0200
commit0441f3844410c64b7e2d4a2604b4254b851e64c8 (patch)
tree2b30f21536fd589b890fa4644732e963036a9113
parentbb3a457e5c2c9e6b069ab3dfba10f9d21686b035 (diff)
downloadSTC-modified-0441f3844410c64b7e2d4a2604b4254b851e64c8.tar.gz
STC-modified-0441f3844410c64b7e2d4a2604b4254b851e64c8.zip
Reverted back to c_forrrange from c_forloop. Still available but deprecated.
-rw-r--r--README.md2
-rw-r--r--benchmarks/misc/cbits_benchmark.cpp12
-rw-r--r--benchmarks/misc/rust_cmap.c6
-rw-r--r--benchmarks/picobench/picobench_cmap.cpp34
-rw-r--r--benchmarks/picobench/picobench_csmap.cpp40
-rw-r--r--benchmarks/plotbench/cdeq_benchmark.cpp38
-rw-r--r--benchmarks/plotbench/clist_benchmark.cpp34
-rw-r--r--benchmarks/plotbench/cmap_benchmark.cpp38
-rw-r--r--benchmarks/plotbench/cpque_benchmark.cpp10
-rw-r--r--benchmarks/plotbench/csmap_benchmark.cpp38
-rw-r--r--benchmarks/plotbench/cvec_benchmark.cpp30
-rw-r--r--docs/ccommon_api.md20
-rw-r--r--docs/clist_api.md2
-rw-r--r--docs/cpque_api.md6
-rw-r--r--docs/cqueue_api.md4
-rw-r--r--docs/crandom_api.md2
-rw-r--r--docs/cregex_api.md4
-rw-r--r--examples/arc_demo.c2
-rw-r--r--examples/birthday.c4
-rw-r--r--examples/bits.c12
-rw-r--r--examples/bits2.c6
-rw-r--r--examples/books.c2
-rw-r--r--examples/convert.c2
-rw-r--r--examples/cpque.c6
-rw-r--r--examples/forloops.c10
-rw-r--r--examples/gauss1.c2
-rw-r--r--examples/gauss2.c2
-rw-r--r--examples/inits.c2
-rw-r--r--examples/list.c2
-rw-r--r--examples/new_queue.c4
-rw-r--r--examples/prime.c2
-rw-r--r--examples/priority.c6
-rw-r--r--examples/queue.c4
-rw-r--r--examples/random.c6
-rw-r--r--examples/regex2.c4
-rw-r--r--examples/stack.c4
-rw-r--r--include/stc/cbits.h4
-rw-r--r--include/stc/ccommon.h11
-rw-r--r--src/checkauto.l1
39 files changed, 209 insertions, 209 deletions
diff --git a/README.md b/README.md
index f3417c34..257df8ca 100644
--- a/README.md
+++ b/README.md
@@ -473,7 +473,7 @@ Memory efficiency
- Added back **coption** - command line argument parsing.
- New + renamed loop iteration/scope macros:
- `c_forlist`: macro replacing `c_forarray` and `c_apply`. Iterate a compound literal list.
- - `c_forloop`: macro replacing `c_forrange`. Iterate a `long long` type number sequence.
+ - `c_forrange`: macro replacing `c_forrange`. Iterate a `long long` type number sequence.
- `c_with`: macro renamed from `c_autovar`. Like Python's **with** statement.
- `c_scope`: macro renamed from `c_autoscope`.
- `c_defer`: macro renamed from `c_autodefer`. Resembles Go's and Zig's **defer**.
diff --git a/benchmarks/misc/cbits_benchmark.cpp b/benchmarks/misc/cbits_benchmark.cpp
index 6dea2808..dd709db1 100644
--- a/benchmarks/misc/cbits_benchmark.cpp
+++ b/benchmarks/misc/cbits_benchmark.cpp
@@ -42,7 +42,7 @@ int main(int argc, char **argv)
csrandom(seed);
current_time = get_time_in_ms();
- c_forloop (40 * N)
+ c_forrange (40 * N)
{
uint64_t r = crandom();
bools[r & (N-1)] = r & 1<<29;
@@ -51,7 +51,7 @@ int main(int argc, char **argv)
difference1 = get_time_in_ms() - current_time;
current_time = get_time_in_ms();
- c_forloop (100) c_forloop (num, N)
+ c_forrange (100) c_forrange (num, N)
{
total += bools[num];
}
@@ -70,7 +70,7 @@ int main(int argc, char **argv)
current_time = get_time_in_ms();
bitset<N> bits;
- c_forloop (40 * N)
+ c_forrange (40 * N)
{
uint64_t r = crandom();
bits[r & (N-1)] = r & 1<<29;
@@ -79,7 +79,7 @@ int main(int argc, char **argv)
difference1 = get_time_in_ms() - current_time;
current_time = get_time_in_ms();
- c_forloop (100) c_forloop (num, N)
+ c_forrange (100) c_forrange (num, N)
{
total += bits[num];
}
@@ -96,7 +96,7 @@ int main(int argc, char **argv)
current_time = get_time_in_ms();
cbits bits2 = cbits_with_size(N, false);
- c_forloop (40 * N)
+ c_forrange (40 * N)
{
uint64_t r = crandom();
cbits_set_value(&bits2, r & (N-1), r & 1<<29);
@@ -105,7 +105,7 @@ int main(int argc, char **argv)
difference1 = get_time_in_ms() - current_time;
current_time = get_time_in_ms();
- c_forloop (100) c_forloop (num, N)
+ c_forrange (100) c_forrange (num, N)
{
total += cbits_at(&bits2, num);
}
diff --git a/benchmarks/misc/rust_cmap.c b/benchmarks/misc/rust_cmap.c
index 20ed87be..02d62319 100644
--- a/benchmarks/misc/rust_cmap.c
+++ b/benchmarks/misc/rust_cmap.c
@@ -33,7 +33,7 @@ int main()
uint64_t rng[3] = {1872361123, 123879177, 87739234}, sum;
clock_t now = clock();
- c_forloop (n) {
+ c_forrange (n) {
uint64_t key = romu_trio(rng) & mask;
cmap_u64_insert(&m, key, 0).ref->second += 1;
}
@@ -41,7 +41,7 @@ int main()
now = clock();
sum = 0;
- c_forloop (key, mask + 1) { sum += cmap_u64_contains(&m, key); }
+ c_forrange (key, mask + 1) { sum += cmap_u64_contains(&m, key); }
printf("lookup : %" c_zu "ms \tsum : %" c_zu "\n", (clock() - now)/ms, sum);
now = clock();
@@ -51,7 +51,7 @@ int main()
uint64_t rng2[3] = {1872361123, 123879177, 87739234};
now = clock();
- c_forloop (n) {
+ c_forrange (n) {
uint64_t key = romu_trio(rng2) & mask;
cmap_u64_erase(&m, key);
}
diff --git a/benchmarks/picobench/picobench_cmap.cpp b/benchmarks/picobench/picobench_cmap.cpp
index afc3e3d1..7d114d30 100644
--- a/benchmarks/picobench/picobench_cmap.cpp
+++ b/benchmarks/picobench/picobench_cmap.cpp
@@ -54,14 +54,14 @@ static void ins_and_erase_i(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
map[crandom()];
map.clear();
csrandom(seed);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
map[crandom()];
csrandom(seed);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
map.erase(crandom());
s.set_result(map.size());
}
@@ -73,14 +73,14 @@ static void ins_and_erase_cmap_i(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
cmap_i_insert(&map, crandom(), 0);
cmap_i_clear(&map);
csrandom(seed);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
cmap_i_insert(&map, crandom(), 0);
csrandom(seed);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
cmap_i_erase(&map, crandom());
s.set_result(cmap_i_size(&map));
cmap_i_drop(&map);
@@ -93,14 +93,14 @@ static void ins_and_erase_cmap_x(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
cmap_x_insert(&map, crandom(), 0);
cmap_x_clear(&map);
csrandom(seed);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
cmap_x_insert(&map, crandom(), 0);
csrandom(seed);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
cmap_x_erase(&map, crandom());
s.set_result(cmap_x_size(&map));
cmap_x_drop(&map);
@@ -126,7 +126,7 @@ static void ins_and_access_i(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (N1)
+ c_forrange (N1)
result += ++map[crandom() & mask];
s.set_result(result);
}
@@ -140,7 +140,7 @@ static void ins_and_access_cmap_i(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (N1)
+ c_forrange (N1)
result += ++cmap_i_insert(&map, crandom() & mask, 0).ref->second;
s.set_result(result);
cmap_i_drop(&map);
@@ -174,7 +174,7 @@ static void ins_and_access_s(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (s.iterations()) {
+ c_forrange (s.iterations()) {
randomize(&str[0], str.size());
map.emplace(str, str);
randomize(&str[0], str.size());
@@ -193,7 +193,7 @@ static void ins_and_access_cmap_s(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (s.iterations()) {
+ c_forrange (s.iterations()) {
randomize(buf, s.arg());
//if (s.arg() > 30) { printf("%s\n", buf); exit(0); }
cmap_str_emplace(&map, buf, buf);
@@ -228,7 +228,7 @@ static void iterate_x(picobench::state& s)
size_t result = 0;
// measure insert then iterate whole map
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
map[crandom()] = n;
if (!(n & K)) for (auto const& keyVal : map)
result += keyVal.second;
@@ -238,7 +238,7 @@ static void iterate_x(picobench::state& s)
csrandom(seed);
// measure erase then iterate whole map
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
map.erase(crandom());
if (!(n & K)) for (auto const& keyVal : map)
result += keyVal.second;
@@ -257,7 +257,7 @@ static void iterate_cmap_x(picobench::state& s)
size_t result = 0;
// measure insert then iterate whole map
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
cmap_x_insert_or_assign(&map, crandom(), n);
if (!(n & K)) c_foreach (i, cmap_x, map)
result += i.ref->second;
@@ -267,7 +267,7 @@ static void iterate_cmap_x(picobench::state& s)
csrandom(seed);
// measure erase then iterate whole map
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
cmap_x_erase(&map, crandom());
if (!(n & K)) c_foreach (i, cmap_x, map)
result += i.ref->second;
diff --git a/benchmarks/picobench/picobench_csmap.cpp b/benchmarks/picobench/picobench_csmap.cpp
index 1007cfbb..5caab6cc 100644
--- a/benchmarks/picobench/picobench_csmap.cpp
+++ b/benchmarks/picobench/picobench_csmap.cpp
@@ -38,7 +38,7 @@ static void ctor_and_ins_one_i(picobench::state& s)
{
size_t result = 0;
picobench::scope scope(s);
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
MapInt map;
map[n];
result += map.size();
@@ -50,7 +50,7 @@ static void ctor_and_ins_one_csmap_i(picobench::state& s)
{
size_t result = 0;
picobench::scope scope(s);
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
csmap_i map = csmap_i_init();
csmap_i_insert(&map, n, 0);
result += csmap_i_size(&map);
@@ -73,7 +73,7 @@ static void insert_i(picobench::state& s)
MapInt map;
csrandom(seed);
picobench::scope scope(s);
- c_forloop (n, s.iterations())
+ c_forrange (n, s.iterations())
map.emplace(crandom() & 0xfffffff, n);
s.set_result(map.size());
}
@@ -83,7 +83,7 @@ static void insert_csmap_i(picobench::state& s)
csmap_i map = csmap_i_init();
csrandom(seed);
picobench::scope scope(s);
- c_forloop (n, s.iterations())
+ c_forrange (n, s.iterations())
csmap_i_insert(&map, crandom() & 0xfffffff, n);
s.set_result(csmap_i_size(&map));
csmap_i_drop(&map);
@@ -106,17 +106,17 @@ static void ins_and_erase_i(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (i, s.iterations())
+ c_forrange (i, s.iterations())
map.emplace(crandom() & mask, i);
result = map.size();
map.clear();
csrandom(seed);
- c_forloop (i, s.iterations())
+ c_forrange (i, s.iterations())
map[crandom() & mask] = i;
csrandom(seed);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
map.erase(crandom() & mask);
s.set_result(result);
}
@@ -129,17 +129,17 @@ static void ins_and_erase_csmap_i(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (i, s.iterations())
+ c_forrange (i, s.iterations())
csmap_i_insert(&map, crandom() & mask, i);
result = csmap_i_size(&map);
csmap_i_clear(&map);
csrandom(seed);
- c_forloop (i, s.iterations())
+ c_forrange (i, s.iterations())
csmap_i_insert_or_assign(&map, crandom() & mask, i);
csrandom(seed);
- c_forloop (s.iterations())
+ c_forrange (s.iterations())
csmap_i_erase(&map, crandom() & mask);
s.set_result(result);
csmap_i_drop(&map);
@@ -161,7 +161,7 @@ static void ins_and_access_i(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (s.iterations()) {
+ c_forrange (s.iterations()) {
result += ++map[crandom() & mask];
auto it = map.find(crandom() & mask);
if (it != map.end()) map.erase(it->first);
@@ -177,7 +177,7 @@ static void ins_and_access_csmap_i(picobench::state& s)
csrandom(seed);
picobench::scope scope(s);
- c_forloop (s.iterations()) {
+ c_forrange (s.iterations()) {
result += ++csmap_i_insert(&map, crandom() & mask, 0).ref->second;
const csmap_i_value* val = csmap_i_get(&map, crandom() & mask);
if (val) csmap_i_erase(&map, val->first);
@@ -208,12 +208,12 @@ static void ins_and_access_s(picobench::state& s)
picobench::scope scope(s);
csrandom(seed);
- c_forloop (s.iterations()) {
+ c_forrange (s.iterations()) {
randomize(&str[0], str.size());
map.emplace(str, str);
}
csrandom(seed);
- c_forloop (s.iterations()) {
+ c_forrange (s.iterations()) {
randomize(&str[0], str.size());
result += map.erase(str);
}
@@ -229,12 +229,12 @@ static void ins_and_access_csmap_s(picobench::state& s)
picobench::scope scope(s);
csrandom(seed);
- c_forloop (s.iterations()) {
+ c_forrange (s.iterations()) {
randomize(buf, s.arg());
csmap_str_emplace(&map, buf, buf);
}
csrandom(seed);
- c_forloop (s.iterations()) {
+ c_forrange (s.iterations()) {
randomize(buf, s.arg());
result += csmap_str_erase(&map, buf);
/*csmap_str_iter it = csmap_str_find(&map, buf);
@@ -266,7 +266,7 @@ static void iterate_x(picobench::state& s)
size_t result = 0;
// measure insert then iterate whole map
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
map[crandom()] = n;
if (!(n & K)) for (auto const& keyVal : map)
result += keyVal.second;
@@ -276,7 +276,7 @@ static void iterate_x(picobench::state& s)
csrandom(seed);
// measure erase then iterate whole map
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
map.erase(crandom());
if (!(n & K)) for (auto const& keyVal : map)
result += keyVal.second;
@@ -294,7 +294,7 @@ static void iterate_csmap_x(picobench::state& s)
size_t result = 0;
// measure insert then iterate whole map
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
csmap_x_insert_or_assign(&map, crandom(), n);
if (!(n & K)) c_foreach (i, csmap_x, map)
result += i.ref->second;
@@ -304,7 +304,7 @@ static void iterate_csmap_x(picobench::state& s)
csrandom(seed);
// measure erase then iterate whole map
- c_forloop (n, s.iterations()) {
+ c_forrange (n, s.iterations()) {
csmap_x_erase(&map, crandom());
if (!(n & K)) c_foreach (i, csmap_x, map)
result += i.ref->second;
diff --git a/benchmarks/plotbench/cdeq_benchmark.cpp b/benchmarks/plotbench/cdeq_benchmark.cpp
index de85114f..1259cc07 100644
--- a/benchmarks/plotbench/cdeq_benchmark.cpp
+++ b/benchmarks/plotbench/cdeq_benchmark.cpp
@@ -29,29 +29,29 @@ Sample test_std_deque() {
s.test[INSERT].t1 = clock();
container con;
csrandom(seed);
- c_forloop (N/3) con.push_front(crandom() & mask1);
- c_forloop (N/3) {con.push_back(crandom() & mask1); con.pop_front();}
- c_forloop (N/3) con.push_back(crandom() & mask1);
+ c_forrange (N/3) con.push_front(crandom() & mask1);
+ c_forrange (N/3) {con.push_back(crandom() & mask1); con.pop_front();}
+ c_forrange (N/3) con.push_back(crandom() & mask1);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = con.size();
s.test[ERASE].t1 = clock();
- c_forloop (con.size()/2) { con.pop_front(); con.pop_back(); }
+ c_forrange (con.size()/2) { con.pop_front(); con.pop_back(); }
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = con.size();
}{
container con;
csrandom(seed);
- c_forloop (N) con.push_back(crandom() & mask2);
+ c_forrange (N) con.push_back(crandom() & mask2);
s.test[FIND].t1 = clock();
size_t sum = 0;
// Iteration - not inherent find - skipping
//container::iterator it;
- //c_forloop (S) if ((it = std::find(con.begin(), con.end(), crandom() & mask2)) != con.end()) sum += *it;
+ //c_forrange (S) if ((it = std::find(con.begin(), con.end(), crandom() & mask2)) != con.end()) sum += *it;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) c_forloop (i, N) sum += con[i];
+ c_forrange (R) c_forrange (i, N) sum += con[i];
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -73,29 +73,29 @@ Sample test_stc_deque() {
container con = cdeq_x_init();
//cdeq_x_reserve(&con, N);
csrandom(seed);
- c_forloop (N/3) cdeq_x_push_front(&con, crandom() & mask1);
- c_forloop (N/3) {cdeq_x_push_back(&con, crandom() & mask1); cdeq_x_pop_front(&con);}
- c_forloop (N/3) cdeq_x_push_back(&con, crandom() & mask1);
+ c_forrange (N/3) cdeq_x_push_front(&con, crandom() & mask1);
+ c_forrange (N/3) {cdeq_x_push_back(&con, crandom() & mask1); cdeq_x_pop_front(&con);}
+ c_forrange (N/3) cdeq_x_push_back(&con, crandom() & mask1);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = cdeq_x_size(&con);
s.test[ERASE].t1 = clock();
- c_forloop (cdeq_x_size(&con)/2) { cdeq_x_pop_front(&con); cdeq_x_pop_back(&con); }
+ c_forrange (cdeq_x_size(&con)/2) { cdeq_x_pop_front(&con); cdeq_x_pop_back(&con); }
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = cdeq_x_size(&con);
cdeq_x_drop(&con);
}{
csrandom(seed);
container con = cdeq_x_init();
- c_forloop (N) cdeq_x_push_back(&con, crandom() & mask2);
+ c_forrange (N) cdeq_x_push_back(&con, crandom() & mask2);
s.test[FIND].t1 = clock();
size_t sum = 0;
//cdeq_x_iter it, end = cdeq_x_end(&con);
- //c_forloop (S) if ((it = cdeq_x_find(&con, crandom() & mask2)).ref != end.ref) sum += *it.ref;
+ //c_forrange (S) if ((it = cdeq_x_find(&con, crandom() & mask2)).ref != end.ref) sum += *it.ref;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) c_forloop (i, N) sum += con.data[i];
+ c_forrange (R) c_forrange (i, N) sum += con.data[i];
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -109,10 +109,10 @@ Sample test_stc_deque() {
int main(int argc, char* argv[])
{
Sample std_s[SAMPLES + 1], stc_s[SAMPLES + 1];
- c_forloop (i, SAMPLES) {
+ c_forrange (i, SAMPLES) {
std_s[i] = test_std_deque();
stc_s[i] = test_stc_deque();
- if (i > 0) c_forloop (j, N_TESTS) {
+ if (i > 0) c_forrange (j, N_TESTS) {
if (secs(std_s[i].test[j]) < secs(std_s[0].test[j])) std_s[0].test[j] = std_s[i].test[j];
if (secs(stc_s[i].test[j]) < secs(stc_s[0].test[j])) stc_s[0].test[j] = stc_s[i].test[j];
if (stc_s[i].test[j].sum != stc_s[0].test[j].sum) printf("Error in sum: test %lld, sample %lld\n", i, j);
@@ -122,17 +122,17 @@ int main(int argc, char* argv[])
bool header = (argc > 2 && argv[2][0] == '1');
float std_sum = 0, stc_sum = 0;
- c_forloop (j, N_TESTS) {
+ c_forrange (j, N_TESTS) {
std_sum += secs(std_s[0].test[j]);
stc_sum += secs(stc_s[0].test[j]);
}
if (header) printf("Compiler,Library,C,Method,Seconds,Ratio\n");
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, operations[j], secs(std_s[0].test[j]), 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, "total", std_sum, 1.0f);
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, operations[j], secs(stc_s[0].test[j]), secs(std_s[0].test[j]) ? secs(stc_s[0].test[j])/secs(std_s[0].test[j]) : 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, "total", stc_sum, stc_sum/std_sum);
}
diff --git a/benchmarks/plotbench/clist_benchmark.cpp b/benchmarks/plotbench/clist_benchmark.cpp
index c18ee78e..04c8e8cd 100644
--- a/benchmarks/plotbench/clist_benchmark.cpp
+++ b/benchmarks/plotbench/clist_benchmark.cpp
@@ -29,28 +29,28 @@ Sample test_std_forward_list() {
s.test[INSERT].t1 = clock();
container con;
csrandom(seed);
- c_forloop (N/2) con.push_front(crandom() & mask1);
- c_forloop (N/2) con.push_front(crandom() & mask1);
+ c_forrange (N/2) con.push_front(crandom() & mask1);
+ c_forrange (N/2) con.push_front(crandom() & mask1);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = 0;
s.test[ERASE].t1 = clock();
- c_forloop (N) con.pop_front();
+ c_forrange (N) con.pop_front();
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = 0;
}{
container con;
csrandom(seed);
- c_forloop (N) con.push_front(crandom() & mask2);
+ c_forrange (N) con.push_front(crandom() & mask2);
s.test[FIND].t1 = clock();
size_t sum = 0;
container::iterator it;
// Iteration - not inherent find - skipping
- //c_forloop (S) if ((it = std::find(con.begin(), con.end(), crandom() & mask2)) != con.end()) sum += *it;
+ //c_forrange (S) if ((it = std::find(con.begin(), con.end(), crandom() & mask2)) != con.end()) sum += *it;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) for (auto i: con) sum += i;
+ c_forrange (R) for (auto i: con) sum += i;
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -71,28 +71,28 @@ Sample test_stc_forward_list() {
s.test[INSERT].t1 = clock();
container con = clist_x_init();
csrandom(seed);
- c_forloop (N/2) clist_x_push_front(&con, crandom() & mask1);
- c_forloop (N/2) clist_x_push_back(&con, crandom() & mask1);
+ c_forrange (N/2) clist_x_push_front(&con, crandom() & mask1);
+ c_forrange (N/2) clist_x_push_back(&con, crandom() & mask1);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = 0;
s.test[ERASE].t1 = clock();
- c_forloop (N) clist_x_pop_front(&con);
+ c_forrange (N) clist_x_pop_front(&con);
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = 0;
clist_x_drop(&con);
}{
csrandom(seed);
container con = clist_x_init();
- c_forloop (N) clist_x_push_front(&con, crandom() & mask2);
+ c_forrange (N) clist_x_push_front(&con, crandom() & mask2);
s.test[FIND].t1 = clock();
size_t sum = 0;
//clist_x_iter it, end = clist_x_end(&con);
- //c_forloop (S) if ((it = clist_x_find(&con, crandom() & mask2)).ref != end.ref) sum += *it.ref;
+ //c_forrange (S) if ((it = clist_x_find(&con, crandom() & mask2)).ref != end.ref) sum += *it.ref;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) c_foreach (i, clist_x, con) sum += *i.ref;
+ c_forrange (R) c_foreach (i, clist_x, con) sum += *i.ref;
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -106,10 +106,10 @@ Sample test_stc_forward_list() {
int main(int argc, char* argv[])
{
Sample std_s[SAMPLES + 1], stc_s[SAMPLES + 1];
- c_forloop (i, SAMPLES) {
+ c_forrange (i, SAMPLES) {
std_s[i] = test_std_forward_list();
stc_s[i] = test_stc_forward_list();
- if (i > 0) c_forloop (j, N_TESTS) {
+ if (i > 0) c_forrange (j, N_TESTS) {
if (secs(std_s[i].test[j]) < secs(std_s[0].test[j])) std_s[0].test[j] = std_s[i].test[j];
if (secs(stc_s[i].test[j]) < secs(stc_s[0].test[j])) stc_s[0].test[j] = stc_s[i].test[j];
if (stc_s[i].test[j].sum != stc_s[0].test[j].sum) printf("Error in sum: test %lld, sample %lld\n", i, j);
@@ -119,17 +119,17 @@ int main(int argc, char* argv[])
bool header = (argc > 2 && argv[2][0] == '1');
float std_sum = 0, stc_sum = 0;
- c_forloop (j, N_TESTS) {
+ c_forrange (j, N_TESTS) {
std_sum += secs(std_s[0].test[j]);
stc_sum += secs(stc_s[0].test[j]);
}
if (header) printf("Compiler,Library,C,Method,Seconds,Ratio\n");
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, operations[j], secs(std_s[0].test[j]), 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, "total", std_sum, 1.0f);
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, operations[j], secs(stc_s[0].test[j]), secs(std_s[0].test[j]) ? secs(stc_s[0].test[j])/secs(std_s[0].test[j]) : 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, "total", stc_sum, stc_sum/std_sum);
} \ No newline at end of file
diff --git a/benchmarks/plotbench/cmap_benchmark.cpp b/benchmarks/plotbench/cmap_benchmark.cpp
index cca90461..7a8f29d2 100644
--- a/benchmarks/plotbench/cmap_benchmark.cpp
+++ b/benchmarks/plotbench/cmap_benchmark.cpp
@@ -29,30 +29,30 @@ Sample test_std_unordered_map() {
csrandom(seed);
s.test[INSERT].t1 = clock();
container con;
- c_forloop (i, N/2) con.emplace(crandom() & mask1, i);
- c_forloop (i, N/2) con.emplace(i, i);
+ c_forrange (i, N/2) con.emplace(crandom() & mask1, i);
+ c_forrange (i, N/2) con.emplace(i, i);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = con.size();
csrandom(seed);
s.test[ERASE].t1 = clock();
- c_forloop (N) con.erase(crandom() & mask1);
+ c_forrange (N) con.erase(crandom() & mask1);
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = con.size();
}{
container con;
csrandom(seed);
- c_forloop (i, N/2) con.emplace(crandom() & mask1, i);
- c_forloop (i, N/2) con.emplace(i, i);
+ c_forrange (i, N/2) con.emplace(crandom() & mask1, i);
+ c_forrange (i, N/2) con.emplace(i, i);
csrandom(seed);
s.test[FIND].t1 = clock();
size_t sum = 0;
container::iterator it;
- c_forloop (N) if ((it = con.find(crandom() & mask1)) != con.end()) sum += it->second;
+ c_forrange (N) if ((it = con.find(crandom() & mask1)) != con.end()) sum += it->second;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) for (auto i: con) sum += i.second;
+ c_forrange (R) for (auto i: con) sum += i.second;
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -73,33 +73,33 @@ Sample test_stc_unordered_map() {
csrandom(seed);
s.test[INSERT].t1 = clock();
container con = cmap_x_init();
- c_forloop (i, N/2) cmap_x_insert(&con, crandom() & mask1, i);
- c_forloop (i, N/2) cmap_x_insert(&con, i, i);
+ c_forrange (i, N/2) cmap_x_insert(&con, crandom() & mask1, i);
+ c_forrange (i, N/2) cmap_x_insert(&con, i, i);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = cmap_x_size(&con);
csrandom(seed);
s.test[ERASE].t1 = clock();
- c_forloop (N) cmap_x_erase(&con, crandom() & mask1);
+ c_forrange (N) cmap_x_erase(&con, crandom() & mask1);
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = cmap_x_size(&con);
cmap_x_drop(&con);
}{
container con = cmap_x_init();
csrandom(seed);
- c_forloop (i, N/2) cmap_x_insert(&con, crandom() & mask1, i);
- c_forloop (i, N/2) cmap_x_insert(&con, i, i);
+ c_forrange (i, N/2) cmap_x_insert(&con, crandom() & mask1, i);
+ c_forrange (i, N/2) cmap_x_insert(&con, i, i);
csrandom(seed);
s.test[FIND].t1 = clock();
size_t sum = 0;
const cmap_x_value* val;
- c_forloop (N)
+ c_forrange (N)
if ((val = cmap_x_get(&con, crandom() & mask1)))
sum += val->second;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) c_foreach (i, cmap_x, con) sum += i.ref->second;
+ c_forrange (R) c_foreach (i, cmap_x, con) sum += i.ref->second;
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -113,10 +113,10 @@ Sample test_stc_unordered_map() {
int main(int argc, char* argv[])
{
Sample std_s[SAMPLES + 1], stc_s[SAMPLES + 1];
- c_forloop (i, SAMPLES) {
+ c_forrange (i, SAMPLES) {
std_s[i] = test_std_unordered_map();
stc_s[i] = test_stc_unordered_map();
- if (i > 0) c_forloop (j, N_TESTS) {
+ if (i > 0) c_forrange (j, N_TESTS) {
if (secs(std_s[i].test[j]) < secs(std_s[0].test[j])) std_s[0].test[j] = std_s[i].test[j];
if (secs(stc_s[i].test[j]) < secs(stc_s[0].test[j])) stc_s[0].test[j] = stc_s[i].test[j];
if (stc_s[i].test[j].sum != stc_s[0].test[j].sum) printf("Error in sum: test %lld, sample %lld\n", i, j);
@@ -126,17 +126,17 @@ int main(int argc, char* argv[])
bool header = (argc > 2 && argv[2][0] == '1');
float std_sum = 0, stc_sum = 0;
- c_forloop (j, N_TESTS) {
+ c_forrange (j, N_TESTS) {
std_sum += secs(std_s[0].test[j]);
stc_sum += secs(stc_s[0].test[j]);
}
if (header) printf("Compiler,Library,C,Method,Seconds,Ratio\n");
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, operations[j], secs(std_s[0].test[j]), 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, "total", std_sum, 1.0f);
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, operations[j], secs(stc_s[0].test[j]), secs(std_s[0].test[j]) ? secs(stc_s[0].test[j])/secs(std_s[0].test[j]) : 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, "total", stc_sum, stc_sum/std_sum);
} \ No newline at end of file
diff --git a/benchmarks/plotbench/cpque_benchmark.cpp b/benchmarks/plotbench/cpque_benchmark.cpp
index 1290e3b3..a729c09f 100644
--- a/benchmarks/plotbench/cpque_benchmark.cpp
+++ b/benchmarks/plotbench/cpque_benchmark.cpp
@@ -20,14 +20,14 @@ void std_test()
std::priority_queue<float, std::vector<float>, std::greater<float>> pq;
rng = stc64_new(seed);
clock_t start = clock();
- c_forloop (i, N)
+ c_forrange (i, N)
pq.push((float) stc64_randf(&rng)*100000);
printf("Built priority queue: %f secs\n", (clock() - start) / (float) CLOCKS_PER_SEC);
printf("%g ", pq.top());
start = clock();
- c_forloop (i, N) {
+ c_forrange (i, N) {
pq.pop();
}
@@ -44,18 +44,18 @@ void stc_test()
{
rng = stc64_new(seed);
clock_t start = clock();
- c_forloop (i, N)
+ c_forrange (i, N)
cpque_f_push(&pq, (float) stc64_randf(&rng)*100000);
printf("Built priority queue: %f secs\n", (clock() - start) / (float) CLOCKS_PER_SEC);
printf("%g ", *cpque_f_top(&pq));
- c_forloop (i, M) {
+ c_forrange (i, M) {
cpque_f_pop(&pq);
}
start = clock();
- c_forloop (i, M, N)
+ c_forrange (i, M, N)
cpque_f_pop(&pq);
printf("\npopped PQ: %f secs\n", (clock() - start) / (float) CLOCKS_PER_SEC);
}
diff --git a/benchmarks/plotbench/csmap_benchmark.cpp b/benchmarks/plotbench/csmap_benchmark.cpp
index e8243285..46bd695c 100644
--- a/benchmarks/plotbench/csmap_benchmark.cpp
+++ b/benchmarks/plotbench/csmap_benchmark.cpp
@@ -29,30 +29,30 @@ Sample test_std_map() {
csrandom(seed);
s.test[INSERT].t1 = clock();
container con;
- c_forloop (i, N/2) con.emplace(crandom() & mask1, i);
- c_forloop (i, N/2) con.emplace(i, i);
+ c_forrange (i, N/2) con.emplace(crandom() & mask1, i);
+ c_forrange (i, N/2) con.emplace(i, i);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = con.size();
csrandom(seed);
s.test[ERASE].t1 = clock();
- c_forloop (N) con.erase(crandom() & mask1);
+ c_forrange (N) con.erase(crandom() & mask1);
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = con.size();
}{
container con;
csrandom(seed);
- c_forloop (i, N/2) con.emplace(crandom() & mask1, i);
- c_forloop (i, N/2) con.emplace(i, i);
+ c_forrange (i, N/2) con.emplace(crandom() & mask1, i);
+ c_forrange (i, N/2) con.emplace(i, i);
csrandom(seed);
s.test[FIND].t1 = clock();
size_t sum = 0;
container::iterator it;
- c_forloop (N) if ((it = con.find(crandom() & mask1)) != con.end()) sum += it->second;
+ c_forrange (N) if ((it = con.find(crandom() & mask1)) != con.end()) sum += it->second;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) for (auto i: con) sum += i.second;
+ c_forrange (R) for (auto i: con) sum += i.second;
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -74,33 +74,33 @@ Sample test_stc_map() {
csrandom(seed);
s.test[INSERT].t1 = clock();
container con = csmap_x_init();
- c_forloop (i, N/2) csmap_x_insert(&con, crandom() & mask1, i);
- c_forloop (i, N/2) csmap_x_insert(&con, i, i);
+ c_forrange (i, N/2) csmap_x_insert(&con, crandom() & mask1, i);
+ c_forrange (i, N/2) csmap_x_insert(&con, i, i);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = csmap_x_size(&con);
csrandom(seed);
s.test[ERASE].t1 = clock();
- c_forloop (N) csmap_x_erase(&con, crandom() & mask1);
+ c_forrange (N) csmap_x_erase(&con, crandom() & mask1);
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = csmap_x_size(&con);
csmap_x_drop(&con);
}{
container con = csmap_x_init();
csrandom(seed);
- c_forloop (i, N/2) csmap_x_insert(&con, crandom() & mask1, i);
- c_forloop (i, N/2) csmap_x_insert(&con, i, i);
+ c_forrange (i, N/2) csmap_x_insert(&con, crandom() & mask1, i);
+ c_forrange (i, N/2) csmap_x_insert(&con, i, i);
csrandom(seed);
s.test[FIND].t1 = clock();
size_t sum = 0;
const csmap_x_value* val;
- c_forloop (N)
+ c_forrange (N)
if ((val = csmap_x_get(&con, crandom() & mask1)))
sum += val->second;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) c_foreach (i, csmap_x, con) sum += i.ref->second;
+ c_forrange (R) c_foreach (i, csmap_x, con) sum += i.ref->second;
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -114,10 +114,10 @@ Sample test_stc_map() {
int main(int argc, char* argv[])
{
Sample std_s[SAMPLES + 1], stc_s[SAMPLES + 1];
- c_forloop (i, SAMPLES) {
+ c_forrange (i, SAMPLES) {
std_s[i] = test_std_map();
stc_s[i] = test_stc_map();
- if (i > 0) c_forloop (j, N_TESTS) {
+ if (i > 0) c_forrange (j, N_TESTS) {
if (secs(std_s[i].test[j]) < secs(std_s[0].test[j])) std_s[0].test[j] = std_s[i].test[j];
if (secs(stc_s[i].test[j]) < secs(stc_s[0].test[j])) stc_s[0].test[j] = stc_s[i].test[j];
if (stc_s[i].test[j].sum != stc_s[0].test[j].sum) printf("Error in sum: test %lld, sample %lld\n", i, j);
@@ -127,17 +127,17 @@ int main(int argc, char* argv[])
bool header = (argc > 2 && argv[2][0] == '1');
float std_sum = 0, stc_sum = 0;
- c_forloop (j, N_TESTS) {
+ c_forrange (j, N_TESTS) {
std_sum += secs(std_s[0].test[j]);
stc_sum += secs(stc_s[0].test[j]);
}
if (header) printf("Compiler,Library,C,Method,Seconds,Ratio\n");
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, operations[j], secs(std_s[0].test[j]), 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, "total", std_sum, 1.0f);
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, operations[j], secs(stc_s[0].test[j]), secs(std_s[0].test[j]) ? secs(stc_s[0].test[j])/secs(std_s[0].test[j]) : 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, "total", stc_sum, stc_sum/std_sum);
}
diff --git a/benchmarks/plotbench/cvec_benchmark.cpp b/benchmarks/plotbench/cvec_benchmark.cpp
index 347a6319..fe7e09fb 100644
--- a/benchmarks/plotbench/cvec_benchmark.cpp
+++ b/benchmarks/plotbench/cvec_benchmark.cpp
@@ -29,27 +29,27 @@ Sample test_std_vector() {
s.test[INSERT].t1 = clock();
container con;
csrandom(seed);
- c_forloop (N) con.push_back(crandom() & mask1);
+ c_forrange (N) con.push_back(crandom() & mask1);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = con.size();
s.test[ERASE].t1 = clock();
- c_forloop (N) con.pop_back();
+ c_forrange (N) con.pop_back();
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = con.size();
}{
container con;
csrandom(seed);
- c_forloop (N) con.push_back(crandom() & mask2);
+ c_forrange (N) con.push_back(crandom() & mask2);
s.test[FIND].t1 = clock();
size_t sum = 0;
//container::iterator it;
// Iteration - not inherent find - skipping
- //c_forloop (S) if ((it = std::find(con.begin(), con.end(), crandom() & mask2)) != con.end()) sum += *it;
+ //c_forrange (S) if ((it = std::find(con.begin(), con.end(), crandom() & mask2)) != con.end()) sum += *it;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) c_forloop (i, N) sum += con[i];
+ c_forrange (R) c_forrange (i, N) sum += con[i];
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -71,27 +71,27 @@ Sample test_stc_vector() {
s.test[INSERT].t1 = clock();
container con = cvec_x_init();
csrandom(seed);
- c_forloop (N) cvec_x_push_back(&con, crandom() & mask1);
+ c_forrange (N) cvec_x_push_back(&con, crandom() & mask1);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = cvec_x_size(&con);
s.test[ERASE].t1 = clock();
- c_forloop (N) { cvec_x_pop_back(&con); }
+ c_forrange (N) { cvec_x_pop_back(&con); }
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = cvec_x_size(&con);
cvec_x_drop(&con);
}{
csrandom(seed);
container con = cvec_x_init();
- c_forloop (N) cvec_x_push_back(&con, crandom() & mask2);
+ c_forrange (N) cvec_x_push_back(&con, crandom() & mask2);
s.test[FIND].t1 = clock();
size_t sum = 0;
//cvec_x_iter it, end = cvec_x_end(&con);
- //c_forloop (S) if ((it = cvec_x_find(&con, crandom() & mask2)).ref != end.ref) sum += *it.ref;
+ //c_forrange (S) if ((it = cvec_x_find(&con, crandom() & mask2)).ref != end.ref) sum += *it.ref;
s.test[FIND].t2 = clock();
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forloop (R) c_forloop (i, N) sum += con.data[i];
+ c_forrange (R) c_forrange (i, N) sum += con.data[i];
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -105,10 +105,10 @@ Sample test_stc_vector() {
int main(int argc, char* argv[])
{
Sample std_s[SAMPLES + 1] = {{NULL}}, stc_s[SAMPLES + 1] = {{NULL}};
- c_forloop (i, SAMPLES) {
+ c_forrange (i, SAMPLES) {
std_s[i] = test_std_vector();
stc_s[i] = test_stc_vector();
- if (i > 0) c_forloop (j, N_TESTS) {
+ if (i > 0) c_forrange (j, N_TESTS) {
if (secs(std_s[i].test[j]) < secs(std_s[0].test[j])) std_s[0].test[j] = std_s[i].test[j];
if (secs(stc_s[i].test[j]) < secs(stc_s[0].test[j])) stc_s[0].test[j] = stc_s[i].test[j];
if (stc_s[i].test[j].sum != stc_s[0].test[j].sum) printf("Error in sum: test %lld, sample %lld\n", i, j);
@@ -118,17 +118,17 @@ int main(int argc, char* argv[])
bool header = (argc > 2 && argv[2][0] == '1');
float std_sum = 0, stc_sum = 0;
- c_forloop (j, N_TESTS) {
+ c_forrange (j, N_TESTS) {
std_sum += secs(std_s[0].test[j]);
stc_sum += secs(stc_s[0].test[j]);
}
if (header) printf("Compiler,Library,C,Method,Seconds,Ratio\n");
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, operations[j], secs(std_s[0].test[j]), 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, std_s[0].name, N, "total", std_sum, 1.0f);
- c_forloop (j, N_TESTS)
+ c_forrange (j, N_TESTS)
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, operations[j], secs(stc_s[0].test[j]), secs(std_s[0].test[j]) ? secs(stc_s[0].test[j])/secs(std_s[0].test[j]) : 1.0f);
printf("%s,%s n:%d,%s,%.3f,%.3f\n", comp, stc_s[0].name, N, "total", stc_sum, stc_sum/std_sum);
}
diff --git a/docs/ccommon_api.md b/docs/ccommon_api.md
index 32f2f3dc..3468e6d2 100644
--- a/docs/ccommon_api.md
+++ b/docs/ccommon_api.md
@@ -192,24 +192,24 @@ c_forpair (id, count, csmap_ii, map)
// (3 2) (5 4) (7 3) (12 5) (23 1)
```
-### c_forloop
+### c_forrange
Abstraction for iterating sequence of numbers. Like python's **for** *i* **in** *range()* loop.
| Usage | Python equivalent |
|:--------------------------------------------|:-------------------------------------|
-| `c_forloop (stop)` | `for _ in range(stop):` |
-| `c_forloop (i, stop) // i type = long long` | `for i in range(stop):` |
-| `c_forloop (i, start, stop)` | `for i in range(start, stop):` |
-| `c_forloop (i, start, stop, step)` | `for i in range(start, stop, step):` |
+| `c_forrange (stop)` | `for _ in range(stop):` |
+| `c_forrange (i, stop) // i type = long long` | `for i in range(stop):` |
+| `c_forrange (i, start, stop)` | `for i in range(start, stop):` |
+| `c_forrange (i, start, stop, step)` | `for i in range(start, stop, step):` |
```c
-c_forloop (5) printf("x");
+c_forrange (5) printf("x");
// xxxxx
-c_forloop (i, 5) printf(" %lld", i);
+c_forrange (i, 5) printf(" %lld", i);
// 0 1 2 3 4
-c_forloop (i, -3, 3) printf(" %lld", i);
+c_forrange (i, -3, 3) printf(" %lld", i);
// -3 -2 -1 0 1 2
-c_forloop (i, 30, 0, -5) printf(" %lld", i);
+c_forrange (i, 30, 0, -5) printf(" %lld", i);
// 30 25 20 15 10 5
```
@@ -244,7 +244,7 @@ bool isPrime(int i) {
int main() {
c_auto (IVec, vec) {
- c_forloop (i, 1000) IVec_push(&vec, 1000000 + i);
+ c_forrange (i, 1000) IVec_push(&vec, 1000000 + i);
c_forfilter (i, IVec, vec,
isOdd(*i.ref)
diff --git a/docs/clist_api.md b/docs/clist_api.md
index 58afb64a..7e2b9c58 100644
--- a/docs/clist_api.md
+++ b/docs/clist_api.md
@@ -114,7 +114,7 @@ int main() {
c_forlist (i, double, {10., 20., 30., 40., 50., 60., 70., 80., 90.})
DList_push_back(&list, *i.ref);
- c_forloop (i, 1, 10) {
+ c_forrange (i, 1, 10) {
if (i & 1) DList_push_front(&list, (double) i);
else DList_push_back(&list, (double) i);
}
diff --git a/docs/cpque_api.md b/docs/cpque_api.md
index f3e36a3d..8b990be8 100644
--- a/docs/cpque_api.md
+++ b/docs/cpque_api.md
@@ -76,16 +76,16 @@ int main()
c_auto (cpque_i, heap)
{
// Push ten million random numbers to priority queue.
- c_forloop (N)
+ c_forrange (N)
cpque_i_push(&heap, stc64_uniform(&rng, &dist));
// Add some negative ones.
int nums[] = {-231, -32, -873, -4, -343};
- c_forloop (i, c_arraylen(nums))
+ c_forrange (i, c_arraylen(nums))
cpque_i_push(&heap, nums[i]);
// Extract and display the fifty smallest.
- c_forloop (50) {
+ c_forrange (50) {
printf("%" PRIdMAX " ", *cpque_i_top(&heap));
cpque_i_pop(&heap);
}
diff --git a/docs/cqueue_api.md b/docs/cqueue_api.md
index 43f953b3..a8be9e86 100644
--- a/docs/cqueue_api.md
+++ b/docs/cqueue_api.md
@@ -68,10 +68,10 @@ int main() {
cqueue_i Q = cqueue_i_init();
// push() and pop() a few.
- c_forloop (i, 20)
+ c_forrange (i, 20)
cqueue_i_push(&Q, i);
- c_forloop (5)
+ c_forrange (5)
cqueue_i_pop(&Q);
c_foreach (i, cqueue_i, Q)
diff --git a/docs/crandom_api.md b/docs/crandom_api.md
index d6180490..3e6ae8f0 100644
--- a/docs/crandom_api.md
+++ b/docs/crandom_api.md
@@ -94,7 +94,7 @@ int main()
// Create histogram map
csmap_i mhist = csmap_i_init();
- c_forloop (N) {
+ c_forrange (N) {
int index = (int) round( stc64_normalf(&rng, &dist) );
csmap_i_emplace(&mhist, index, 0).ref->second += 1;
}
diff --git a/docs/cregex_api.md b/docs/cregex_api.md
index b715791d..0640f17b 100644
--- a/docs/cregex_api.md
+++ b/docs/cregex_api.md
@@ -128,13 +128,13 @@ To iterate multiple matches in an input string, you may use
```c
csview match[5] = {0};
while (cregex_find(&re, input, match, cre_m_next) == cre_success)
- c_forloop (k, cregex_captures(&re))
+ c_forrange (k, cregex_captures(&re))
printf("submatch %lld: %.*s\n", k, c_ARGsv(match[k]));
```
There is also a safe macro which simplifies this:
```c
c_formatch (it, &re, input)
- c_forloop (k, cregex_captures(&re))
+ c_forrange (k, cregex_captures(&re))
printf("submatch %lld: %.*s\n", k, c_ARGsv(it.match[k]));
```
diff --git a/examples/arc_demo.c b/examples/arc_demo.c
index 96e5dadd..c282bdbd 100644
--- a/examples/arc_demo.c
+++ b/examples/arc_demo.c
@@ -25,7 +25,7 @@ int main()
c_auto (csset_Arc, set) // declare and init set, call csset_Arc_drop() at scope exit
{
const int years[] = {2021, 2012, 2022, 2015};
- c_forloop (i, c_arraylen(years))
+ c_forrange (i, c_arraylen(years))
cvec_Arc_push(&vec, Arc_from(years[i]));
printf("vec:");
diff --git a/examples/birthday.c b/examples/birthday.c
index ce7a7edb..443394b2 100644
--- a/examples/birthday.c
+++ b/examples/birthday.c
@@ -21,7 +21,7 @@ static void test_repeats(void)
c_auto (cmap_ic, m)
{
cmap_ic_reserve(&m, N);
- c_forloop (i, N) {
+ c_forrange (i, N) {
uint64_t k = stc64_rand(&rng) & mask;
int v = cmap_ic_insert(&m, k, 0).ref->second += 1;
if (v > 1) printf("repeated value %" c_zu " (%d) at 2^%d\n", k, v, (int) log2((double) i));
@@ -42,7 +42,7 @@ void test_distribution(void)
const size_t N = 1ull << BITS ;
c_auto (cmap_x, map) {
- c_forloop (N) {
+ c_forrange (N) {
uint64_t k = stc64_rand(&rng);
cmap_x_insert(&map, k & 0xf, 0).ref->second += 1;
}
diff --git a/examples/bits.c b/examples/bits.c
index 505be497..48c77ed0 100644
--- a/examples/bits.c
+++ b/examples/bits.c
@@ -17,7 +17,7 @@ int main()
printf(" str: %s\n", cbits_to_str(&set, str, 0, -1));
printf("%4" c_zu ": ", cbits_size(&set));
- c_forloop (i, cbits_size(&set))
+ c_forrange (i, cbits_size(&set))
printf("%d", cbits_test(&set, i));
puts("");
@@ -27,12 +27,12 @@ int main()
cbits_resize(&set, 102, true);
cbits_set_value(&set, 99, false);
printf("%4" c_zu ": ", cbits_size(&set));
- c_forloop (i, cbits_size(&set))
+ c_forrange (i, cbits_size(&set))
printf("%d", cbits_test(&set, i));
puts("\nIterate:");
printf("%4" c_zu ": ", cbits_size(&set));
- c_forloop (i, cbits_size(&set))
+ c_forrange (i, cbits_size(&set))
printf("%d", cbits_test(&set, i));
puts("");
@@ -42,19 +42,19 @@ int main()
cbits_set(&s2, 17);
cbits_set(&s2, 18);
printf(" new: ");
- c_forloop (i, cbits_size(&s2))
+ c_forrange (i, cbits_size(&s2))
printf("%d", cbits_test(&s2, i));
puts("");
printf(" xor: ");
cbits_xor(&set, &s2);
- c_forloop (i, cbits_size(&set))
+ c_forrange (i, cbits_size(&set))
printf("%d", cbits_test(&set, i));
puts("");
cbits_set_all(&set, false);
printf("%4" c_zu ": ", cbits_size(&set));
- c_forloop (i, cbits_size(&set))
+ c_forrange (i, cbits_size(&set))
printf("%d", cbits_test(&set, i));
puts("");
}
diff --git a/examples/bits2.c b/examples/bits2.c
index c2c1f6be..e42ca4e5 100644
--- a/examples/bits2.c
+++ b/examples/bits2.c
@@ -24,19 +24,19 @@ int main()
Bits_reset(&s2, 66);
Bits_reset(&s2, 67);
printf(" s2: ");
- c_forloop (i, Bits_size(&s2))
+ c_forrange (i, Bits_size(&s2))
printf("%d", Bits_test(&s2, i));
puts("");
printf("xor: ");
Bits_xor(&s1, &s2);
- c_forloop (i, Bits_size(&s1))
+ c_forrange (i, Bits_size(&s1))
printf("%d", Bits_test(&s1, i));
puts("");
printf("all: ");
Bits_set_pattern(&s1, 0x3333333333333333);
- c_forloop (i, Bits_size(&s1))
+ c_forrange (i, Bits_size(&s1))
printf("%d", Bits_test(&s1, i));
puts("");
}
diff --git a/examples/books.c b/examples/books.c
index e1962a92..bdcc5889 100644
--- a/examples/books.c
+++ b/examples/books.c
@@ -41,7 +41,7 @@ int main()
// Look up the values associated with some keys.
const char* to_find[] = {"Pride and Prejudice", "Alice's Adventure in Wonderland"};
- c_forloop (i, c_arraylen(to_find)) {
+ c_forrange (i, c_arraylen(to_find)) {
const cmap_str_value* b = cmap_str_get(&book_reviews, to_find[i]);
if (b)
printf("%s: %s\n", cstr_str(&b->first), cstr_str(&b->second));
diff --git a/examples/convert.c b/examples/convert.c
index 1372b830..18be3c81 100644
--- a/examples/convert.c
+++ b/examples/convert.c
@@ -37,7 +37,7 @@ int main()
cvec_str_emplace_back(&keys, cstr_str(&i.ref->first));
cvec_str_emplace_back(&values, cstr_str(&i.ref->second));
}
- c_forloop (i, cvec_str_size(&keys))
+ c_forrange (i, cvec_str_size(&keys))
printf(" %s: %s\n", cstr_str(keys.data + i), cstr_str(values.data + i));
puts("\nCOPY VEC TO LIST:");
diff --git a/examples/cpque.c b/examples/cpque.c
index 183f83c1..5866f17b 100644
--- a/examples/cpque.c
+++ b/examples/cpque.c
@@ -31,15 +31,15 @@ int main()
c_auto (ipque, q, q2, q3) // init() and defered drop()
{
less_fn = int_less;
- c_forloop (i, n) ipque_push(&q, data[i]);
+ c_forrange (i, n) ipque_push(&q, data[i]);
print_queue(q);
less_fn = int_greater;
- c_forloop (i, n) ipque_push(&q2, data[i]);
+ c_forrange (i, n) ipque_push(&q2, data[i]);
print_queue(q2);
less_fn = int_lambda;
- c_forloop (i, n) ipque_push(&q3, data[i]);
+ c_forrange (i, n) ipque_push(&q3, data[i]);
print_queue(q3);
}
}
diff --git a/examples/forloops.c b/examples/forloops.c
index 5913aac2..2c604877 100644
--- a/examples/forloops.c
+++ b/examples/forloops.c
@@ -12,17 +12,17 @@
int main()
{
- puts("c_forloop:");
- c_forloop (30) printf(" xx");
+ puts("c_forrange:");
+ c_forrange (30) printf(" xx");
puts("");
- c_forloop (i, 30) printf(" %lld", i);
+ c_forrange (i, 30) printf(" %lld", i);
puts("");
- c_forloop (i, 30, 60) printf(" %lld", i);
+ c_forrange (i, 30, 60) printf(" %lld", i);
puts("");
- c_forloop (i, 30, 90, 2) printf(" %lld", i);
+ c_forrange (i, 30, 90, 2) printf(" %lld", i);
puts("\n\nc_forlist:");
diff --git a/examples/gauss1.c b/examples/gauss1.c
index 65a6cc07..675ff338 100644
--- a/examples/gauss1.c
+++ b/examples/gauss1.c
@@ -32,7 +32,7 @@ int main()
c_auto (cvec_ii, histvec)
c_auto (cmap_ii, histmap)
{
- c_forloop (N) {
+ c_forrange (N) {
int index = (int) round( stc64_normalf(&rng, &dist) );
cmap_ii_insert(&histmap, index, 0).ref->second += 1;
}
diff --git a/examples/gauss2.c b/examples/gauss2.c
index 6bbd7fb3..2e07c5a5 100644
--- a/examples/gauss2.c
+++ b/examples/gauss2.c
@@ -25,7 +25,7 @@ int main()
// Create and init histogram map with defered destruct
c_auto (csmap_int, mhist)
{
- c_forloop (N) {
+ c_forrange (N) {
int index = (int) round( stc64_normalf(&rng, &dist) );
csmap_int_insert(&mhist, index, 0).ref->second += 1;
}
diff --git a/examples/inits.c b/examples/inits.c
index 2e51e860..324168cf 100644
--- a/examples/inits.c
+++ b/examples/inits.c
@@ -40,7 +40,7 @@ int main(void)
const float nums[] = {4.0f, 2.0f, 5.0f, 3.0f, 1.0f};
// PRIORITY QUEUE
- c_forloop (i, c_arraylen(nums))
+ c_forrange (i, c_arraylen(nums))
cpque_f_push(&floats, nums[i]);
puts("\npop and show high priorites first:");
diff --git a/examples/list.c b/examples/list.c
index 42be81f3..e94a9f18 100644
--- a/examples/list.c
+++ b/examples/list.c
@@ -17,7 +17,7 @@ int main() {
stc64_t rng = stc64_new(1234);
stc64_uniformf_t dist = stc64_uniformf_new(100.0f, n);
int m = 0;
- c_forloop (n)
+ c_forrange (n)
clist_fx_push_back(&list, stc64_uniformf(&rng, &dist)), ++m;
double sum = 0.0;
printf("sumarize %d:\n", m);
diff --git a/examples/new_queue.c b/examples/new_queue.c
index 9445e040..c1e4e7b0 100644
--- a/examples/new_queue.c
+++ b/examples/new_queue.c
@@ -28,12 +28,12 @@ int main() {
c_auto (IQ, Q)
{
// Push eight million random numbers onto the queue.
- c_forloop (n)
+ c_forrange (n)
IQ_push(&Q, stc64_uniform(&rng, &dist));
// Push or pop on the queue 50 million times
printf("befor: size %" c_zu ", capacity %" c_zu "\n", IQ_size(&Q), IQ_capacity(&Q));
- c_forloop (n) {
+ c_forrange (n) {
int r = stc64_uniform(&rng, &dist);
if (r & 3)
IQ_push(&Q, r);
diff --git a/examples/prime.c b/examples/prime.c
index 851ee40b..01528d80 100644
--- a/examples/prime.c
+++ b/examples/prime.c
@@ -36,7 +36,7 @@ int main(void)
printf("number of primes: %" c_zu ", time: %f\n", np, (t2 - t1) / (float)CLOCKS_PER_SEC);
puts("Show all the primes in the range [2, 1000):");
printf("2");
- c_forloop (i, 3, 1000, 2)
+ c_forrange (i, 3, 1000, 2)
if (cbits_test(&primes, i>>1)) printf(" %lld", i);
puts("");
diff --git a/examples/priority.c b/examples/priority.c
index d82c889a..82f95d09 100644
--- a/examples/priority.c
+++ b/examples/priority.c
@@ -16,18 +16,18 @@ int main() {
{
// Push ten million random numbers to priority queue
printf("Push %" c_zu " numbers\n", N);
- c_forloop (N)
+ c_forrange (N)
cpque_i_push(&heap, stc64_uniform(&rng, &dist));
// push some negative numbers too.
c_forlist (i, int, {-231, -32, -873, -4, -343})
cpque_i_push(&heap, *i.ref);
- c_forloop (N)
+ c_forrange (N)
cpque_i_push(&heap, stc64_uniform(&rng, &dist));
puts("Extract the hundred smallest.");
- c_forloop (100) {
+ c_forrange (100) {
printf("%" PRIdMAX " ", *cpque_i_top(&heap));
cpque_i_pop(&heap);
}
diff --git a/examples/queue.c b/examples/queue.c
index cf75615c..cdf4cdb3 100644
--- a/examples/queue.c
+++ b/examples/queue.c
@@ -14,12 +14,12 @@ int main() {
c_auto (cqueue_i, queue)
{
// Push ten million random numbers onto the queue.
- c_forloop (n)
+ c_forrange (n)
cqueue_i_push(&queue, stc64_uniform(&rng, &dist));
// Push or pop on the queue ten million times
printf("%d\n", n);
- c_forloop (n) { // forrange uses initial n only.
+ c_forrange (n) { // forrange uses initial n only.
int r = stc64_uniform(&rng, &dist);
if (r & 1)
++n, cqueue_i_push(&queue, r);
diff --git a/examples/random.c b/examples/random.c
index 638f2a9f..38ef2e39 100644
--- a/examples/random.c
+++ b/examples/random.c
@@ -14,7 +14,7 @@ int main()
printf("Compare speed of full and unbiased ranged random numbers...\n");
sum = 0;
before = clock();
- c_forloop (N) {
+ c_forrange (N) {
sum += (uint32_t) stc64_rand(&rng);
}
diff = clock() - before;
@@ -24,7 +24,7 @@ int main()
rng = stc64_new(seed);
sum = 0;
before = clock();
- c_forloop (N) {
+ c_forrange (N) {
sum += stc64_uniform(&rng, &dist1); // unbiased
}
diff = clock() - before;
@@ -33,7 +33,7 @@ int main()
sum = 0;
rng = stc64_new(seed);
before = clock();
- c_forloop (N) {
+ c_forrange (N) {
sum += stc64_rand(&rng) % (range + 1); // biased
}
diff = clock() - before;
diff --git a/examples/regex2.c b/examples/regex2.c
index d3a22f5a..013fa557 100644
--- a/examples/regex2.c
+++ b/examples/regex2.c
@@ -15,7 +15,7 @@ int main()
};
c_with (cregex re = cregex_init(), cregex_drop(&re))
- c_forloop (i, c_arraylen(s))
+ c_forrange (i, c_arraylen(s))
{
int res = cregex_compile(&re, s[i].pattern, 0);
if (res < 0) {
@@ -25,7 +25,7 @@ int main()
printf("input: %s\n", s[i].input);
c_formatch (j, &re, s[i].input) {
- c_forloop (k, cregex_captures(&re))
+ c_forrange (k, cregex_captures(&re))
printf(" submatch %lld: %.*s\n", k, c_ARGsv(j.match[k]));
puts("");
}
diff --git a/examples/stack.c b/examples/stack.c
index fad2093b..a6a4a492 100644
--- a/examples/stack.c
+++ b/examples/stack.c
@@ -14,12 +14,12 @@ int main() {
c_auto (cstack_i, stack)
c_auto (cstack_c, chars)
{
- c_forloop (i, 101)
+ c_forrange (i, 101)
cstack_i_push(&stack, i*i);
printf("%d\n", *cstack_i_top(&stack));
- c_forloop (i, 90)
+ c_forrange (i, 90)
cstack_i_pop(&stack);
c_foreach (i, cstack_i, stack)
diff --git a/include/stc/cbits.h b/include/stc/cbits.h
index 10a703e9..fc45feef 100644
--- a/include/stc/cbits.h
+++ b/include/stc/cbits.h
@@ -33,7 +33,7 @@ int main() {
cbits_resize(&bset, 43, false);
printf("%4zu: ", cbits_size(&bset));
- c_forloop (i, cbits_size(&bset))
+ c_forrange (i, cbits_size(&bset))
printf("%d", cbits_at(&bset, i));
puts("");
cbits_set(&bset, 28);
@@ -43,7 +43,7 @@ int main() {
cbits_set_value(&bset, 99, false);
printf("%4zu: ", cbits_size(&bset));
- c_forloop (i, cbits_size(&bset))
+ c_forrange (i, cbits_size(&bset))
printf("%d", cbits_at(&bset, i));
puts("");
}
diff --git a/include/stc/ccommon.h b/include/stc/ccommon.h
index 394964c0..52c05693 100644
--- a/include/stc/ccommon.h
+++ b/include/stc/ccommon.h
@@ -202,12 +202,13 @@ STC_INLINE char* c_strnstrn(const char *s, const char *needle,
; _.it.ref && (_.key = &_.it.ref->first, _.val = &_.it.ref->second) \
; C##_next(&_.it))
-#define c_forloop(...) c_MACRO_OVERLOAD(c_forloop, __VA_ARGS__)
-#define c_forloop1(stop) c_forloop3(_i, 0, stop)
-#define c_forloop2(i, stop) c_forloop3(i, 0, stop)
-#define c_forloop3(i, start, stop) \
+#define c_forloop c_forrange // [deprecated]
+#define c_forrange(...) c_MACRO_OVERLOAD(c_forrange, __VA_ARGS__)
+#define c_forrange1(stop) c_forrange3(_i, 0, stop)
+#define c_forrange2(i, stop) c_forrange3(i, 0, stop)
+#define c_forrange3(i, start, stop) \
for (long long i=start, _end=stop; i < _end; ++i)
-#define c_forloop4(i, start, stop, step) \
+#define c_forrange4(i, start, stop, step) \
for (long long i=start, _inc=step, _end=(stop) - (_inc > 0) \
; (_inc > 0) ^ (i > _end); i += _inc)
diff --git a/src/checkauto.l b/src/checkauto.l
index 00f7ef45..ba0f4101 100644
--- a/src/checkauto.l
+++ b/src/checkauto.l
@@ -34,7 +34,6 @@ STR \"([^"\\]|\\.)*\"
c_foreach |
c_forpair |
c_forrange |
-c_forloop |
c_forfilter |
c_forwhile |
for |