48#ifndef GUM_SCHEDULE_PROJECTION_H
49#define GUM_SCHEDULE_PROJECTION_H
102 template <
typename TABLE >
126 const bool is_result_persistent =
false);
The Table-agnostic base class of scheduleMultiDim.
a Wrapper for multi-dimensional tables used for scheduling inferences
ScheduleOperator(const ScheduleOperatorType type, const bool imply_deletion, const bool are_results_persistent)
default constructor
std::pair< double, double > memoryUsage() const final
returns the memory consumption used during the execution of the operator
ScheduleProjection(const ScheduleMultiDim< TABLE > &table, const gum::VariableSet &del_vars, TABLE(*project)(const TABLE &, const gum::VariableSet &), const bool is_result_persistent=false)
default constructor
gum::VariableSet _del_vars_
the set of variables that should be removed from the arg table
ScheduleProjection(ScheduleProjection< TABLE > &&from)
move constructor
bool isSameOperator(const ScheduleOperator &) const final
checks whether two ScheduleOperator perform the same projection
void updateArgs(const Sequence< const IScheduleMultiDim * > &new_args) final
modifies the arguments of the operator
void execute() final
executes the operator
Sequence< const IScheduleMultiDim * > _args_
the sequence of arguments passed to the operator
double nbOperations() const final
returns an estimation of the number of elementary operations needed to perform the ScheduleOperator
bool isExecuted() const final
indicates whether the operator has been executed
const ScheduleMultiDim< TABLE > * _arg_
the argument to be projected
const ScheduleMultiDim< TABLE > & arg() const
returns the argument of the projection
bool hasSameArguments(const ScheduleOperator &) const final
checks whether two ScheduleProjection have the same parameters (same variables, including the set of ...
void setProjectionFunction(TABLE(*project)(const TABLE &, const gum::VariableSet &))
use a new projection function
Sequence< const IScheduleMultiDim * > _results_
the sequence of ScheduleMultidim output by the operator
const Sequence< const IScheduleMultiDim * > & results() const final
returns the sequence of ScheduleMultidim output by the operator
void undo() final
undo a previous execution, if any
bool hasSimilarArguments(const ScheduleOperator &) const final
checks whether two ScheduleProjection have similar parameters (same variables, including the set of v...
ScheduleProjection< TABLE > * clone() const final
virtual copy constructor
ScheduleProjection(const ScheduleProjection< TABLE > &from)
copy constructor
TABLE(* _project_)(const TABLE &, const gum::VariableSet &)
the projection operator
std::string toString() const final
displays the content of the operator
const ScheduleMultiDim< TABLE > & result() const
returns the result of the projection
ScheduleMultiDim< TABLE > * _result_
the result of the projection
const Sequence< const IScheduleMultiDim * > & args() const final
returns the sequence of arguments passed to the operator
The generic class for storing (ordered) sequences of objects.
gum is the global namespace for all aGrUM entities
Set< const DiscreteVariable * > VariableSet
a Wrapper for multi-dimensional tables used for scheduling inferences
the base class for "low-level" operators used to schedule inferences
a Projection operator class used for scheduling inferences