64 #ifndef GUM_SCHEDULE_PROJECTION_BASIC_H 65 #define GUM_SCHEDULE_PROJECTION_BASIC_H 67 #include <agrum/tools/graphicalModels/inference/scheduler/scheduleProjection.h> 71 template <
typename GUM_SCALAR >
118 template <
template <
typename >
class TABLE >
130 MultiDimImplementation< GUM_SCALAR >* (*projectFunction())(
131 const MultiDimImplementation< GUM_SCALAR >&,
132 const Set<
const DiscreteVariable* >&);
136 virtual float nbOperations(
const ScheduleMultiDim< GUM_SCALAR >& table,
137 const Set<
const DiscreteVariable* >& del_vars,
138 const Schedule< GUM_SCALAR >& schedule);
139 float nbOperations(
const MultiDimImplementation< GUM_SCALAR >& table,
140 const Set<
const DiscreteVariable* >& del_vars,
141 const Schedule< GUM_SCALAR >& schedule);
142 template <
template <
typename >
class TABLE >
144 const Set<
const DiscreteVariable* >& del_vars,
145 const Schedule< GUM_SCALAR >& schedule);
156 virtual std::
pair<
long,
long >
164 template <
template <
typename >
class TABLE >
187 #include <agrum/tools/graphicalModels/inference/scheduler/scheduleProjectionBasic_tpl.h> ScheduleProjectionBasic(MultiDimImplementation< GUM_SCALAR > *(*proj)(const MultiDimImplementation< GUM_SCALAR > &, const Set< const DiscreteVariable * > &))
default constructor
ScheduleMultiDim< GUM_SCALAR > project(const MultiDimImplementation< 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
float nbOperations(const TABLE< GUM_SCALAR > &set, const Set< const DiscreteVariable * > &del_vars, const Schedule< GUM_SCALAR > &schedule)
creates and returns the projection of the table over a subset of its vars
INLINE void emplace(Args &&... args)
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
ScheduleMultiDim< GUM_SCALAR > project(const TABLE< 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
ScheduleProjectionBasic(const ScheduleProjectionBasic< GUM_SCALAR > &)
copy constructor
std::pair< long, long > memoryUsage(const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, const Schedule< GUM_SCALAR > &schedule)
creates and returns the projection of the table over a subset of its vars
std::pair< long, long > memoryUsage(const TABLE< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, const Schedule< GUM_SCALAR > &schedule)
creates and returns the projection of the table over a subset of its vars
float nbOperations(const MultiDimImplementation< GUM_SCALAR > &table, const Set< const DiscreteVariable * > &del_vars, const Schedule< GUM_SCALAR > &schedule)
creates and returns the projection of the table over a subset of its vars
virtual ScheduleProjectionBasic< GUM_SCALAR > * newFactory() const
virtual constructor