50#ifndef DOXYGEN_SHOULD_SKIP_THIS
57 template <
class TABLE >
63 template <
class TABLE >
69 template <
class TABLE >
75 template <
class TABLE >
78 const std::vector< const IScheduleMultiDim* >& set,
79 const bool is_result_persistent)
const {
81 auto ops_plus_res = operations(set,
false);
82 for (
const auto op: ops_plus_res.first) {
83 schedule.insertOperation(*op);
88 const IScheduleMultiDim* table = schedule.scheduleMultiDim(ops_plus_res.second->id());
89 if (is_result_persistent) {
90 const auto creating_op = schedule.scheduleMultiDimCreator(table);
91 if (creating_op !=
nullptr) {
98 for (
auto op: ops_plus_res.first)
105 template <
class TABLE >
109 const bool is_result_persistent)
const {
110 std::vector< const IScheduleMultiDim* > vect;
111 vect.reserve(set.size());
112 for (
const auto elt: set) {
115 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