76 #ifndef GUM_SCHEDULE_COMBINATION_BASIC_H 77 #define GUM_SCHEDULE_COMBINATION_BASIC_H 79 #include <agrum/agrum.h> 81 #include <agrum/tools/core/priorityQueue.h> 82 #include <agrum/tools/core/sequence.h> 83 #include <agrum/tools/graphicalModels/inference/scheduler/scheduleCombination.h> 84 #include <agrum/tools/variables/discreteVariable.h> 88 template <
typename GUM_SCALAR >
129 template <
template <
typename >
class TABLE >
139 virtual MultiDimImplementation< GUM_SCALAR >* (*combineFunction())(
140 const MultiDimImplementation< GUM_SCALAR >&,
141 const MultiDimImplementation< GUM_SCALAR >&);
145 virtual float nbOperations(
const Set<
const ScheduleMultiDim< GUM_SCALAR >* >& set,
146 const Schedule< GUM_SCALAR >& schedule);
147 float nbOperations(
const Set<
const MultiDimImplementation< GUM_SCALAR >* >& set,
148 const Schedule< GUM_SCALAR >& schedule);
149 template <
template <
typename >
class TABLE >
150 float nbOperations(
const Set<
const TABLE< GUM_SCALAR >* >& set,
151 const Schedule< GUM_SCALAR >& schedule);
162 virtual std::
pair<
long,
long >
168 template <
template <
typename >
class TABLE >
189 #include <agrum/tools/graphicalModels/inference/scheduler/scheduleCombinationBasic_tpl.h> virtual ~ScheduleCombinationBasic()
destructor
INLINE void emplace(Args &&... args)
std::pair< long, long > memoryUsage(const Set< const TABLE< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)
virtual ScheduleCombinationBasic< GUM_SCALAR > * newFactory() const
virtual constructor
float nbOperations(const Set< const TABLE< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)
float nbOperations(const Set< const MultiDimImplementation< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)
ScheduleMultiDim< GUM_SCALAR > combine(const Set< const TABLE< GUM_SCALAR > * > &set, Schedule< GUM_SCALAR > &)
ScheduleCombinationBasic(MultiDimImplementation< GUM_SCALAR > *(*combine)(const MultiDimImplementation< GUM_SCALAR > &, const MultiDimImplementation< GUM_SCALAR > &))
default constructor
std::pair< long, long > memoryUsage(const Set< const MultiDimImplementation< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)
virtual void setCombineFunction(MultiDimImplementation< GUM_SCALAR > *(*combine)(const MultiDimImplementation< GUM_SCALAR > &, const MultiDimImplementation< GUM_SCALAR > &))
changes the function used for combining two TABLES
ScheduleMultiDim< GUM_SCALAR > combine(const Set< const MultiDimImplementation< GUM_SCALAR > * > &set, Schedule< GUM_SCALAR > &)
ScheduleCombinationBasic(const ScheduleCombinationBasic< GUM_SCALAR > &)
copy constructor
Size combinedSize_(const Sequence< const DiscreteVariable * > &seq1, const Sequence< const DiscreteVariable * > &seq2) const
returns the domain size of the Cartesian product of the union of all the variables in seq1 and seq2 ...