aGrUM  0.16.0
gum::ScheduleCombination< GUM_SCALAR > Class Template Referenceabstract

#include <scheduleCombination.h>

+ Inheritance diagram for gum::ScheduleCombination< GUM_SCALAR >:

Public Member Functions

Constructors / Destructors
 ScheduleCombination ()
 default constructor More...
 
 ScheduleCombination (const ScheduleCombination< GUM_SCALAR > &)
 copy constructor More...
 
virtual ~ScheduleCombination ()
 destructor More...
 
virtual ScheduleCombination< GUM_SCALAR > * newFactory () const =0
 virtual constructor More...
 
Accessors/Modifiers
virtual ScheduleMultiDim< GUM_SCALAR > combine (const Set< const ScheduleMultiDim< GUM_SCALAR > * > &set, Schedule< GUM_SCALAR > &schedule)=0
 
ScheduleMultiDim< GUM_SCALAR > combine (const Set< const MultiDimImplementation< GUM_SCALAR > * > &set, Schedule< GUM_SCALAR > &schedule)
 
template<template< typename > class TABLE>
ScheduleMultiDim< GUM_SCALAR > combine (const Set< const TABLE< GUM_SCALAR > * > &set, Schedule< GUM_SCALAR > &schedule)
 
virtual void setCombineFunction (MultiDimImplementation< GUM_SCALAR > *(*combine)(const MultiDimImplementation< GUM_SCALAR > &, const MultiDimImplementation< GUM_SCALAR > &))=0
 changes the function used for combining two TABLES More...
 
virtual MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > &, const MultiDimImplementation< GUM_SCALAR > &) combineFunction ()
 returns the combination function currently used by the combinator More...
 
virtual float nbOperations (const Set< const ScheduleMultiDim< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)=0
 returns a rough estimate of the number of operations that will be performed to compute the combination More...
 
float nbOperations (const Set< const MultiDimImplementation< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)
 
template<template< typename > class TABLE>
float nbOperations (const Set< const TABLE< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)
 
virtual std::pair< long, long > memoryUsage (const Set< const ScheduleMultiDim< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)=0
 returns the memory consumption used during the combination More...
 
std::pair< long, long > memoryUsage (const Set< const MultiDimImplementation< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)
 
template<template< typename > class TABLE>
std::pair< long, long > memoryUsage (const Set< const TABLE< GUM_SCALAR > * > &set, const Schedule< GUM_SCALAR > &schedule)
 

Detailed Description

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

Definition at line 89 of file scheduleCombination.h.

Constructor & Destructor Documentation

◆ ScheduleCombination() [1/2]

template<typename GUM_SCALAR>
gum::ScheduleCombination< GUM_SCALAR >::ScheduleCombination ( )

default constructor

◆ ScheduleCombination() [2/2]

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

copy constructor

◆ ~ScheduleCombination()

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

destructor

Member Function Documentation

◆ combine() [1/3]

template<typename GUM_SCALAR>
virtual ScheduleMultiDim< GUM_SCALAR > gum::ScheduleCombination< GUM_SCALAR >::combine ( const Set< const ScheduleMultiDim< GUM_SCALAR > * > &  set,
Schedule< GUM_SCALAR > &  schedule 
)
pure virtual
Returns
the ScheduleMultiDim resulting from the combination
Exceptions
InvalidArgumentsNumberexception is thrown if the set passed in argument contains less than two elements

Implemented in gum::ScheduleCombinationBasic< GUM_SCALAR >.

◆ combine() [2/3]

template<typename GUM_SCALAR>
ScheduleMultiDim< GUM_SCALAR > gum::ScheduleCombination< GUM_SCALAR >::combine ( const Set< const MultiDimImplementation< GUM_SCALAR > * > &  set,
Schedule< GUM_SCALAR > &  schedule 
)
Returns
the ScheduleMultiDim resulting from the combination
Exceptions
InvalidArgumentsNumberexception is thrown if the set passed in argument contains less than two elements

◆ combine() [3/3]

template<typename GUM_SCALAR>
template<template< typename > class TABLE>
ScheduleMultiDim< GUM_SCALAR > gum::ScheduleCombination< GUM_SCALAR >::combine ( const Set< const TABLE< GUM_SCALAR > * > &  set,
Schedule< GUM_SCALAR > &  schedule 
)
Returns
the ScheduleMultiDim resulting from the combination
Exceptions
InvalidArgumentsNumberexception is thrown if the set passed in argument contains less than two elements

◆ combineFunction()

template<typename GUM_SCALAR>
virtual MultiDimImplementation< GUM_SCALAR >*(*)( const MultiDimImplementation< GUM_SCALAR >&, const MultiDimImplementation< GUM_SCALAR >&) gum::ScheduleCombination< GUM_SCALAR >::combineFunction ( )
virtual

returns the combination function currently used by the combinator

Reimplemented in gum::ScheduleCombinationBasic< GUM_SCALAR >.

◆ memoryUsage() [1/3]

template<typename GUM_SCALAR>
virtual std::pair< long, long > gum::ScheduleCombination< GUM_SCALAR >::memoryUsage ( const Set< const ScheduleMultiDim< GUM_SCALAR > * > &  set,
const Schedule< GUM_SCALAR > &  schedule 
)
pure virtual

returns the memory consumption used during the combination

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

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

Implemented in gum::ScheduleCombinationBasic< GUM_SCALAR >.

◆ memoryUsage() [2/3]

template<typename GUM_SCALAR>
std::pair< long, long > gum::ScheduleCombination< GUM_SCALAR >::memoryUsage ( const Set< const MultiDimImplementation< GUM_SCALAR > * > &  set,
const Schedule< GUM_SCALAR > &  schedule 
)
Returns
the ScheduleMultiDim resulting from the combination
Exceptions
InvalidArgumentsNumberexception is thrown if the set passed in argument contains less than two elements

◆ memoryUsage() [3/3]

template<typename GUM_SCALAR>
template<template< typename > class TABLE>
std::pair< long, long > gum::ScheduleCombination< GUM_SCALAR >::memoryUsage ( const Set< const TABLE< GUM_SCALAR > * > &  set,
const Schedule< GUM_SCALAR > &  schedule 
)
Returns
the ScheduleMultiDim resulting from the combination
Exceptions
InvalidArgumentsNumberexception is thrown if the set passed in argument contains less than two elements

◆ nbOperations() [1/3]

template<typename GUM_SCALAR>
virtual float gum::ScheduleCombination< GUM_SCALAR >::nbOperations ( const Set< const ScheduleMultiDim< GUM_SCALAR > * > &  set,
const Schedule< GUM_SCALAR > &  schedule 
)
pure virtual

returns a rough estimate of the number of operations that will be performed to compute the combination

Implemented in gum::ScheduleCombinationBasic< GUM_SCALAR >.

◆ nbOperations() [2/3]

template<typename GUM_SCALAR>
float gum::ScheduleCombination< GUM_SCALAR >::nbOperations ( const Set< const MultiDimImplementation< GUM_SCALAR > * > &  set,
const Schedule< GUM_SCALAR > &  schedule 
)
Returns
the ScheduleMultiDim resulting from the combination
Exceptions
InvalidArgumentsNumberexception is thrown if the set passed in argument contains less than two elements

◆ nbOperations() [3/3]

template<typename GUM_SCALAR>
template<template< typename > class TABLE>
float gum::ScheduleCombination< GUM_SCALAR >::nbOperations ( const Set< const TABLE< GUM_SCALAR > * > &  set,
const Schedule< GUM_SCALAR > &  schedule 
)
Returns
the ScheduleMultiDim resulting from the combination
Exceptions
InvalidArgumentsNumberexception is thrown if the set passed in argument contains less than two elements

◆ newFactory()

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

virtual constructor

Returns
a new fresh ScheduleCombinator with the same combination function.

Implemented in gum::ScheduleCombinationBasic< GUM_SCALAR >.

◆ operator=()

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

forbid copy operators

◆ setCombineFunction()

template<typename GUM_SCALAR>
virtual void gum::ScheduleCombination< GUM_SCALAR >::setCombineFunction ( MultiDimImplementation< GUM_SCALAR > *(*)(const MultiDimImplementation< GUM_SCALAR > &, const MultiDimImplementation< GUM_SCALAR > &)  combine)
pure virtual

changes the function used for combining two TABLES

Implemented in gum::ScheduleCombinationBasic< GUM_SCALAR >.


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