#include #include struct Gen { int value; int operator()() { return value++; } }; int transform(int v, std::mt19937& rng) { std::uniform_int_distribution d(-3, 3); return v + d(rng); } int main() { auto gen = alsk::edsl::makeOperand(); auto transform = alsk::edsl::makeOperand, alsk::arg::RNG), FN(::transform)>(); auto selectMin = alsk::edsl::makeOperand>>(); constexpr auto body = (10*alsk::edsl::link()>(gen, transform)) ->* selectMin; auto algo = alsk::edsl::implement(body); algo.skeleton.task.task<0>() = Gen{5}; algo.executor.repeatability.upTo(8); algo.executor.cores = 8; auto r = algo(); std::printf("%d\n", r); }