51#ifndef DOXYGEN_SHOULD_SKIP_THIS
58 template <
class TABLE >
65 template <
class TABLE >
73 template <
class TABLE >
80 template <
class TABLE >
85 const bool is_result_persistent)
const {
87 auto ops_res = operations(original_tables, del_vars,
false);
88 for (
const auto op: ops_res.first)
89 schedule.insertOperation(*op);
93 if (!is_result_persistent) {
94 for (
const auto pot: ops_res.second)
95 result.insert(schedule.scheduleMultiDim(pot->id()));
97 for (
const auto pot: ops_res.second) {
99 const auto creating_op = schedule.scheduleMultiDimCreator(table);
100 if (creating_op !=
nullptr) {
103 result.insert(table);
108 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