29 #ifndef GUM_PARTIAL_INSTANTIATION_4_MULTI_DIM_H 30 #define GUM_PARTIAL_INSTANTIATION_4_MULTI_DIM_H 32 #include <agrum/tools/core/hashTable.h> 33 #include <agrum/tools/core/set.h> 34 #include <agrum/tools/variables/discreteVariable.h> 41 template <
typename GUM_SCALAR >
42 class MultiDimImplementation;
44 template <
typename GUM_SCALAR >
47 template <
typename GUM_SCALAR >
68 template <
typename GUM_SCALAR >
71 const HashTable<
const DiscreteVariable*, Idx >& inst_vars);
92 template <
typename GUM_SCALAR >
94 const MultiDimImplementation< GUM_SCALAR >* table,
95 const HashTable<
const DiscreteVariable*, Idx >& inst_vars);
116 template <
typename GUM_SCALAR >
119 const HashTable<
const DiscreteVariable*, Idx >& inst_vars);
140 template <
typename GUM_SCALAR >
141 MultiDimImplementation< GUM_SCALAR* >*
143 const MultiDimImplementation< GUM_SCALAR* >* table,
144 const HashTable<
const DiscreteVariable*, Idx >& inst_vars);
154 template <
typename GUM_SCALAR >
156 const MultiDimImplementation< GUM_SCALAR >& table,
157 const HashTable<
const DiscreteVariable*, Idx >& inst_vars);
167 template <
typename GUM_SCALAR >
170 const HashTable<
const DiscreteVariable*, Idx >& inst_vars);
181 template <
typename GUM_SCALAR >
188 template <
typename GUM_SCALAR >
209 template <
typename GUM_SCALAR >
214 void init() { partialInstantiation4MultiDimInit< GUM_SCALAR >(); };
236 template <
typename GUM_SCALAR >
241 void init() { pointerPartialInstantiation4MultiDimInit< GUM_SCALAR >(); };
247 #include <agrum/tools/multidim/utils/partialInstantiation4MultiDim_tpl.h> void init()
Initialize the partial instantiation functions.
INLINE void emplace(Args &&... args)
void init()
Initialize the partial instantiation functions.
MultiDimArray< GUM_SCALAR *> * partialInstantiationMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
A specialized function for instantiating variables in a MultiDimArray.
void pointerPartialInstantiation4MultiDimInit()
The function used to register all the instantiations on multidimImplementations over pointers types...
MultiDimArray< GUM_SCALAR > * partialInstantiationMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
A specialized function for instantiating variables in a multiDimArray.
Multidimensional matrix stored as an array in memory.
MultiDimImplementation< GUM_SCALAR > * partialInstantiation(const MultiDimImplementation< GUM_SCALAR > &table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
Instantiate variables in a MultiDimImplementation.
Decorator design pattern in order to separate implementations from multidimensional matrix concepts...
MultiDimImplementation< GUM_SCALAR > * partialInstantiationMultiDimArray(const MultiDimImplementation< GUM_SCALAR > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
A specialized function for instantiating variables in a MultiDimImplementation.
MultiDimImplementation< GUM_SCALAR > * partialInstantiation(const MultiDimDecorator< GUM_SCALAR > &table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
Instantiate variables in a MultiDimDecorator.
void partialInstantiation4MultiDimInit()
The function used to register all the instantiation operators on multidimImplementations over non-poi...
MultiDimImplementation< GUM_SCALAR *> * partialInstantiationMultiDimArray4Pointers(const MultiDimImplementation< GUM_SCALAR * > *table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
A specialized function for instantiating variables in a MultiDimArray.
A class used to register instantiation functions over non-pointers types.