//******************************************************** // The following code example is taken from the book // C++17 - The Complete Guide // by Nicolai M. Josuttis (www.josuttis.com) // http://www.cppstd17.com // // The code is licensed under a // Creative Commons Attribution 4.0 International License // http://creativecommons.org/licenses/by/4.0/ //******************************************************** #include #include #include #include void printSum(long num) { // create coll with num sequences of 0.1 0.3 0.0001: std::vector coll; coll.reserve(num * 4); for (long i=0; i < num; ++i) { coll.insert(coll.end(), {0.1, 0.3, 0.00001}); } auto sum1 = std::accumulate(coll.begin(), coll.end(), 0.0); std::cout << "accumulate(): " << sum1 << '\n'; auto sum2 = std::reduce(std::execution::par, coll.begin(), coll.end(), 0.0); std::cout << "reduce(): " << sum2 << '\n'; std::cout << (sum1==sum2 ? "equal\n" : "differ\n"); } #include int main() { std::cout << std::setprecision(20); printSum(1); printSum(1000); printSum(1000000); printSum(10000000); }