28 #ifndef DOXYGEN_SHOULD_SKIP_THIS 36 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
38 GUM_SCALAR (*proj)(
const TABLE< GUM_SCALAR >&, Instantiation*)) :
45 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
47 const MultiDimCompleteProjection< GUM_SCALAR, TABLE >& from) :
54 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
61 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
62 MultiDimCompleteProjection< GUM_SCALAR, TABLE >*
64 return new MultiDimCompleteProjection< GUM_SCALAR, TABLE >(*this);
68 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
70 const TABLE< GUM_SCALAR >& table, Instantiation* inst) {
71 return _proj(table, inst);
75 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
77 GUM_SCALAR (*proj)(
const TABLE< GUM_SCALAR >&, Instantiation*)) {
82 template <
typename GUM_SCALAR,
template <
typename >
class TABLE >
84 *MultiDimCompleteProjection< GUM_SCALAR, TABLE >::projectFunction())(
85 const TABLE< GUM_SCALAR >&, Instantiation*) {
virtual MultiDimCompleteProjection< GUM_SCALAR, TABLE > * newFactory() const
Virtual constructor.
gum is the global namespace for all aGrUM entities
virtual ~MultiDimCompleteProjection()
Destructor.
GUM_SCALAR(* _proj)(const TABLE< GUM_SCALAR > &, Instantiation *)
The projection function actually used.
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.