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 >
115 template <
template <
typename >
class TABLE >
125 MultiDimImplementation< GUM_SCALAR >* (*projectFunction())(
126 const MultiDimImplementation< GUM_SCALAR >&,
127 const Set<
const DiscreteVariable* >&);
131 virtual float nbOperations(
const ScheduleMultiDim< GUM_SCALAR >& table,
132 const Set<
const DiscreteVariable* >& del_vars,
133 const Schedule< GUM_SCALAR >& schedule);
134 float nbOperations(
const MultiDimImplementation< GUM_SCALAR >& table,
135 const Set<
const DiscreteVariable* >& del_vars,
136 const Schedule< GUM_SCALAR >& schedule);
137 template <
template <
typename >
class TABLE >
139 const Set<
const DiscreteVariable* >& del_vars,
140 const Schedule< GUM_SCALAR >& schedule);
157 template <
template <
typename >
class TABLE >
177 #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