48#ifndef GUM_MULTI_DIM_COMPLETE_PROJECTION_H
49#define GUM_MULTI_DIM_COMPLETE_PROJECTION_H
67 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
105 GUM_SCALAR(*projectFunction())
Class for assigning/browsing values to tuples of discrete variables.
virtual ~MultiDimCompleteProjection()
Destructor.
GUM_SCALAR project(const TABLE< GUM_SCALAR > &table, Instantiation *instantiation=0)
Creates and returns the projection of the table over all of its vars.
GUM_SCALAR(* proj_)(const TABLE< GUM_SCALAR > &, Instantiation *)
The projection function actually used.
virtual MultiDimCompleteProjection< GUM_SCALAR, TABLE > * newFactory() const
Virtual constructor.
MultiDimCompleteProjection(const MultiDimCompleteProjection< GUM_SCALAR, TABLE > &)
Copy constructor.
MultiDimCompleteProjection< GUM_SCALAR, TABLE > & operator=(const MultiDimCompleteProjection< GUM_SCALAR, TABLE > &)
Forbid copy operators.
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.
Header files of gum::Instantiation.
A generic class to project efficiently a MultiDim table over all of its variables.
gum is the global namespace for all aGrUM entities