28 #define GUM_PARTIAL_INSTANTIATION_PATTERN_ALLOWED 1 32 #define GUM_MULTI_DIM_DECORATOR_PARTIAL_INST(NAME) \ 34 template < typename GUM_SCALAR > \ 35 MultiDimImplementation< GUM_SCALAR >* \ 36 NAME(const MultiDimDecorator< GUM_SCALAR >& table, \ 37 const HashTable< const DiscreteVariable*, Idx >& inst_vars) { \ 38 const MultiDimImplementation< GUM_SCALAR >* impl = table.content(); \ 39 return NAME(*impl, inst_vars); \ 45 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME partialInstantiationMultiDimArray 47 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 49 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_IMPL2ARRAY_NAME \ 50 partialInstantiationMultiDimArray 52 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_IMPL2ARRAY_NAME 54 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME \ 55 partialInstantiationMultiDimArray4Pointers 57 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME 59 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_IMPL2ARRAY_NAME \ 60 partialInstantiationMultiDimArray4Pointers 62 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_IMPL2ARRAY_NAME 66 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME \ 67 partialInstantiationMultiDimImplementation 69 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 71 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME \ 72 partialInstantiationMultiDimImplementation4Pointers 74 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 80 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME partialInstantiation 82 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 94 template <
typename GUM_SCALAR >
96 static bool first_init =
true;
101 std::string MultiDimArrayString(
"MultiDimArray");
102 std::string MultiDimDecisionDiagramString(
"MultiDimDecisionDiagram");
103 std::string BaseNameString(
"MultiDimImplementation");
106 registerPartialInstantiation< GUM_SCALAR >(
110 registerPartialInstantiation< GUM_SCALAR >(
111 "i", BaseNameString, &partialInstantiationMultiDimImplementation);
116 template <
typename GUM_SCALAR >
118 static bool first_init =
true;
123 std::string MultiDimArrayString(
"MultiDimArray");
124 std::string BaseNameString(
"MultiDimImplementation");
127 registerPartialInstantiation< GUM_SCALAR* >(
131 registerPartialInstantiation< GUM_SCALAR* >(
134 &partialInstantiationMultiDimImplementation4Pointers);
141 #undef GUM_PARTIAL_INSTANTIATION_PATTERN_ALLOWED Headers for PartialInstantiationRegister4MultiDim.
the pattern used by all the partial instantiations of multidimensional tables
the pattern used by all the partial instantiations of multidimensional tables
gum is the global namespace for all aGrUM entities
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.
the pattern used by all the partial instantiations of multidimensional tables
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)