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 >
130 template <
template <
typename >
class TABLE >
141 virtual MultiDimImplementation< GUM_SCALAR >* (*combineFunction())(
142 const MultiDimImplementation< GUM_SCALAR >&,
143 const MultiDimImplementation< GUM_SCALAR >&);
148 nbOperations(
const Set<
const ScheduleMultiDim< GUM_SCALAR >* >& set,
149 const Schedule< GUM_SCALAR >& schedule);
151 nbOperations(
const Set<
const MultiDimImplementation< GUM_SCALAR >* >& set,
152 const Schedule< GUM_SCALAR >& schedule);
153 template <
template <
typename >
class TABLE >
154 float nbOperations(
const Set<
const TABLE< GUM_SCALAR >* >& set,
155 const Schedule< GUM_SCALAR >& schedule);
166 virtual std::
pair<
long,
long >
172 template <
template <
typename >
class TABLE >
194 #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 ...