diff --git a/external/patch-omptl b/external/patch-omptl index 6ff7c7b..63df1d1 100644 --- a/external/patch-omptl +++ b/external/patch-omptl @@ -1,6 +1,6 @@ -diff -ur omptl.old/omptl_algorithm omptl/omptl_algorithm ---- omptl.old/omptl_algorithm 2012-04-22 16:29:41.000000000 +0200 -+++ omptl/omptl_algorithm 2021-06-20 15:40:29.000000000 +0200 +diff -ur omptl.old/algorithm omptl/algorithm +--- omptl.old/algorithm 2022-06-19 08:21:39.815498672 +0200 ++++ omptl/algorithm 2022-06-19 08:21:52.953544672 +0200 @@ -20,7 +20,7 @@ #define OMPTL_ALGORITHM 1 @@ -22,32 +22,9 @@ diff -ur omptl.old/omptl_algorithm omptl/omptl_algorithm #endif #endif /* OMPTL_ALGORITHM */ -diff -ur omptl.old/omptl_algorithm_par.h omptl/omptl_algorithm_par.h ---- omptl.old/omptl_algorithm_par.h 2012-04-22 16:29:41.000000000 +0200 -+++ omptl/omptl_algorithm_par.h 2021-06-20 15:40:50.000000000 +0200 -@@ -21,8 +21,8 @@ - #include - #include - --#include --#include -+#include "omptl_tools.h" -+#include "omptl_numeric" - - #include - -@@ -1700,7 +1700,7 @@ - - std::vector pivot_used(pivots.size(), false); // can't be bool due to parallel write - -- const unsigned max_depth = std::floor(std::tr1::log2(P)); -+ const unsigned max_depth = unsigned(std::floor(std::log2(P))); - assert(1u << max_depth <= P); - for (unsigned i = 0; i < max_depth; ++i) - { -diff -ur omptl.old/omptl_numeric omptl/omptl_numeric ---- omptl.old/omptl_numeric 2012-04-22 16:29:41.000000000 +0200 -+++ omptl/omptl_numeric 2021-06-20 15:40:29.000000000 +0200 +diff -ur omptl.old/numeric omptl/numeric +--- omptl.old/numeric 2022-06-19 08:21:39.816498675 +0200 ++++ omptl/numeric 2022-06-19 08:21:52.955544679 +0200 @@ -19,7 +19,7 @@ #define OMPTL_NUMERIC 1 @@ -72,58 +49,91 @@ diff -ur omptl.old/omptl_numeric omptl/omptl_numeric +#include "omptl_numeric_extensions.h" #endif /* OMPTL_NUMERIC */ -diff -ur omptl.old/omptl_numeric_extensions.h omptl/omptl_numeric_extensions.h ---- omptl.old/omptl_numeric_extensions.h 2012-04-22 16:29:41.000000000 +0200 -+++ omptl/omptl_numeric_extensions.h 2021-06-20 15:40:29.000000000 +0200 -@@ -51,9 +51,9 @@ - } // namespace +diff -ur omptl.old/omptl_algorithm omptl/omptl_algorithm +--- omptl.old/omptl_algorithm 2022-06-19 08:21:39.815498672 +0200 ++++ omptl/omptl_algorithm 2022-06-19 08:21:52.953544672 +0200 +@@ -20,7 +20,7 @@ + #define OMPTL_ALGORITHM 1 + + #include +-#include ++#include "omptl" + + namespace omptl + { +@@ -553,9 +553,9 @@ + } // namespace omptl #ifdef _OPENMP -- #include -+ #include "omptl_numeric_extensions_par.h" +- #include ++ #include "omptl_algorithm_par.h" #else -- #include -+ #include "omptl_numeric_extensions_ser.h" +- #include ++ #include "omptl_algorithm_ser.h" #endif - namespace omptl -diff -ur omptl.old/omptl_numeric_par.h omptl/omptl_numeric_par.h ---- omptl.old/omptl_numeric_par.h 2012-04-22 16:29:41.000000000 +0200 -+++ omptl/omptl_numeric_par.h 2021-06-20 15:40:29.000000000 +0200 -@@ -23,8 +23,8 @@ - #include - #include - --#include --#include -+#include "omptl_algorithm" -+#include "omptl_tools.h" - - namespace omptl - { -diff -ur omptl.old/omptl_tools.h omptl/omptl_tools.h ---- omptl.old/omptl_tools.h 2012-04-22 16:29:41.000000000 +0200 -+++ omptl/omptl_tools.h 2021-06-20 15:40:42.000000000 +0200 -@@ -25,7 +25,7 @@ - #include - #include - --#include -+#include - - namespace omptl - { + #endif /* OMPTL_ALGORITHM */ diff -ur omptl.old/omptl_algorithm_par.h omptl/omptl_algorithm_par.h ---- omptl.old/omptl_algorithm_par.h 2012-04-22 16:29:41.000000000 +0200 -+++ omptl/omptl_algorithm_par.h 2022-06-09 13:50:05.000000000 +0200 -@@ -20,6 +20,7 @@ +--- omptl.old/omptl_algorithm_par.h 2022-06-19 08:21:39.816498675 +0200 ++++ omptl/omptl_algorithm_par.h 2022-06-19 08:23:50.705956964 +0200 +@@ -20,9 +20,10 @@ #include #include #include +#include - #include - #include +-#include +-#include ++#include "omptl_tools.h" ++#include "omptl_numeric" + + #include + +@@ -510,7 +511,7 @@ + + typename std::vector::iterator result = + std::find_if(results.begin(),results.end(), +- std::bind2nd(std::not_equal_to(), last) ); ++ std::bind(std::not_equal_to(), std::placeholders::_1, last) ); + + if ( result != results.end() ) + return *result; +@@ -569,7 +570,7 @@ + + const typename std::vector::iterator result + = std::find_if(results.begin(), results.end(), +- std::bind2nd(std::not_equal_to(), last) ); ++ std::bind(std::not_equal_to(), std::placeholders::_1, last) ); + + if ( result != results.end() ) + return *result; +@@ -654,7 +655,7 @@ + + const typename std::vector::iterator + result = std::find_if(results.begin(), results.end(), +- std::bind2nd(std::not_equal_to(), last1)); ++ std::bind(std::not_equal_to(), std::placeholders::_1, last1)); + + if ( result != results.end() ) + return *result; +@@ -953,7 +954,7 @@ + results[t] = std::lower_bound(partitions[t].first, partitions[t].second, value, comp); + + const typename std::vector::iterator result = +- std::find_if(results.begin(), results.end(), std::bind2nd(std::not_equal_to(), last) ); ++ std::find_if(results.begin(), results.end(), std::bind(std::not_equal_to(), std::placeholders::_1, last) ); + + if (result != results.end()) + return *result; +@@ -1179,7 +1180,7 @@ + + namespace detail + { +- ++ + template + Iterator _pivot_range(Iterator first, Iterator last, + const typename std::iterator_traits::value_type pivot, @@ -1309,14 +1310,14 @@ void random_shuffle(RandomAccessIterator first, RandomAccessIterator last, const unsigned P) @@ -141,9 +151,45 @@ diff -ur omptl.old/omptl_algorithm_par.h omptl/omptl_algorithm_par.h } // Not (yet) parallelized, not straightforward due to possible dependencies +@@ -1472,7 +1473,7 @@ + const T& new_value, const unsigned P) + { + return ::omptl::replace_copy_if(first, last, result, +- std::bind2nd(std::equal_to(), old_value), new_value, P); ++ std::bind(std::equal_to(), std::placeholders::_1, old_value), new_value, P); + } + + template +@@ -1700,7 +1701,7 @@ + + std::vector pivot_used(pivots.size(), false); // can't be bool due to parallel write + +- const unsigned max_depth = std::floor(std::tr1::log2(P)); ++ const unsigned max_depth = unsigned(std::floor(std::log2(P))); + assert(1u << max_depth <= P); + for (unsigned i = 0; i < max_depth; ++i) + { +@@ -1781,7 +1782,7 @@ + std::cout << std::endl; + + std::cout << borders.size() << " " << partitions.size() << " " << P << std::endl; +-*/ ++*/ + // Round one: sort final partitions, split remaining + #pragma omp parallel for + for (int i = 0; i < int(partitions.size()); ++i) +@@ -1814,7 +1815,7 @@ + + const RandomAccessIterator begin = partitions[i].first; + const RandomAccessIterator end = partitions[i].second; +- ++ + const RandomAccessIterator middle = + detail::_pivot_range(begin, end, pivots[pivot_index], comp); + partitions[i ] = std::make_pair(begin, middle); diff -ur omptl.old/omptl_algorithm_ser.h omptl/omptl_algorithm_ser.h ---- omptl.old/omptl_algorithm_ser.h 2012-04-22 16:29:41.000000000 +0200 -+++ omptl/omptl_algorithm_ser.h 2022-06-09 13:50:41.000000000 +0200 +--- omptl.old/omptl_algorithm_ser.h 2022-06-19 08:21:39.815498672 +0200 ++++ omptl/omptl_algorithm_ser.h 2022-06-19 08:21:52.960544697 +0200 @@ -14,7 +14,7 @@ // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software @@ -170,3 +216,71 @@ diff -ur omptl.old/omptl_algorithm_ser.h omptl/omptl_algorithm_ser.h } template +diff -ur omptl.old/omptl_numeric omptl/omptl_numeric +--- omptl.old/omptl_numeric 2022-06-19 08:21:39.816498675 +0200 ++++ omptl/omptl_numeric 2022-06-19 08:21:52.955544679 +0200 +@@ -19,7 +19,7 @@ + #define OMPTL_NUMERIC 1 + + #include +-#include ++#include "omptl" + + namespace omptl + { +@@ -73,11 +73,11 @@ + } // namespace omptl + + #ifdef _OPENMP +- #include ++ #include "omptl_numeric_par.h" + #else +- #include ++ #include "omptl_numeric_ser.h" + #endif + +-#include ++#include "omptl_numeric_extensions.h" + + #endif /* OMPTL_NUMERIC */ +diff -ur omptl.old/omptl_numeric_extensions.h omptl/omptl_numeric_extensions.h +--- omptl.old/omptl_numeric_extensions.h 2022-06-19 08:21:39.815498672 +0200 ++++ omptl/omptl_numeric_extensions.h 2022-06-19 08:21:52.956544683 +0200 +@@ -51,9 +51,9 @@ + } // namespace + + #ifdef _OPENMP +- #include ++ #include "omptl_numeric_extensions_par.h" + #else +- #include ++ #include "omptl_numeric_extensions_ser.h" + #endif + + namespace omptl +diff -ur omptl.old/omptl_numeric_par.h omptl/omptl_numeric_par.h +--- omptl.old/omptl_numeric_par.h 2022-06-19 08:21:39.816498675 +0200 ++++ omptl/omptl_numeric_par.h 2022-06-19 08:21:52.957544686 +0200 +@@ -23,8 +23,8 @@ + #include + #include + +-#include +-#include ++#include "omptl_algorithm" ++#include "omptl_tools.h" + + namespace omptl + { +diff -ur omptl.old/omptl_tools.h omptl/omptl_tools.h +--- omptl.old/omptl_tools.h 2022-06-19 08:21:39.816498675 +0200 ++++ omptl/omptl_tools.h 2022-06-19 08:21:52.957544686 +0200 +@@ -25,7 +25,7 @@ + #include + #include + +-#include ++#include + + namespace omptl + {