27 #ifndef GUM_SCHEDULE_OPERATION_H 28 #define GUM_SCHEDULE_OPERATION_H 33 #include <agrum/agrum.h> 35 #include <agrum/tools/core/sequence.h> 36 #include <agrum/tools/graphicalModels/inference/scheduler/scheduleMultiDim.h> 40 template <
typename GUM_SCALAR >
121 virtual std::pair<
long,
long >
memoryUsage()
const = 0;
124 virtual std::string
toString()
const = 0;
152 #include <agrum/tools/graphicalModels/inference/scheduler/scheduleOperation_tpl.h> virtual const Sequence< const ScheduleMultiDim< GUM_SCALAR > *> & multiDimResults() const =0
returns the set of multidims that should be the result of the operation
project a ScheduleMultiDim over a subset of its variables
virtual float nbOperations() const =0
returns an estimation of the number of elementary operations needed to perform the ScheduleOperation ...
Type type() const
returns the name of the operation
INLINE void emplace(Args &&... args)
Idx _id_
the id corresponding to the operation
ScheduleOperation(const ScheduleOperation< GUM_SCALAR > &from)
copy constructor
virtual const Sequence< const ScheduleMultiDim< GUM_SCALAR > *> & multiDimArgs() const =0
returns the set of multidims passed in argument to the operation
virtual bool operator!=(const ScheduleOperation< GUM_SCALAR > &) const =0
operator !=
Type _type_
the name of the operation to perform
Idx id() const
returns the id of the operation
virtual bool operator==(const ScheduleOperation< GUM_SCALAR > &) const =0
operator ==
virtual void execute()=0
executes the operation
Type
the currently supported types of operations
static Idx _newId_()
returns a new distinct ID for each operation
store a multidim into a separator
combine 2 ScheduleMultiDims
store a Multidim into a clique
ScheduleOperation(Type t)
default constructor
virtual std::string toString() const =0
displays the content of the operation
virtual ~ScheduleOperation()
destructor
ScheduleOperation< GUM_SCALAR > & operator=(const ScheduleOperation< GUM_SCALAR > &)
copy operator
virtual ScheduleOperation< GUM_SCALAR > * newFactory() const =0
virtual copy constructor: creates a clone of the operation
virtual std::pair< long, long > memoryUsage() const =0
returns the memory consumption used during the operation
delete a MultiDim from memory