summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authortylov <[email protected]>2023-07-21 11:37:07 +0200
committertylov <[email protected]>2023-07-21 11:37:07 +0200
commit674b8b5db87dac8b470feae5d2c0ef30846a6bb7 (patch)
treebac87f309ed47a53322ce158c3af06ec3dfc890d
parentf3794f2b86b6f7f85096a0c2e9ca5720aed53300 (diff)
downloadSTC-modified-674b8b5db87dac8b470feae5d2c0ef30846a6bb7.tar.gz
STC-modified-674b8b5db87dac8b470feae5d2c0ef30846a6bb7.zip
Renamed crange_make(...) => crange_init(...), deprecated crange_make().
-rw-r--r--docs/ccommon_api.md12
-rw-r--r--include/stc/algo/crange.h13
-rw-r--r--misc/examples/algorithms/forfilter.c4
-rw-r--r--misc/examples/bitsets/prime.c2
4 files changed, 16 insertions, 15 deletions
diff --git a/docs/ccommon_api.md b/docs/ccommon_api.md
index 11d425e5..0e8d9719 100644
--- a/docs/ccommon_api.md
+++ b/docs/ccommon_api.md
@@ -81,16 +81,16 @@ c_forrange (i, 30, 0, -5) printf(" %lld", i);
### crange
A number sequence generator type, similar to [boost::irange](https://www.boost.org/doc/libs/release/libs/range/doc/html/range/reference/ranges/irange.html). The **crange_value** type is `long long`. Below *start*, *stop*, and *step* are of type *crange_value*:
```c
-crange crange_make(stop); // will generate 0, 1, ..., stop-1
-crange crange_make(start, stop); // will generate start, start+1, ... stop-1
-crange crange_make(start, stop, step); // will generate start, start+step, ... upto-not-including stop
+crange crange_init(stop); // will generate 0, 1, ..., stop-1
+crange crange_init(start, stop); // will generate start, start+1, ... stop-1
+crange crange_init(start, stop, step); // will generate start, start+step, ... upto-not-including stop
// note that step may be negative.
crange_iter crange_begin(crange* self);
crange_iter crange_end(crange* self);
void crange_next(crange_iter* it);
// 1. All primes less than 32:
-crange r1 = crange_make(3, 32, 2);
+crange r1 = crange_init(3, 32, 2);
printf("2"); // first prime
c_forfilter (i, crange, r1, isPrime(*i.ref))
printf(" %lld", *i.ref);
@@ -98,7 +98,7 @@ c_forfilter (i, crange, r1, isPrime(*i.ref))
// 2. The first 11 primes:
printf("2");
-crange range = crange_make(3, INT64_MAX, 2);
+crange range = crange_init(3, INT64_MAX, 2);
c_forfilter (i, crange, range,
isPrime(*i.ref) &&
c_flt_take(10)
@@ -139,7 +139,7 @@ bool isPrime(long long i) {
int main(void) {
// Get 10 prime numbers starting from 1000. Skip the first 15 primes,
// then select every 25th prime (including the initial).
- crange R = crange_make(1001, INT64_MAX, 2); // 1001, 1003, ...
+ crange R = crange_init(1001, INT64_MAX, 2); // 1001, 1003, ...
c_forfilter (i, crange, R,
isPrime(*i.ref) &&
diff --git a/include/stc/algo/crange.h b/include/stc/algo/crange.h
index 03162a2d..faeda162 100644
--- a/include/stc/algo/crange.h
+++ b/include/stc/algo/crange.h
@@ -27,14 +27,14 @@
int main(void)
{
- crange r1 = crange_make(80, 90);
+ crange r1 = crange_init(80, 90);
c_foreach (i, crange, r1)
printf(" %lld", *i.ref);
puts("");
// use a temporary crange object.
int a = 100, b = INT32_MAX;
- crange r2 = crange_make(a, b, 8);
+ crange r2 = crange_init(a, b, 8);
c_forfilter (i, crange, r2,
c_flt_skip(i, 10) &&
c_flt_take(i, 3))
@@ -51,11 +51,12 @@ typedef long long crange_value;
typedef struct { crange_value start, end, step, value; } crange;
typedef struct { crange_value *ref, end, step; } crange_iter;
-#define crange_make(...) c_MACRO_OVERLOAD(crange_make, __VA_ARGS__)
-#define crange_make_1(stop) crange_make_3(0, stop, 1)
-#define crange_make_2(start, stop) crange_make_3(start, stop, 1)
+#define crange_make crange_init // [deprecated]
+#define crange_init(...) c_MACRO_OVERLOAD(crange_init, __VA_ARGS__)
+#define crange_init_1(stop) crange_init_3(0, stop, 1)
+#define crange_init_2(start, stop) crange_init_3(start, stop, 1)
-STC_INLINE crange crange_make_3(crange_value start, crange_value stop, crange_value step)
+STC_INLINE crange crange_init_3(crange_value start, crange_value stop, crange_value step)
{ crange r = {start, stop - (step > 0), step}; return r; }
STC_INLINE crange_iter crange_begin(crange* self)
diff --git a/misc/examples/algorithms/forfilter.c b/misc/examples/algorithms/forfilter.c
index 644b8459..c1426045 100644
--- a/misc/examples/algorithms/forfilter.c
+++ b/misc/examples/algorithms/forfilter.c
@@ -54,7 +54,7 @@ fn main() {
void demo2(void)
{
IVec vector = {0};
- crange r = crange_make(INT64_MAX);
+ crange r = crange_init(INT64_MAX);
c_forfilter (x, crange, r,
c_flt_skipwhile(x, *x.ref != 11) &&
(*x.ref % 2) != 0 &&
@@ -124,7 +124,7 @@ void demo5(void)
{
#define flt_even(i) ((*i.ref & 1) == 0)
#define flt_mid_decade(i) ((*i.ref % 10) != 0)
- crange R = crange_make(1963, INT32_MAX);
+ crange R = crange_init(1963, INT32_MAX);
c_forfilter (i, crange, R,
c_flt_skip(i,15) &&
diff --git a/misc/examples/bitsets/prime.c b/misc/examples/bitsets/prime.c
index e5764d83..462526a2 100644
--- a/misc/examples/bitsets/prime.c
+++ b/misc/examples/bitsets/prime.c
@@ -41,7 +41,7 @@ int main(void)
puts("\n");
puts("Show the last 50 primes using a temporary crange generator:");
- crange range = crange_make(n - 1, 0, -2);
+ crange range = crange_init(n - 1, 0, -2);
c_forfilter (i, crange, range,
cbits_test(&primes, *i.ref/2) &&