aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
gum::ScheduleProject< GUM_SCALAR > Class Template Reference

#include <scheduleProject.h>

+ Inheritance diagram for gum::ScheduleProject< GUM_SCALAR >:
+ Collaboration diagram for gum::ScheduleProject< GUM_SCALAR >:

Public Member Functions

Constructors / Destructors
 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 More...
 
 ScheduleProject (const ScheduleProject< GUM_SCALAR > &)
 copy constructor More...
 
virtual ScheduleProject< GUM_SCALAR > * newFactory () const
 virtual copy constructor: creates a clone of the operation More...
 
virtual ~ScheduleProject ()
 destructor More...
 
Operators
ScheduleProject< GUM_SCALAR > & operator= (const ScheduleProject< GUM_SCALAR > &)
 copy operator More...
 
bool operator== (const ScheduleOperation< GUM_SCALAR > &) const
 operator == More...
 
bool operator!= (const ScheduleOperation< GUM_SCALAR > &) const
 operator != More...
 
Accessors/Modifiers
void execute ()
 executes the operation More...
 
float nbOperations () const
 returns an estimation of the number of elementary operations needed to perform the ScheduleOperation More...
 
std::pair< long, long > memoryUsage () const
 returns the memory consumption used during the operation More...
 
const ScheduleMultiDim< GUM_SCALAR > & result () const
 returns the scheduleMultidim resulting from the execution of the operation More...
 
const Sequence< const ScheduleMultiDim< GUM_SCALAR > *> & multiDimArgs () const
 returns the set of multidims passed in argument to the operation More...
 
const Sequence< const ScheduleMultiDim< GUM_SCALAR > *> & multiDimResults () const
 returns the set of multidims that should be the result of the operation More...
 
std::string toString () const
 displays the content of the operation More...
 
Accessors/Modifiers
Type type () const
 returns the name of the operation More...
 
Idx id () const
 returns the id of the operation More...
 

Public Types

enum  Type : char {
  Type::COMBINE_MULTIDIM, Type::PROJECT_MULTIDIM, Type::DELETE_MULTIDIM, Type::CLIQUE_STORE_MULTIDIM,
  Type::SEPARATOR_STORE_MULTIDIM
}
 the currently supported types of operations More...
 

Detailed Description

template<typename GUM_SCALAR>
class gum::ScheduleProject< GUM_SCALAR >

Definition at line 46 of file scheduleProject.h.

Member Enumeration Documentation

◆ Type

template<typename GUM_SCALAR >
enum gum::ScheduleOperation::Type : char
stronginherited

the currently supported types of operations

Enumerator
COMBINE_MULTIDIM 

combine 2 ScheduleMultiDims

PROJECT_MULTIDIM 

project a ScheduleMultiDim over a subset of its variables

DELETE_MULTIDIM 

delete a MultiDim from memory

CLIQUE_STORE_MULTIDIM 

store a Multidim into a clique

SEPARATOR_STORE_MULTIDIM 

store a multidim into a separator

Definition at line 44 of file scheduleOperation.h.

44  : char
45  {
47  COMBINE_MULTIDIM,
49  PROJECT_MULTIDIM,
51  DELETE_MULTIDIM,
53  CLIQUE_STORE_MULTIDIM,
55  SEPARATOR_STORE_MULTIDIM
56  };

Constructor & Destructor Documentation

◆ ScheduleProject() [1/2]

template<typename GUM_SCALAR >
gum::ScheduleProject< GUM_SCALAR >::ScheduleProject ( const ScheduleMultiDim< GUM_SCALAR > &  table,
const Set< const DiscreteVariable * > &  del_vars,
MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > &, const Set< const DiscreteVariable * > &)  project 
)

default constructor

Warning
table and del_vars are passed by copy

◆ ScheduleProject() [2/2]

template<typename GUM_SCALAR >
gum::ScheduleProject< GUM_SCALAR >::ScheduleProject ( const ScheduleProject< GUM_SCALAR > &  )

copy constructor

◆ ~ScheduleProject()

template<typename GUM_SCALAR >
virtual gum::ScheduleProject< GUM_SCALAR >::~ScheduleProject ( )
virtual

destructor

Member Function Documentation

◆ execute()

template<typename GUM_SCALAR >
void gum::ScheduleProject< GUM_SCALAR >::execute ( )
virtual

executes the operation

Implements gum::ScheduleOperation< GUM_SCALAR >.

◆ id()

template<typename GUM_SCALAR >
Idx gum::ScheduleOperation< GUM_SCALAR >::id ( ) const
inherited

returns the id of the operation

◆ memoryUsage()

template<typename GUM_SCALAR >
std::pair< long, long > gum::ScheduleProject< GUM_SCALAR >::memoryUsage ( ) const
virtual

returns the memory consumption used during the operation

Actually, this function does not return a precise account of the memory used by the ScheduleOperation but a rough estimate based on the sizes of the tables involved in the operation.

Returns
a pair of memory consumption: the first one is the maximum amount of memory used during the operation and the second one is the amount of memory still used at the end of the function ( the memory used by the resulting table )

Implements gum::ScheduleOperation< GUM_SCALAR >.

◆ multiDimArgs()

template<typename GUM_SCALAR >
const Sequence< const ScheduleMultiDim< GUM_SCALAR >* >& gum::ScheduleProject< GUM_SCALAR >::multiDimArgs ( ) const
virtual

returns the set of multidims passed in argument to the operation

Implements gum::ScheduleOperation< GUM_SCALAR >.

◆ multiDimResults()

template<typename GUM_SCALAR >
const Sequence< const ScheduleMultiDim< GUM_SCALAR >* >& gum::ScheduleProject< GUM_SCALAR >::multiDimResults ( ) const
virtual

returns the set of multidims that should be the result of the operation

Implements gum::ScheduleOperation< GUM_SCALAR >.

◆ nbOperations()

template<typename GUM_SCALAR >
float gum::ScheduleProject< GUM_SCALAR >::nbOperations ( ) const
virtual

returns an estimation of the number of elementary operations needed to perform the ScheduleOperation

Implements gum::ScheduleOperation< GUM_SCALAR >.

◆ newFactory()

template<typename GUM_SCALAR >
virtual ScheduleProject< GUM_SCALAR >* gum::ScheduleProject< GUM_SCALAR >::newFactory ( ) const
virtual

virtual copy constructor: creates a clone of the operation

Implements gum::ScheduleOperation< GUM_SCALAR >.

◆ operator!=()

template<typename GUM_SCALAR >
bool gum::ScheduleProject< GUM_SCALAR >::operator!= ( const ScheduleOperation< GUM_SCALAR > &  ) const
virtual

operator !=

Two operations are identical if and only if they have the same arguments and their types are identical (combine, project, etc)

Implements gum::ScheduleOperation< GUM_SCALAR >.

◆ operator=()

template<typename GUM_SCALAR >
ScheduleProject< GUM_SCALAR >& gum::ScheduleProject< GUM_SCALAR >::operator= ( const ScheduleProject< GUM_SCALAR > &  )

copy operator

◆ operator==()

template<typename GUM_SCALAR >
bool gum::ScheduleProject< GUM_SCALAR >::operator== ( const ScheduleOperation< GUM_SCALAR > &  ) const
virtual

operator ==

Two operations are identical if and only if they have the same arguments and their types are identical (combine, project, etc)

Implements gum::ScheduleOperation< GUM_SCALAR >.

◆ result()

template<typename GUM_SCALAR >
const ScheduleMultiDim< GUM_SCALAR >& gum::ScheduleProject< GUM_SCALAR >::result ( ) const

returns the scheduleMultidim resulting from the execution of the operation

◆ toString()

template<typename GUM_SCALAR >
std::string gum::ScheduleProject< GUM_SCALAR >::toString ( ) const
virtual

displays the content of the operation

Implements gum::ScheduleOperation< GUM_SCALAR >.

◆ type()

template<typename GUM_SCALAR >
Type gum::ScheduleOperation< GUM_SCALAR >::type ( ) const
inherited

returns the name of the operation

Member Data Documentation

◆ _args_

template<typename GUM_SCALAR >
Sequence< const ScheduleMultiDim< GUM_SCALAR >* >* gum::ScheduleProject< GUM_SCALAR >::_args_
mutableprivate

the set of ScheduleMultidims passed in arguments

Definition at line 141 of file scheduleProject.h.

◆ _del_vars_

template<typename GUM_SCALAR >
Set< const DiscreteVariable* > gum::ScheduleProject< GUM_SCALAR >::_del_vars_
private

Definition at line 135 of file scheduleProject.h.

◆ _project_

template<typename GUM_SCALAR >
MultiDimImplementation< GUM_SCALAR >*(* gum::ScheduleProject< GUM_SCALAR >::_project_) (const MultiDimImplementation< GUM_SCALAR > &, const Set< const DiscreteVariable *> &)
private

the projection operator

Definition at line 147 of file scheduleProject.h.

◆ _result_

template<typename GUM_SCALAR >
ScheduleMultiDim< GUM_SCALAR >* gum::ScheduleProject< GUM_SCALAR >::_result_
private

the result of the operation

Definition at line 138 of file scheduleProject.h.

◆ _results_

template<typename GUM_SCALAR >
Sequence< const ScheduleMultiDim< GUM_SCALAR >* >* gum::ScheduleProject< GUM_SCALAR >::_results_
mutableprivate

the set of ScheduleMultidims resulting from the operation

Definition at line 144 of file scheduleProject.h.

◆ _table_

template<typename GUM_SCALAR >
ScheduleMultiDim< GUM_SCALAR > gum::ScheduleProject< GUM_SCALAR >::_table_
private

Definition at line 132 of file scheduleProject.h.


The documentation for this class was generated from the following file: