#include #include #include int main() { std::array a; pfor::Operand, void> o{a}; pfor::Index i; auto strinc = strictinc(i*i); auto strdec = strictdec(i*i); { auto e = o[strinc] = o[strinc]+1; std::cout << "strictly inc: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl; } { auto ii = strinc + strinc; auto e = o[ii] = o[ii]+1; std::cout << "strictly inc + strictly inc: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl; } { auto ii = strinc + strdec; auto e = o[ii] = o[ii]+1; std::cout << "strictly inc + strictly dec: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl; } { auto ii = strdec + strinc; auto e = o[ii] = o[ii]+1; std::cout << "strictly dec + strictly inc: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl; } { auto ii = strdec + strdec; auto e = o[ii] = o[ii]+1; std::cout << "strictly dec + strictly dec: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl; } { auto ii = strinc - strdec; auto e = o[ii] = o[ii]+1; std::cout << "strictly inc - strictly dec: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl; } { auto ii = strdec - strinc; auto e = o[ii] = o[ii]+1; std::cout << "strictly dec - strictly inc: " << std::boolalpha << parallelTest(pfor::Range{0,0}, e) << std::endl; } }