28 #ifndef GUM_MULTI_DIM_COMBINE_AND_PROJECT_DEFAULT_H 29 #define GUM_MULTI_DIM_COMBINE_AND_PROJECT_DEFAULT_H 31 #include <agrum/tools/multidim/utils/operators/multiDimCombinationDefault.h> 32 #include <agrum/tools/multidim/utils/operators/multiDimCombineAndProject.h> 33 #include <agrum/tools/multidim/utils/operators/multiDimProjection.h> 46 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
56 TABLE< GUM_SCALAR >* (*combine)(
const TABLE< GUM_SCALAR >&,
const TABLE< GUM_SCALAR >&),
57 TABLE< GUM_SCALAR >* (*project)(
const TABLE< GUM_SCALAR >&,
58 const Set<
const DiscreteVariable* >&));
95 virtual void setCombineFunction(TABLE< GUM_SCALAR >* (*combine)(
const TABLE< GUM_SCALAR >&,
96 const TABLE< GUM_SCALAR >&));
112 virtual void setCombinationClass(
const MultiDimCombination< GUM_SCALAR, TABLE >& comb_class);
115 virtual TABLE< GUM_SCALAR >* (*combineFunction())(
const TABLE< GUM_SCALAR >&,
116 const TABLE< GUM_SCALAR >&);
121 const Set<
const DiscreteVariable* >&));
129 virtual void setProjectionClass(
const MultiDimProjection< GUM_SCALAR, TABLE >& proj_class);
132 virtual TABLE< GUM_SCALAR >* (*projectFunction())(
const TABLE< GUM_SCALAR >&,
133 const Set<
const DiscreteVariable* >&);
139 virtual float nbOperations(
const Set<
const TABLE< GUM_SCALAR >* >& set,
140 const Set<
const DiscreteVariable* >& del_vars)
const;
146 virtual float nbOperations(
const Set<
const Sequence<
const DiscreteVariable* >* >& set,
147 Set<
const DiscreteVariable* > del_vars)
const;
162 virtual std::
pair<
long,
long >
179 virtual std::
pair<
long,
long >
196 #include <agrum/tools/multidim/utils/operators/multiDimCombineAndProjectDefault_tpl.h> An efficient class for combining and projecting MultiDim tables.
virtual ~MultiDimCombineAndProjectDefault()
Destructor.
MultiDimCombination< GUM_SCALAR, TABLE > * _combination_
the class used for the combinations
INLINE void emplace(Args &&... args)
virtual void setCombineFunction(TABLE< GUM_SCALAR > *(*combine)(const TABLE< GUM_SCALAR > &, const TABLE< GUM_SCALAR > &))
changes the function used for combining two TABLES
MultiDimCombineAndProjectDefault(const MultiDimCombineAndProjectDefault< GUM_SCALAR, TABLE > &)
Copy constructor.
virtual std::pair< long, long > memoryUsage(const Set< const Sequence< const DiscreteVariable * > * > &set, Set< const DiscreteVariable * > del_vars) const
returns the memory consumption used during the combinations and projections
virtual float nbOperations(const Set< const TABLE< GUM_SCALAR > * > &set, const Set< const DiscreteVariable * > &del_vars) const
returns a rough estimate of the number of operations that will be performed to compute the combinatio...
MultiDimProjection< GUM_SCALAR, TABLE > * _projection_
the class used for the projections
virtual void setProjectionClass(const MultiDimProjection< GUM_SCALAR, TABLE > &proj_class)
Changes the class that performs the projections.
virtual void setCombinationClass(const MultiDimCombination< GUM_SCALAR, TABLE > &comb_class)
changes the class that performs the combinations
MultiDimCombineAndProjectDefault(TABLE< GUM_SCALAR > *(*combine)(const TABLE< GUM_SCALAR > &, const TABLE< GUM_SCALAR > &), TABLE< GUM_SCALAR > *(*project)(const TABLE< GUM_SCALAR > &, const Set< const DiscreteVariable * > &))
Default constructor.
virtual MultiDimCombineAndProjectDefault< GUM_SCALAR, TABLE > * newFactory() const
virtual constructor
virtual float nbOperations(const Set< const Sequence< const DiscreteVariable * > * > &set, Set< const DiscreteVariable * > del_vars) const
returns a rough estimate of the number of operations that will be performed to compute the combinatio...
virtual std::pair< long, long > memoryUsage(const Set< const TABLE< GUM_SCALAR > * > &set, const Set< const DiscreteVariable * > &del_vars) const
returns the memory consumption used during the combinations and projections
virtual void setProjectFunction(TABLE< GUM_SCALAR > *(*proj)(const TABLE< GUM_SCALAR > &, const Set< const DiscreteVariable * > &))
Changes the function used for projecting TABLES.
virtual Set< const TABLE< GUM_SCALAR > *> combineAndProject(Set< const TABLE< GUM_SCALAR > * > set, Set< const DiscreteVariable * > del_vars)
creates and returns the result of the projection over the variables not in del_vars of the combinatio...