52#ifndef DOXYGEN_SHOULD_SKIP_THIS
59 template <
class TABLE >
65 template <
class TABLE >
71 template <
class TABLE >
77 template <
class TABLE >
80 const std::vector< const IScheduleMultiDim* >& set,
81 const bool is_result_persistent)
const {
83 auto ops_plus_res = operations(set,
false);
84 for (
const auto op: ops_plus_res.first) {
85 schedule.insertOperation(*op);
90 const IScheduleMultiDim* table = schedule.scheduleMultiDim(ops_plus_res.second->id());
91 if (is_result_persistent) {
92 const auto creating_op = schedule.scheduleMultiDimCreator(table);
93 if (creating_op !=
nullptr) {
100 for (
auto op: ops_plus_res.first)
107 template <
class TABLE >
111 const bool is_result_persistent)
const {
112 std::vector< const IScheduleMultiDim* > vect;
113 vect.reserve(set.size());
114 for (
const auto elt: set) {
117 return this->schedule(schedule, vect, is_result_persistent);
The Table-agnostic base class of scheduleMultiDim.
A generic interface to combine efficiently several MultiDim tables.
virtual ~MultiDimCombination()
destructor
MultiDimCombination()
default constructor
const IScheduleMultiDim * schedule(Schedule &schedule, const Set< const IScheduleMultiDim * > &set, const bool is_result_persistent=false) const
add to a given schedule the set of operations needed to perform the combination
the base class for "low-level" operators used to schedule inferences
Class containing a schedule of operations to perform on multidims.
gum is the global namespace for all aGrUM entities