28 #ifndef DOXYGEN_SHOULD_SKIP_THIS 35 template <
typename GUM_SCALAR >
38 GUM_CONSTRUCTOR(ScheduleProjection);
42 template <
typename GUM_SCALAR >
44 const ScheduleProjection< GUM_SCALAR >& from) {
46 GUM_CONS_CPY(ScheduleProjection);
50 template <
typename GUM_SCALAR >
53 GUM_DESTRUCTOR(ScheduleProjection);
57 template <
typename GUM_SCALAR >
59 const MultiDimImplementation< GUM_SCALAR >& table,
60 const Set< const DiscreteVariable* >& del_vars,
61 Schedule< GUM_SCALAR >& schedule) {
62 ScheduleMultiDim< GUM_SCALAR > sched_table(table);
63 return project(sched_table, del_vars, schedule);
67 template <
typename GUM_SCALAR >
68 template <
template <
typename >
class TABLE >
70 const TABLE< GUM_SCALAR >& table,
71 const Set< const DiscreteVariable* >& del_vars,
72 Schedule< GUM_SCALAR >& schedule) {
73 ScheduleMultiDim< GUM_SCALAR > sched_table(*(table.content()));
74 return project(sched_table, del_vars, schedule);
79 template <
typename GUM_SCALAR >
81 const MultiDimImplementation< GUM_SCALAR >& table,
82 const Set< const DiscreteVariable* >& del_vars,
83 const Schedule< GUM_SCALAR >& schedule) {
84 ScheduleMultiDim< GUM_SCALAR > sched_table(table);
85 return nbOperations(sched_table, del_vars, schedule);
90 template <
typename GUM_SCALAR >
91 template <
template <
typename >
class TABLE >
93 const TABLE< GUM_SCALAR >& table,
94 const Set< const DiscreteVariable* >& del_vars,
95 const Schedule< GUM_SCALAR >& schedule) {
96 ScheduleMultiDim< GUM_SCALAR > sched_table(*(table.content()));
97 return nbOperations(sched_table, del_vars, schedule);
101 template <
typename GUM_SCALAR >
103 const MultiDimImplementation< GUM_SCALAR >& table,
104 const Set< const DiscreteVariable* >& del_vars,
105 const Schedule< GUM_SCALAR >& schedule) {
106 ScheduleMultiDim< GUM_SCALAR > sched_table(table);
107 return memoryUsage(sched_table, del_vars, schedule);
111 template <
typename GUM_SCALAR >
112 template <
template <
typename >
class TABLE >
114 const TABLE< GUM_SCALAR >& table,
115 const Set< const DiscreteVariable* >& del_vars,
116 const Schedule< GUM_SCALAR >& schedule) {
117 ScheduleMultiDim< GUM_SCALAR > sched_table(*(table.content()));
118 return memoryUsage(sched_table, del_vars, schedule);
ScheduleProjection()
default constructor
virtual ~ScheduleProjection()
destructor
gum is the global namespace for all aGrUM entities
virtual float nbOperations(const ScheduleMultiDim< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, const Schedule< GUM_SCALAR > &schedule)=0
returns a rough estimate of the number of operations that will be performed to compute the projection...
virtual std::pair< long, long > memoryUsage(const ScheduleMultiDim< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, const Schedule< GUM_SCALAR > &schedule)=0
returns the memory consumption used during the projection
virtual ScheduleMultiDim< GUM_SCALAR > project(const ScheduleMultiDim< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, Schedule< GUM_SCALAR > &schedule)=0
creates and returns the projection of the table over a subset of its vars