16 #ifndef GRPPI_DIVIDECONQUER_H
17 #define GRPPI_DIVIDECONQUER_H
46 template <
typename Execution,
typename Input,
47 typename Divider,
typename Solver,
typename Combiner>
48 [[deprecated(
"Use newer divide_conquer with predicate arguemnt")]]
52 Divider && divider_op,
54 Combiner && combiner_op)
56 static_assert(supports_divide_conquer<Execution>(),
57 "divide/conquer pattern not supported for execution type");
58 return ex.divide_conquer(std::forward<Input>(input),
59 std::forward<Divider>(divider_op), std::forward<Solver>(solver_op),
60 std::forward<Combiner>(combiner_op));
78 template <
typename Execution,
typename Input,
79 typename Divider,
typename Predicate,
typename Solver,
typename Combiner>
83 Divider && divider_op,
84 Predicate && predicate_op,
86 Combiner && combiner_op)
88 static_assert(supports_divide_conquer<Execution>(),
89 "divide/conquer pattern not supported for execution type");
90 return ex.divide_conquer(std::forward<Input>(input),
91 std::forward<Divider>(divider_op),
92 std::forward<Predicate>(predicate_op),
93 std::forward<Solver>(solver_op),
94 std::forward<Combiner>(combiner_op));
auto divide_conquer(const Execution &ex, Input &&input, Divider &÷r_op, Solver &&solver_op, Combiner &&combiner_op)
Invoke md_divide-conquer. \parapm Execution Execution type.
Definition: divideconquer.h:49
Definition: callable_traits.h:21