47#ifndef GUM_SCHEDULE_MULTI_DIM_H
48#define GUM_SCHEDULE_MULTI_DIM_H
117 template <
typename TABLE >
331 template <
typename T >
336 template <
template <
typename,
typename... >
class CONTAINER, typename T, typename... Args >
The Table-agnostic base class of scheduleMultiDim.
Base class for discrete random variable.
IScheduleMultiDim(const Idx id=0)
constructs a IScheduleMultiDim
ScheduleMultiDim(const ScheduleMultiDim< TABLE > &from)
copy constructor
const TABLE & multiDim() const
returns the table actually contained in the ScheduleMultiDim
ScheduleMultiDim(TABLE &&table, const Idx id=0)
constructs a ScheduleMultiDim by moving a table inside it
ScheduleMultiDim(const TABLE &table, const bool copy, const Idx id=0)
constructs a ScheduleMultiDim by copying/referencing table
virtual bool hasSameVariables(const IScheduleMultiDim &m) const
checks whether two ScheduleMultiDim have the same variables and types
ScheduleMultiDim< TABLE > & operator=(const ScheduleMultiDim< TABLE > &from)
copy operator
virtual ~ScheduleMultiDim()
destructor
Size domainSize() const final
returns the domain size the table would have after its creation
Sequence< const DiscreteVariable * > _var_sequence_
returns the sequence of variables of the table
ScheduleMultiDim(ScheduleMultiDim< TABLE > &&from)
move constructor
virtual bool operator==(const IScheduleMultiDim &) const
checks whether two ScheduleMultiDim have the same ID and type
TABLE * exportMultiDim()
returns the contained multidimensional table, if any, and make the ScheduleMultiDim abstract
virtual bool hasSameVariables(const ScheduleMultiDim< TABLE > &m) const
checks whether two ScheduleMultiDim have the same variables
std::string toString() const final
displays the content of the ScheduleMultiDim
virtual bool hasSameContent(const IScheduleMultiDim &) const
checks whether two ScheduleMultiDim contain precisely the same table
virtual bool operator!=(const IScheduleMultiDim &) const
checks whether two ScheduleMultiDim have different IDs or types
virtual bool operator==(const ScheduleMultiDim< TABLE > &) const
checks whether two ScheduleMultiDim have exactly the same ID
void setMultiDim(const TABLE &table, const bool copy)
assigns a new table inside the wrapper
const Sequence< const DiscreteVariable * > & variablesSequence() const final
returns the set of variables involved in the ScheduleMultiDim
bool containsMultiDim() const final
indicates whether the ScheduleMultiDim contains a table and possesses it
void _removeTable_()
remove the table if it is contained in the ScheduleMultiDim
void makeAbstract() final
if the ScheduleMultiDim is not abstract, make it abstract again
ScheduleMultiDim(const Sequence< const DiscreteVariable * > &vars, const Idx id=0)
construct a ScheduleMultiDim for a multidimensional table yet to be built
double sizeOfContent() const final
returns the sizeof of the elements stored into the ScheduleMultiDim
bool _table_contained_
indicates whether table is contained or referenced
ScheduleMultiDim< TABLE > & operator=(ScheduleMultiDim< TABLE > &&from)
move operator
bool isAbstract() const final
returns whether the ScheduleMultiDim contains a real table or not
virtual ScheduleMultiDim< TABLE > * clone(bool force_copy) const
virtual copy constructor enabling to force a copy of the content
virtual ScheduleMultiDim< TABLE > * clone() const
virtual copy constructor
virtual bool hasSameContent(const ScheduleMultiDim< TABLE > &) const
checks whether two ScheduleMultiDim contain precisely the same table
Size _domain_size_
the domain size of the table
virtual bool operator!=(const ScheduleMultiDim< TABLE > &) const
checks whether two ScheduleMultiDim have different IDs
TABLE * _table_
the multidimensional table stored into the ScheduleMultiDim
The generic class for storing (ordered) sequences of objects.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Size Idx
Type for indexes.
gum is the global namespace for all aGrUM entities
a Wrapper for multi-dimensional tables used for scheduling inferences
metaprogramming to get the types of the elements stored into the ScheduleMultidims