49#ifndef DOXYGEN_SHOULD_SKIP_THIS
56 template <
class TABLE >
63 template <
class TABLE >
71 template <
class TABLE >
78 template <
class TABLE >
83 const bool is_result_persistent)
const {
85 auto ops_res = operations(original_tables, del_vars,
false);
86 for (
const auto op: ops_res.first)
87 schedule.insertOperation(*op);
91 if (!is_result_persistent) {
92 for (
const auto pot: ops_res.second)
93 result.insert(schedule.scheduleMultiDim(pot->id()));
95 for (
const auto pot: ops_res.second) {
97 const auto creating_op = schedule.scheduleMultiDimCreator(table);
98 if (creating_op !=
nullptr) {
101 result.insert(table);
106 for (
const auto op: ops_res.first)
The Table-agnostic base class of scheduleMultiDim.
A generic interface to combine and project efficiently MultiDim tables.
virtual ~MultiDimCombineAndProject()
destructor
Set< const IScheduleMultiDim * > schedule(Schedule &schedule, const Set< const IScheduleMultiDim * > &original_tables, const gum::VariableSet &del_vars, const bool is_result_persistent=false) const
add to a given schedule the set of operations needed to perform all the combinations and projections
MultiDimCombineAndProject()
default constructor
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
Set< const DiscreteVariable * > VariableSet