35#if defined(__cpp_lib_parallel_algorithm) && defined(NUMCPP_USE_MULTITHREAD)
36#define PARALLEL_ALGORITHMS_SUPPORTED
37#define CONDITIONAL_NO_EXCEPT
40#define CONDITIONAL_NO_EXCEPT noexcept
54 template<
class InputIt,
class UnaryPredicate>
59 std::execution::par_unseq,
75 template<
class InputIt,
class UnaryPredicate>
80 std::execution::par_unseq,
96 template<
class InputIt,
class OutputIt>
101 std::execution::par_unseq,
117 template<
class InputIt,
class T>
118 typename std::iterator_traits<InputIt>::difference_type
123 std::execution::par_unseq,
139 template<
class InputIt1,
class InputIt2>
144 std::execution::par_unseq,
161 template<
class InputIt1,
class InputIt2,
class BinaryPredicate>
166 std::execution::par_unseq,
182 template<
class ForwardIt,
class T>
187 std::execution::par_unseq,
204 template<
class InputIt,
class T>
209 std::execution::par_unseq,
224 template<
class InputIt,
class UnaryFunction>
229 std::execution::par_unseq,
244 template<
class ForwardIt>
247 return std::is_sorted(
249 std::execution::par_unseq,
264 template<
class ForwardIt,
class Compare>
267 return std::is_sorted(
269 std::execution::par_unseq,
284 template<
class ForwardIt>
287 return std::max_element(
289 std::execution::par_unseq,
304 template<
class ForwardIt,
class Compare>
307 return std::max_element(
309 std::execution::par_unseq,
323 template<
class ForwardIt>
326 return std::min_element(
328 std::execution::par_unseq,
343 template<
class ForwardIt,
class Compare>
346 return std::min_element(
348 std::execution::par_unseq,
363 template<
class ForwardIt>
366 return std::minmax_element(
368 std::execution::par_unseq,
383 template<
class ForwardIt,
class Compare>
386 return std::minmax_element(
388 std::execution::par_unseq,
404 template<
class InputIt,
class UnaryPredicate>
409 std::execution::par_unseq,
424 template<
class RandomIt>
429 std::execution::par_unseq,
445 template<
class RandomIt,
class Compare>
450 std::execution::par_unseq,
467 template<
class ForwardIt,
class T>
472 std::execution::par_unseq,
487 template<
class B
idirIt>
492 std::execution::par_unseq,
506 template<
class ForwardIt>
511 std::execution::par_unseq,
529 template<
class InputIt1,
class InputIt2,
class OutputIt>
532 return std::set_difference(
534 std::execution::par_unseq,
555 template<
class InputIt1,
class InputIt2,
class OutputIt,
class Compare>
563 return std::set_difference(
565 std::execution::par_unseq,
586 template<
class InputIt1,
class InputIt2,
class OutputIt>
590 return std::set_intersection(
592 std::execution::par_unseq,
613 template<
class InputIt1,
class InputIt2,
class OutputIt,
class Compare>
621 return std::set_intersection(
623 std::execution::par_unseq,
644 template<
class InputIt1,
class InputIt2,
class OutputIt>
648 return std::set_union(
650 std::execution::par_unseq,
671 template<
class InputIt1,
class InputIt2,
class OutputIt,
class Compare>
676 return std::set_union(
678 std::execution::par_unseq,
695 template<
class RandomIt>
700 std::execution::par_unseq,
714 template<
class RandomIt,
class Compare>
719 std::execution::par_unseq,
733 template<
class RandomIt>
738 std::execution::par_unseq,
752 template<
class RandomIt,
class Compare>
757 std::execution::par_unseq,
774 template<
class InputIt,
class OutputIt,
class UnaryOperation>
777 return std::transform(
779 std::execution::par_unseq,
798 template<
class InputIt1,
class InputIt2,
class OutputIt,
class BinaryOperation>
802 return std::transform(
804 std::execution::par_unseq,
822 template<
class InputIt,
class OutputIt>
825 return std::unique_copy(
827 std::execution::par_unseq,
844 template<
class InputIt,
class OutputIt,
class BinaryPredicate>
848 return std::unique_copy(
850 std::execution::par_unseq,
#define CONDITIONAL_NO_EXCEPT
Definition StlAlgorithms.hpp:40
Definition StlAlgorithms.hpp:44
bool any_of(InputIt first, InputIt last, UnaryPredicate p) noexcept
Definition StlAlgorithms.hpp:76
std::iterator_traits< InputIt >::difference_type count(InputIt first, InputIt last, const T &value) noexcept
Definition StlAlgorithms.hpp:119
void sort(RandomIt first, RandomIt last) noexcept
Definition StlAlgorithms.hpp:696
OutputIt set_union(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, OutputIt destination) noexcept
Definition StlAlgorithms.hpp:645
bool none_of(InputIt first, InputIt last, UnaryPredicate p) noexcept
Definition StlAlgorithms.hpp:405
ForwardIt max_element(ForwardIt first, ForwardIt last) noexcept
Definition StlAlgorithms.hpp:285
void stable_sort(RandomIt first, RandomIt last) noexcept
Definition StlAlgorithms.hpp:734
void reverse(BidirIt first, BidirIt last) noexcept
Definition StlAlgorithms.hpp:488
OutputIt transform(InputIt first, InputIt last, OutputIt destination, UnaryOperation unaryFunction)
Definition StlAlgorithms.hpp:775
bool all_of(InputIt first, InputIt last, UnaryPredicate p) noexcept
Definition StlAlgorithms.hpp:55
void for_each(InputIt first, InputIt last, UnaryFunction f)
Definition StlAlgorithms.hpp:225
InputIt find(InputIt first, InputIt last, const T &value) noexcept
Definition StlAlgorithms.hpp:205
constexpr OutputIt unique_copy(InputIt first, InputIt last, OutputIt destination) noexcept
Definition StlAlgorithms.hpp:823
OutputIt set_difference(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, OutputIt destination)
Definition StlAlgorithms.hpp:530
void replace(ForwardIt first, ForwardIt last, const T &oldValue, const T &newValue) noexcept
Definition StlAlgorithms.hpp:468
OutputIt set_intersection(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, OutputIt destination) noexcept
Definition StlAlgorithms.hpp:587
bool equal(InputIt1 first1, InputIt1 last1, InputIt2 first2) noexcept
Definition StlAlgorithms.hpp:140
std::pair< ForwardIt, ForwardIt > minmax_element(ForwardIt first, ForwardIt last) noexcept
Definition StlAlgorithms.hpp:364
bool is_sorted(ForwardIt first, ForwardIt last) noexcept
Definition StlAlgorithms.hpp:245
void rotate(ForwardIt first, ForwardIt firstN, ForwardIt last) noexcept
Definition StlAlgorithms.hpp:507
OutputIt copy(InputIt first, InputIt last, OutputIt destination) noexcept
Definition StlAlgorithms.hpp:97
void nth_element(RandomIt first, RandomIt nth, RandomIt last) noexcept
Definition StlAlgorithms.hpp:425
ForwardIt min_element(ForwardIt first, ForwardIt last) noexcept
Definition StlAlgorithms.hpp:324
void fill(ForwardIt first, ForwardIt last, const T &value) noexcept
Definition StlAlgorithms.hpp:183
NdArray< dtype > arange(dtype inStart, dtype inStop, dtype inStep=1)
Definition arange.hpp:59