ICOOOLPS update

This commit is contained in:
2026-06-29 16:31:43 +02:00
parent 48a9fe1187
commit f5a218b218
6 changed files with 101 additions and 8 deletions
+42
View File
@@ -0,0 +1,42 @@
// example 1: multiply by constant
@Export
void mul_by_5(vec<uint32> &xs) {
foreach x in xs {
// xs = new vec<uint32>(x);
// return;
// uint32 y = xs[x];
// if(x > 10u) continue;
continue with 5u * x;
}
}
// example 2: pairwise sum
@Export
vec<uint32> add(const vec<uint32> &xs, const vec<uint32> &ys) {
vec<uint32> out = new vec<uint32>(xs.size());
merge (x, y) in (xs, ys) into out {
continue with x + y;
}
return out;
}
// example 3: minimum
@Export
uint32 min_of(const vec<uint32> &xs) {
uint32 min;
accumulate x in xs with MAX_UINT32 into min {
continue with (x < min) ? x : min;
}
return min;
}
// example 4: counting
@Export
vec<uint32> count(const vec<uint32> &xs, uint32 max) {
vec<uint32> counters{max + 1u};
project x in xs into counters {
uint32 counter_idx = (x < max) ? x : max;
continue[counter_idx] with (curr) -> curr + 1u;
}
return counters;
}