27 #ifndef GUM_SCHEDULE_MULTI_DIM_H 28 #define GUM_SCHEDULE_MULTI_DIM_H 32 #include <agrum/agrum.h> 34 #include <agrum/tools/core/hashTable.h> 35 #include <agrum/tools/core/sequence.h> 36 #include <agrum/tools/multidim/implementations/multiDimDecorator.h> 37 #include <agrum/tools/multidim/implementations/multiDimImplementation.h> 38 #include <agrum/tools/variables/discreteVariable.h> 42 #ifndef DOXYGEN_SHOULD_SKIP_THIS 47 template <
typename GUM_SCALAR >
105 template <
typename GUM_SCALAR >
230 #include <agrum/tools/graphicalModels/inference/scheduler/scheduleMultiDim_tpl.h> const Sequence< const DiscreteVariable *> & variablesSequence() const
returns the set of variables involved in the multidim
std::string toString() const
displays the content of the multidim
bool isAbstract() const
returns whether the ScheduleMultiDim contains a real multiDimImplementation
static HashTable< Idx, Idx > & _id2refs_()
returns a table indicating how many ScheduleMultiDim have the same id
INLINE void emplace(Args &&... args)
Idx id() const
returns the id of the ScheduleMultiDim
ScheduleMultiDim(const ScheduleMultiDim< GUM_SCALAR > &)
copy constructor
Size domainSize() const
returns the domain size of the multidim
static HashTable< const MultiDimImplementation< GUM_SCALAR > *, Idx > & _multidim2id_()
returns the id corresponding to a given multidim
bool operator!=(const ScheduleMultiDim< GUM_SCALAR > &) const
checks whether two ScheduleMultiDim are related to different tables
ScheduleMultiDim< GUM_SCALAR > & operator=(const ScheduleMultiDim< GUM_SCALAR > &)
copy operator
Idx _id_
the unique Id of the ScheduleMultiDim
static HashTable< Idx, Size > & _id2size_()
returns a table with the domain size of the table corresponding to id
static Idx _newId_()
returns a new distinct ID for each abtract scheduleMultiDim
~ScheduleMultiDim()
destructor
void setMultiDim(const MultiDimDecorator< GUM_SCALAR > &)
sets a new multiDimDecorator inside the wrapper
const MultiDimImplementation< GUM_SCALAR > & multiDim() const
returns the multiDimImplementation actually contained in the ScheduleMultiDim
ScheduleMultiDim(const Sequence< const DiscreteVariable * > &vars)
construct a ScheduleMultiDim for an implementation yet to be built
static HashTable< Idx, const Sequence< const DiscreteVariable *> *> & _id2vars_()
returns a table with the variables of the table corresponding to id
bool operator==(const ScheduleMultiDim< GUM_SCALAR > &) const
checks whether two ScheduleMultiDim are related to the same table