28 #ifndef GUM_MULTI_DIM_COMPLETE_PROJECTION_H 29 #define GUM_MULTI_DIM_COMPLETE_PROJECTION_H 31 #include <agrum/tools/core/set.h> 32 #include <agrum/tools/multidim/instantiation.h> 33 #include <agrum/tools/variables/discreteVariable.h> 47 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
79 GUM_SCALAR
project(
const TABLE< GUM_SCALAR >& table, Instantiation* instantiation = 0);
82 void setProjectFunction(GUM_SCALAR (*proj)(
const TABLE< GUM_SCALAR >&, Instantiation*));
85 GUM_SCALAR(*projectFunction())
86 (
const TABLE< GUM_SCALAR >&, Instantiation*);
92 GUM_SCALAR (*proj_)(
const TABLE< GUM_SCALAR >&, Instantiation*);
103 #include <agrum/tools/multidim/utils/operators/multiDimCompleteProjection_tpl.h> A generic class to project efficiently a MultiDim table over all of its variables.
virtual MultiDimCompleteProjection< GUM_SCALAR, TABLE > * newFactory() const
Virtual constructor.
MultiDimCompleteProjection< GUM_SCALAR, TABLE > & operator=(const MultiDimCompleteProjection< GUM_SCALAR, TABLE > &)
Forbid copy operators.
INLINE void emplace(Args &&... args)
virtual ~MultiDimCompleteProjection()
Destructor.
MultiDimCompleteProjection(const MultiDimCompleteProjection< GUM_SCALAR, TABLE > &)
Copy constructor.
GUM_SCALAR project(const TABLE< GUM_SCALAR > &table, Instantiation *instantiation=0)
Creates and returns the projection of the table over all of its vars.
void setProjectFunction(GUM_SCALAR(*proj)(const TABLE< GUM_SCALAR > &, Instantiation *))
Changes the function used for projecting TABLES.
MultiDimCompleteProjection(GUM_SCALAR(*proj)(const TABLE< GUM_SCALAR > &, Instantiation *))
Default constructor.