#include #include #include std::size_t pfor::ParallelForParameters::nThreads = 16; constexpr long n = 16; int main() { std::array a_; pfor::Operand a{a_}; std::array b_; pfor::Operand b{b_}; std::array c_; pfor::Operand c{c_}; std::array d_; pfor::Operand d{d_}; std::array e_; pfor::Operand e{e_}; std::array f_; pfor::Operand f{f_}; auto pow = pfor::makeOperator(std::pow); pfor::Index i; pfor::parallelFor(pfor::Range{0, static_cast(std::sqrt(n))}, a[i] = a[i] * b[i], c[i] = c[i+pfor::ctv<1>] - d[i], b[i] = b[i] + i, d[i] = pow(c[i], e[i]), f[injective(i*i)] = 2 * f[injective(i*i)] ); }