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 >
116 const TABLE< GUM_SCALAR >&));
148 virtual TABLE< GUM_SCALAR >*
combine(
const Set<
const TABLE< GUM_SCALAR >* >& set);
149 virtual void combine(TABLE< GUM_SCALAR >& container,
150 const Set<
const TABLE< GUM_SCALAR >* >& set);
153 virtual void setCombineFunction(TABLE< GUM_SCALAR >* (*combine)(
const TABLE< GUM_SCALAR >&,
154 const TABLE< GUM_SCALAR >&));
157 virtual TABLE< GUM_SCALAR >* (*combineFunction())(
const TABLE< GUM_SCALAR >&,
158 const TABLE< GUM_SCALAR >&);
164 virtual float nbOperations(
const Set<
const TABLE< GUM_SCALAR >* >& set)
const;
165 virtual float nbOperations(
const Set<
const Sequence<
const DiscreteVariable* >* >& set)
const;
179 virtual std::
pair<
long,
long >
186 TABLE< GUM_SCALAR >* (*combine_)(
const TABLE< GUM_SCALAR >& t1,
const TABLE< GUM_SCALAR >& t2);
199 #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.