aGrUM  0.16.0
scheduleProject.h
Go to the documentation of this file.
1 
29 #ifndef GUM_SCHEDULE_PROJECT_H
30 #define GUM_SCHEDULE_PROJECT_H
31 
32 #include <string>
33 
34 #include <agrum/agrum.h>
35 
36 #include <agrum/core/sequence.h>
37 #include <agrum/core/set.h>
42 
43 namespace gum {
44 
45  template < typename GUM_SCALAR >
46 
47  class ScheduleProject : public ScheduleOperation< GUM_SCALAR > {
48  public:
49  // ############################################################################
51  // ############################################################################
53 
55 
57  const Set< const DiscreteVariable* >& del_vars,
61 
64 
67 
69  virtual ~ScheduleProject();
70 
72 
73  // ############################################################################
75  // ############################################################################
77 
80 
82 
85 
87 
90 
92 
93  // ############################################################################
95  // ############################################################################
97 
99  void execute();
100 
103  float nbOperations() const;
104 
106 
114  std::pair< long, long > memoryUsage() const;
115 
118  const ScheduleMultiDim< GUM_SCALAR >& result() const;
119 
122 
125  multiDimResults() const;
126 
128  std::string toString() const;
129 
131 
132  private:
133  // the table to project
135 
136  // the set of variables that should be removed from the table
138 
141 
144 
147 
152  };
153 
154 } /* namespace gum */
155 
156 // always include the template implementation
158 
159 #endif /* GUM_SCHEDULE_PROJECTION_H */
virtual ScheduleProject< GUM_SCALAR > * newFactory() const
virtual copy constructor: creates a clone of the operation
const ScheduleMultiDim< GUM_SCALAR > & result() const
returns the scheduleMultidim resulting from the execution of the operation
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.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
a MultiDimImplementation Wrapper used for scheduling inferences
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
std::pair< long, long > memoryUsage() const
returns the memory consumption used during the operation
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
float nbOperations() const
returns an estimation of the number of elementary operations needed to perform the ScheduleOperation ...
The generic class for storing (ordered) sequences of objects.
Definition: sequence.h:1022
ScheduleMultiDim< GUM_SCALAR > __table
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
void execute()
executes the operation
const Sequence< const ScheduleMultiDim< GUM_SCALAR > *> & multiDimArgs() const
returns the set of multidims passed in argument to the operation
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
bool operator!=(const ScheduleOperation< GUM_SCALAR > &) const
operator !=
ScheduleMultiDim< GUM_SCALAR > * __result
the result of the operation
Representation of a setA Set is a structure that contains arbitrary elements.
Definition: set.h:165
Sequence< const ScheduleMultiDim< GUM_SCALAR > *> * __results
the set of ScheduleMultidims resulting from the operation
virtual ~ScheduleProject()
destructor
std::string toString() const
displays the content of the operation
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
const Sequence< const ScheduleMultiDim< GUM_SCALAR > *> & multiDimResults() const
returns the set of multidims that should be the result of the operation
bool operator==(const ScheduleOperation< GUM_SCALAR > &) const
operator ==
ScheduleProject(const ScheduleMultiDim< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, MultiDimImplementation< GUM_SCALAR > *(*project)(const MultiDimImplementation< GUM_SCALAR > &, const Set< const DiscreteVariable * > &))
default constructor
ScheduleProject< GUM_SCALAR > & operator=(const ScheduleProject< GUM_SCALAR > &)
copy operator
<agrum/multidim/multiDimImplementation.h>
Set< const DiscreteVariable *> __del_vars
Sequence< const ScheduleMultiDim< GUM_SCALAR > *> * __args
the set of ScheduleMultidims passed in arguments