30 #define GUM_PARTIAL_INSTANTIATION_PATTERN_ALLOWED 1
32 #include <agrum/tools/multidim/utils/partialInstantiationRegister4MultiDim.h> 34 #define GUM_MULTI_DIM_DECORATOR_PARTIAL_INST(NAME) 36 template < typename GUM_SCALAR > 37 MultiDimImplementation< GUM_SCALAR >* 38 NAME(const MultiDimDecorator< GUM_SCALAR >& table, 39 const HashTable< const DiscreteVariable*, Idx >& inst_vars) { 40 const MultiDimImplementation< GUM_SCALAR >* impl = table.content(); 41 return NAME(*impl, inst_vars); 47 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME partialInstantiationMultiDimArray 48 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4MultiDimArray.h> 49 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 51 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_IMPL2ARRAY_NAME 52 partialInstantiationMultiDimArray 53 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4MultiDimArray.h> 54 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_IMPL2ARRAY_NAME 56 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME 57 partialInstantiationMultiDimArray4Pointers 58 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4MultiDimArray.h> 59 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME 61 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_IMPL2ARRAY_NAME 62 partialInstantiationMultiDimArray4Pointers 63 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4MultiDimArray.h> 64 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_IMPL2ARRAY_NAME 68 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 69 partialInstantiationMultiDimImplementation 70 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4BaseName.h> 71 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 73 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME 74 partialInstantiationMultiDimImplementation4Pointers 75 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4BaseName.h> 76 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 82 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME partialInstantiation 83 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4MultiDimImplementation.h> 84 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 96 template <
typename GUM_SCALAR >
98 static bool first_init =
true;
103 std::string MultiDimArrayString(
"MultiDimArray");
104 std::string MultiDimDecisionDiagramString(
"MultiDimDecisionDiagram");
105 std::string BaseNameString(
"MultiDimImplementation");
108 registerPartialInstantiation< GUM_SCALAR >(
111 &partialInstantiationMultiDimArray);
114 registerPartialInstantiation< GUM_SCALAR >(
117 &partialInstantiationMultiDimImplementation);
122 template <
typename GUM_SCALAR >
124 static bool first_init =
true;
129 std::string MultiDimArrayString(
"MultiDimArray");
130 std::string BaseNameString(
"MultiDimImplementation");
133 registerPartialInstantiation< GUM_SCALAR* >(
136 &partialInstantiationMultiDimArray4Pointers);
139 registerPartialInstantiation< GUM_SCALAR* >(
142 &partialInstantiationMultiDimImplementation4Pointers);
149 #undef GUM_PARTIAL_INSTANTIATION_PATTERN_ALLOWED INLINE void emplace(Args &&... args)
void pointerPartialInstantiation4MultiDimInit()
The function used to register all the instantiations on multidimImplementations over pointers types...
void partialInstantiation4MultiDimInit()
The function used to register all the instantiation operators on multidimImplementations over non-poi...
#define GUM_MULTI_DIM_DECORATOR_PARTIAL_INST(NAME)