28 #ifndef GUM_MULTI_DIM_COMBINATION_DEFAULT_H 29 #define GUM_MULTI_DIM_COMBINATION_DEFAULT_H 31 #include <agrum/tools/core/sequence.h> 32 #include <agrum/tools/multidim/utils/operators/multiDimCombination.h> 33 #include <agrum/tools/variables/discreteVariable.h> 100 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
117 *combine)(
const TABLE< GUM_SCALAR >&,
const TABLE< GUM_SCALAR >&));
150 virtual TABLE< GUM_SCALAR >*
151 combine(
const Set<
const TABLE< GUM_SCALAR >* >& set);
152 virtual void combine(TABLE< GUM_SCALAR >& container,
153 const Set<
const TABLE< GUM_SCALAR >* >& set);
157 *combine)(
const TABLE< GUM_SCALAR >&,
const TABLE< GUM_SCALAR >&));
160 virtual TABLE< GUM_SCALAR >* (*combineFunction())(
const TABLE< GUM_SCALAR >&,
161 const TABLE< GUM_SCALAR >&);
167 virtual float nbOperations(
const Set<
const TABLE< GUM_SCALAR >* >& set)
const;
169 const Set<
const Sequence<
const DiscreteVariable* >* >& set)
const;
182 virtual std::
pair<
long,
long >
191 TABLE< GUM_SCALAR >* (*combine_)(
const TABLE< GUM_SCALAR >& t1,
192 const TABLE< GUM_SCALAR >& t2);
205 #include <agrum/tools/multidim/utils/operators/multiDimCombinationDefault_tpl.h> A class to combine efficiently several MultiDim tablesMultiDimCombinationDefault is a class designed ...
INLINE void emplace(Args &&... args)
virtual float nbOperations(const Set< const Sequence< const DiscreteVariable * > * > &set) const
Creates and returns the result of the combination of the tables within set.
virtual void setCombineFunction(TABLE< GUM_SCALAR > *(*combine)(const TABLE< GUM_SCALAR > &, const TABLE< GUM_SCALAR > &))
Changes the function used for combining two TABLES.
virtual std::pair< long, long > memoryUsage(const Set< const Sequence< const DiscreteVariable * > * > &set) const
Creates and returns the result of the combination of the tables within set.
virtual MultiDimCombinationDefault< GUM_SCALAR, TABLE > * newFactory() const
virtual 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...
MultiDimCombinationDefault(const MultiDimCombinationDefault< GUM_SCALAR, TABLE > &)
Copy constructor.
virtual void combine(TABLE< GUM_SCALAR > &container, const Set< const TABLE< GUM_SCALAR > * > &set)
Creates and returns the result of the combination of the tables within set.
MultiDimCombinationDefault(TABLE< GUM_SCALAR > *(*combine)(const TABLE< GUM_SCALAR > &, const TABLE< GUM_SCALAR > &))
Default constructor.
virtual ~MultiDimCombinationDefault()
Destructor.
virtual TABLE< GUM_SCALAR > * combine(const Set< const TABLE< GUM_SCALAR > * > &set)
Creates and returns the result of the combination of the tables within set.