31 #define GUM_PARTIAL_INSTANTIATION_PATTERN_ALLOWED 1 35 #define GUM_MULTI_DIM_DECORATOR_PARTIAL_INST(NAME) \ 37 template < typename GUM_SCALAR > \ 38 MultiDimImplementation< GUM_SCALAR >* \ 39 NAME(const MultiDimDecorator< GUM_SCALAR >& table, \ 40 const HashTable< const DiscreteVariable*, Idx >& inst_vars) { \ 41 const MultiDimImplementation< GUM_SCALAR >* impl = table.content(); \ 42 return NAME(*impl, inst_vars); \ 48 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME partialInstantiationMultiDimArray 50 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 52 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_IMPL2ARRAY_NAME \ 53 partialInstantiationMultiDimArray 55 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_IMPL2ARRAY_NAME 57 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME \ 58 partialInstantiationMultiDimArray4Pointers 60 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME 62 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_IMPL2ARRAY_NAME \ 63 partialInstantiationMultiDimArray4Pointers 65 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_IMPL2ARRAY_NAME 69 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME \ 70 partialInstantiationMultiDimImplementation 72 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 74 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME \ 75 partialInstantiationMultiDimImplementation4Pointers 77 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 83 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME partialInstantiation 85 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 97 template <
typename GUM_SCALAR >
99 static bool first_init =
true;
104 std::string MultiDimArrayString(
"MultiDimArray");
105 std::string MultiDimDecisionDiagramString(
"MultiDimDecisionDiagram");
106 std::string BaseNameString(
"MultiDimImplementation");
109 registerPartialInstantiation< GUM_SCALAR >(
113 registerPartialInstantiation< GUM_SCALAR >(
114 "i", BaseNameString, &partialInstantiationMultiDimImplementation);
119 template <
typename GUM_SCALAR >
121 static bool first_init =
true;
126 std::string MultiDimArrayString(
"MultiDimArray");
127 std::string BaseNameString(
"MultiDimImplementation");
130 registerPartialInstantiation< GUM_SCALAR* >(
134 registerPartialInstantiation< GUM_SCALAR* >(
137 &partialInstantiationMultiDimImplementation4Pointers);
144 #undef GUM_PARTIAL_INSTANTIATION_PATTERN_ALLOWED Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
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.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
MultiDimImplementation< GUM_SCALAR > * partialInstantiation(const MultiDimImplementation< GUM_SCALAR > &table, const HashTable< const DiscreteVariable *, Idx > &inst_vars)
Instantiate variables in a MultiDimImplementation.
void partialInstantiation4MultiDimInit()
The function used to register all the instantiation operators on multidimImplementations over non-poi...
#define GUM_MULTI_DIM_DECORATOR_PARTIAL_INST(NAME)