48#ifndef GUM_MULTI_DIM_COMBINATION_DEFAULT_H
49#define GUM_MULTI_DIM_COMBINATION_DEFAULT_H
122 template <
class TABLE >
178 operations(
const std::vector< const IScheduleMultiDim* >& set,
179 const bool is_result_persistent =
false) const final;
182 const
bool is_result_persistent = false) const final;
212 std::pair<
double,
double >
235#include <agrum/base/multidim/utils/operators/multiDimCombinationDefault_tpl.h>
Base class for discrete random variable.
The Table-agnostic base class of scheduleMultiDim.
std::pair< std::vector< ScheduleOperator * >, const IScheduleMultiDim * > operations(const std::vector< const IScheduleMultiDim * > &set, const bool is_result_persistent=false) const final
returns the set of operations to perform to make the combination
TABLE(* _combine_)(const TABLE &t1, const TABLE &t2)
The function used to combine two tables.
TABLE(*)(const TABLE &, const TABLE &) combinationFunction()
Returns the combination function currently used by the combinator.
MultiDimCombinationDefault(const MultiDimCombinationDefault< TABLE > &)
Copy constructor.
MultiDimCombinationDefault(TABLE(*combine)(const TABLE &, const TABLE &))
Default constructor.
TABLE * execute(const Set< const TABLE * > &set) const final
Creates and returns the result of the combination of the tables within set.
virtual ~MultiDimCombinationDefault()
Destructor.
void _freeData_(std::vector< const IScheduleMultiDim * > &tables, std::vector< ScheduleOperator * > &operations) const
free the scheduling memory
double nbOperations(const Set< const TABLE * > &set) const final
returns a rough estimate of the number of operations that will be performed to compute the combinatio...
virtual MultiDimCombinationDefault< TABLE > * clone() const
virtual constructor
double _combinedSize_(const IScheduleMultiDim &table1, const IScheduleMultiDim &table2) const
returns the domain size of the Cartesian product of the union of all the variables in seq1 and seq2.
void execute(TABLE &container, const Set< const TABLE * > &set) const final
Returns the combination function currently used by the combinator.
void setCombinationFunction(TABLE(*combine)(const TABLE &, const TABLE &)) final
Changes the function used for combining two TABLES.
std::pair< double, double > memoryUsage(const Set< const TABLE * > &set) const final
Returns the additional memory consumption used during the combination.
MultiDimCombination()
default constructor
const IScheduleMultiDim * schedule(Schedule &schedule, const Set< const IScheduleMultiDim * > &set, const bool is_result_persistent=false) const
add to a given schedule the set of operations needed to perform the combination
the base class for "low-level" operators used to schedule inferences
The generic class for storing (ordered) sequences of objects.
gum is the global namespace for all aGrUM entities