pfor/examples/properties.cpp

48 lines
1.4 KiB
C++

#include <iostream>
#include <pfor/pfor.h>
#include <pfor/traits.h>
int main() {
std::array<int, 1> a;
pfor::Operand<std::array<int, 1>, 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;
}
}