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 partialInstantiationMultiDimArray 52 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4MultiDimArray.h> 53 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_IMPL2ARRAY_NAME 55 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME partialInstantiationMultiDimArray4Pointers 56 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4MultiDimArray.h> 57 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME 59 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_IMPL2ARRAY_NAME 60 partialInstantiationMultiDimArray4Pointers 61 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4MultiDimArray.h> 62 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_IMPL2ARRAY_NAME 66 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME partialInstantiationMultiDimImplementation 67 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4BaseName.h> 68 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 70 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_POINTER_NAME 71 partialInstantiationMultiDimImplementation4Pointers 72 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4BaseName.h> 73 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 79 #define GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME partialInstantiation 80 #include <agrum/tools/multidim/utils/patterns/partialInstantiationPattern4MultiDimImplementation.h> 81 #undef GUM_MULTI_DIM_PARTIAL_INSTANTIATION_NAME 93 template <
typename GUM_SCALAR >
95 static bool first_init =
true;
100 std::string MultiDimArrayString(
"MultiDimArray");
101 std::string MultiDimDecisionDiagramString(
"MultiDimDecisionDiagram");
102 std::string BaseNameString(
"MultiDimImplementation");
105 registerPartialInstantiation< GUM_SCALAR >(
"i",
107 &partialInstantiationMultiDimArray);
110 registerPartialInstantiation< GUM_SCALAR >(
"i",
112 &partialInstantiationMultiDimImplementation);
117 template <
typename GUM_SCALAR >
119 static bool first_init =
true;
124 std::string MultiDimArrayString(
"MultiDimArray");
125 std::string BaseNameString(
"MultiDimImplementation");
128 registerPartialInstantiation< GUM_SCALAR* >(
"i",
130 &partialInstantiationMultiDimArray4Pointers);
133 registerPartialInstantiation< GUM_SCALAR* >(
136 &partialInstantiationMultiDimImplementation4Pointers);
143 #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)