aGrUM  0.16.0
scheduleProjectionBasic.h
Go to the documentation of this file.
1 
65 #ifndef GUM_SCHEDULE_PROJECTION_BASIC_H
66 #define GUM_SCHEDULE_PROJECTION_BASIC_H
67 
69 
70 namespace gum {
71 
72  template < typename GUM_SCALAR >
73  class ScheduleProjectionBasic : public ScheduleProjection< GUM_SCALAR > {
74  public:
75  // ############################################################################
77  // ############################################################################
79 
84 
87 
89  virtual ~ScheduleProjectionBasic();
90 
92 
95 
97 
98  // ############################################################################
100  // ############################################################################
102 
105 
113  const Set< const DiscreteVariable* >& del_vars,
114  Schedule< GUM_SCALAR >& schedule);
117  const Set< const DiscreteVariable* >& del_vars,
118  Schedule< GUM_SCALAR >& schedule);
119  template < template < typename > class TABLE >
121  project(const TABLE< GUM_SCALAR >& table,
122  const Set< const DiscreteVariable* >& del_vars,
123  Schedule< GUM_SCALAR >& schedule);
124 
129 
134 
137  virtual float nbOperations(const ScheduleMultiDim< GUM_SCALAR >& table,
138  const Set< const DiscreteVariable* >& del_vars,
139  const Schedule< GUM_SCALAR >& schedule);
141  const Set< const DiscreteVariable* >& del_vars,
142  const Schedule< GUM_SCALAR >& schedule);
143  template < template < typename > class TABLE >
144  float nbOperations(const TABLE< GUM_SCALAR >& set,
145  const Set< const DiscreteVariable* >& del_vars,
146  const Schedule< GUM_SCALAR >& schedule);
147 
149 
157  virtual std::pair< long, long >
159  const Set< const DiscreteVariable* >& del_vars,
160  const Schedule< GUM_SCALAR >& schedule);
161  std::pair< long, long >
163  const Set< const DiscreteVariable* >& del_vars,
164  const Schedule< GUM_SCALAR >& schedule);
165  template < template < typename > class TABLE >
166  std::pair< long, long >
167  memoryUsage(const TABLE< GUM_SCALAR >& table,
168  const Set< const DiscreteVariable* >& del_vars,
169  const Schedule< GUM_SCALAR >& schedule);
170 
172 
173  protected:
178 
179  private:
183  };
184 
185 } /* namespace gum */
186 
187 // always include the template implementation
189 
190 #endif /* GUM_SCHEDULE_PROJECTION_H */
virtual float nbOperations(const ScheduleMultiDim< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, const Schedule< GUM_SCALAR > &schedule)
returns a rough estimate of the number of operations that will be performed to compute the projection...
ScheduleProjectionBasic(MultiDimImplementation< GUM_SCALAR > *(*proj)(const MultiDimImplementation< GUM_SCALAR > &, const Set< const DiscreteVariable * > &))
default constructor
a MultiDimImplementation Wrapper used for scheduling inferences
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
ScheduleProjectionBasic< GUM_SCALAR > & operator=(const ScheduleProjectionBasic< GUM_SCALAR > &)
to be coherent with combinations, forbid copy operators
virtual ~ScheduleProjectionBasic()
destructor
void setProjectFunction(MultiDimImplementation< GUM_SCALAR > *(*proj)(const MultiDimImplementation< GUM_SCALAR > &, const Set< const DiscreteVariable * > &))
changes the function used for projecting tables
Representation of a setA Set is a structure that contains arbitrary elements.
Definition: set.h:165
ScheduleMultiDim< GUM_SCALAR > project(const ScheduleMultiDim< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, Schedule< GUM_SCALAR > &schedule)
creates and returns the projection of the table over a subset of its vars
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > &, const Set< const DiscreteVariable *> &) projectFunction()
returns the projection function currently used by the projector
Class containing a schedule of operations to perform on multidims.
Definition: schedule.h:68
<agrum/multidim/multiDimImplementation.h>
virtual std::pair< long, long > memoryUsage(const ScheduleMultiDim< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, const Schedule< GUM_SCALAR > &schedule)
returns the memory consumption used during the projection
virtual ScheduleProjectionBasic< GUM_SCALAR > * newFactory() const
virtual constructor