48#ifndef GUM_MULTI_DIM_COMPLETE_PROJECTION_H
49#define GUM_MULTI_DIM_COMPLETE_PROJECTION_H
67 template <
typename GUM_ELEMENT,
template <
typename >
class TABLE >
105 GUM_ELEMENT(*projectFunction())
Class for assigning/browsing values to tuples of discrete variables.
GUM_ELEMENT project(const TABLE< GUM_ELEMENT > &table, Instantiation *instantiation=0)
Creates and returns the projection of the table over all of its vars.
virtual ~MultiDimCompleteProjection()
Destructor.
MultiDimCompleteProjection(GUM_ELEMENT(*proj)(const TABLE< GUM_ELEMENT > &, Instantiation *))
Default constructor.
MultiDimCompleteProjection(const MultiDimCompleteProjection< GUM_ELEMENT, TABLE > &)
Copy constructor.
virtual MultiDimCompleteProjection< GUM_ELEMENT, TABLE > * newFactory() const
Virtual constructor.
MultiDimCompleteProjection< GUM_ELEMENT, TABLE > & operator=(const MultiDimCompleteProjection< GUM_ELEMENT, TABLE > &)
Forbid copy operators.
void setProjectFunction(GUM_ELEMENT(*proj)(const TABLE< GUM_ELEMENT > &, Instantiation *))
Changes the function used for projecting TABLES.
GUM_ELEMENT(* proj_)(const TABLE< GUM_ELEMENT > &, Instantiation *)
The projection function actually used.
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