28 #ifndef DOXYGEN_SHOULD_SKIP_THIS 30 # include <agrum/agrum.h> 31 # include <agrum/tools/graphicalModels/inference/scheduler/scheduleCombine.h> 37 template <
typename GUM_SCALAR >
38 ScheduleCombine< GUM_SCALAR >::ScheduleCombine(
39 const ScheduleMultiDim< GUM_SCALAR >& table1,
40 const ScheduleMultiDim< GUM_SCALAR >& table2,
41 MultiDimImplementation< GUM_SCALAR >* (*combine)(
42 const MultiDimImplementation< GUM_SCALAR >&,
43 const MultiDimImplementation< GUM_SCALAR >&)) :
44 ScheduleOperation< GUM_SCALAR >(
45 ScheduleOperation< GUM_SCALAR >::Type::COMBINE_MULTIDIM),
46 table1__(table1), table2__(table2), args__(0), results__(0),
49 GUM_CONSTRUCTOR(ScheduleCombine);
52 Sequence<
const DiscreteVariable* > vars = table1__.variablesSequence();
53 const Sequence<
const DiscreteVariable* >& vars2
54 = table2__.variablesSequence();
56 for (
typename Sequence<
const DiscreteVariable* >::const_iterator_safe iter
58 iter != vars2.endSafe();
60 if (!vars.exists(*iter)) { vars.insert(*iter); }
65 result__ =
new ScheduleMultiDim< GUM_SCALAR >(vars);
INLINE void emplace(Args &&... args)