31 #include <agrum/tools/multidim/instantiation.h> 34 #ifndef GUM_PROJECTION_PATTERN_ALLOWED 41 # include <agrum/tools/multidim/implementations/multiDimFunctionGraph.h> 42 # include <agrum/tools/multidim/implementations/multiDimImplementation.h> 43 # include <agrum/tools/multidim/utils/FunctionGraphUtilities/operators/multiDimFunctionGraphProjector.h> 50 # ifdef GUM_MULTI_DIM_PROJECTION_NAME 51 # define GUM_MULTI_DIM_PROJECTION_TYPE GUM_SCALAR 52 template <
typename GUM_SCALAR >
53 MultiDimFunctionGraph< GUM_SCALAR >*
54 GUM_MULTI_DIM_PROJECTION_NAME(
const MultiDimFunctionGraph< GUM_SCALAR >* table,
55 const Set<
const DiscreteVariable* >& delVars)
59 # ifdef GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME 60 # define GUM_MULTI_DIM_PROJECTION_TYPE GUM_SCALAR 61 template <
typename GUM_SCALAR >
62 MultiDimImplementation< GUM_SCALAR >* GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME(
63 const MultiDimImplementation< GUM_SCALAR >* ttable,
64 const Set<
const DiscreteVariable* >& delVars)
68 # ifdef GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME 69 const MultiDimFunctionGraph< GUM_SCALAR >* table
70 =
reinterpret_cast<
const MultiDimFunctionGraph< GUM_SCALAR >* >(ttable);
73 MultiDimFunctionGraphProjector< GUM_MULTI_DIM_PROJECTION_TYPE,
74 GUM_MULTI_DIM_PROJECTION_OPERATOR >
75 proj(table, delVars, GUM_MULTI_DIM_PROJECTION_NEUTRAL);
77 return proj.project();
81 # undef GUM_MULTI_DIM_PROJECTION_TYPE