OpenGM  2.3.x
Discrete Graphical Model Library
Public Types | Public Member Functions | List of all members
opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL > Class Template Reference

Fallback implementation of member functions of OpenGM functions. More...

#include <function_properties_base.hxx>

+ Inheritance diagram for opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >:
+ Collaboration diagram for opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >:

Public Types

typedef AccessorIterator< FunctionShapeAccessorType, true > FunctionShapeIteratorType
 

Public Member Functions

bool isPotts () const
 
bool isGeneralizedPotts () const
 
bool isSubmodular () const
 
bool isSquaredDifference () const
 
bool isTruncatedSquaredDifference () const
 
bool isAbsoluteDifference () const
 
bool isTruncatedAbsoluteDifference () const
 
bool isLinearConstraint () const
 
MinMaxFunctor< VALUE > minMax () const
 find minimum and maximum of the function in a single sweep More...
 
ReturnType min () const
 
ReturnType max () const
 
ReturnType sum () const
 
ReturnType product () const
 
template<class ACC >
ReturnType accumulate () const
 accumulate all values of the function More...
 
template<class FUNCTOR >
void forAllValuesInOrder (FUNCTOR &functor) const
 call a functor for each value of the function (in lexicographical order of the variable indices) More...
 
template<class FUNCTOR >
void forAllValuesInSwitchedOrder (FUNCTOR &functor) const
 
template<class FUNCTOR >
void forAllValuesInAnyOrder (FUNCTOR &functor) const
 call a functor for each value of the function (in un-specified order) More...
 
template<class FUNCTOR >
void forAtLeastAllUniqueValues (FUNCTOR &functor) const
 call a functor for at least all unique values of the function More...
 
template<class COORDINATE_FUNCTOR >
void forAllValuesInOrderWithCoordinate (COORDINATE_FUNCTOR &functor) const
 
template<class COORDINATE_FUNCTOR >
void forAllValuesInAnyOrderWithCoordinate (COORDINATE_FUNCTOR &functor) const
 
template<class COORDINATE_FUNCTOR >
void forAtLeastAllUniqueValuesWithCoordinate (COORDINATE_FUNCTOR &functor) const
 
bool operator== (const FUNCTION &) const
 
FunctionShapeIteratorType functionShapeBegin () const
 
FunctionShapeIteratorType functionShapeEnd () const
 
size_t numberOfWeights () const
 
INDEX weightIndex (const size_t weightNumber) const
 
void setWeights (const opengm::learning::Weights< VALUE > &) const
 
template<class ITERATOR >
VALUE weightGradient (size_t, ITERATOR) const
 

Detailed Description

template<class FUNCTION, class VALUE, class INDEX = size_t, class LABEL = size_t>
class opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >

Fallback implementation of member functions of OpenGM functions.

Definition at line 44 of file function_properties_base.hxx.

Member Typedef Documentation

§ FunctionShapeIteratorType

template<class FUNCTION, class VALUE, class INDEX = size_t, class LABEL = size_t>
typedef AccessorIterator<FunctionShapeAccessorType, true> opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::FunctionShapeIteratorType

Definition at line 126 of file function_properties_base.hxx.

Member Function Documentation

§ accumulate()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
template<class ACC >
FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::ReturnType opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::accumulate ( ) const
inline

accumulate all values of the function

Template Parameters
ACCAccumulator (e.g. Minimizer, Maximizer, ...)
Returns
accumulated value

Definition at line 578 of file function_properties_base.hxx.

§ forAllValuesInAnyOrder()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
template<class FUNCTOR >
void opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::forAllValuesInAnyOrder ( FUNCTOR &  functor) const
inline

call a functor for each value of the function (in un-specified order)

See also
forAllValuesInOrder, forAtLeastAllUniqueValues

Definition at line 243 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ forAllValuesInAnyOrderWithCoordinate()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
template<class COORDINATE_FUNCTOR >
void opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::forAllValuesInAnyOrderWithCoordinate ( COORDINATE_FUNCTOR &  functor) const
inline

Definition at line 194 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ forAllValuesInOrder()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
template<class FUNCTOR >
void opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::forAllValuesInOrder ( FUNCTOR &  functor) const
inline

call a functor for each value of the function (in lexicographical order of the variable indices)

Example:

template<class T>
struct MaxFunctor {
void operator()(const T v) {
if(v > max_)
max_ = v;
}
T max_;
};
MaxFunctor<float> maxFunctor;
maxFunctor.max_ = 0.0;
function.forAllValuesInOrder(maxFunctor);
See also
forAllValuesInAnyOrder, forAtLeastAllUniqueValues

Definition at line 215 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ forAllValuesInOrderWithCoordinate()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
template<class COORDINATE_FUNCTOR >
void opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::forAllValuesInOrderWithCoordinate ( COORDINATE_FUNCTOR &  functor) const
inline

Definition at line 180 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ forAllValuesInSwitchedOrder()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
template<class FUNCTOR >
void opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::forAllValuesInSwitchedOrder ( FUNCTOR &  functor) const
inline

Definition at line 229 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ forAtLeastAllUniqueValues()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
template<class FUNCTOR >
void opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::forAtLeastAllUniqueValues ( FUNCTOR &  functor) const
inline

call a functor for at least all unique values of the function

See also
forAllValuesInOrder, forAllValuesInAnyOrder

Definition at line 253 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ forAtLeastAllUniqueValuesWithCoordinate()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
template<class COORDINATE_FUNCTOR >
void opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::forAtLeastAllUniqueValuesWithCoordinate ( COORDINATE_FUNCTOR &  functor) const
inline

Definition at line 204 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ functionShapeBegin()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::FunctionShapeIteratorType opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::functionShapeBegin ( ) const
inline

Definition at line 261 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ functionShapeEnd()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::FunctionShapeIteratorType opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::functionShapeEnd ( ) const
inline

Definition at line 268 of file function_properties_base.hxx.

§ isAbsoluteDifference()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
bool opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::isAbsoluteDifference ( ) const
inline

Definition at line 325 of file function_properties_base.hxx.

§ isGeneralizedPotts()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
bool opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::isGeneralizedPotts ( ) const
inline

Definition at line 398 of file function_properties_base.hxx.

§ isLinearConstraint()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
bool opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::isLinearConstraint ( ) const
inline

Definition at line 523 of file function_properties_base.hxx.

§ isPotts()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
bool opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::isPotts ( ) const
inline

Definition at line 373 of file function_properties_base.hxx.

§ isSquaredDifference()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
bool opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::isSquaredDifference ( ) const
inline

Definition at line 275 of file function_properties_base.hxx.

§ isSubmodular()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
bool opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::isSubmodular ( ) const
inline

Definition at line 505 of file function_properties_base.hxx.

§ isTruncatedAbsoluteDifference()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
bool opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::isTruncatedAbsoluteDifference ( ) const
inline

Definition at line 346 of file function_properties_base.hxx.

§ isTruncatedSquaredDifference()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
bool opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::isTruncatedSquaredDifference ( ) const
inline

Definition at line 297 of file function_properties_base.hxx.

§ max()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::ReturnType opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::max ( ) const
inline

Definition at line 551 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ min()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::ReturnType opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::min ( ) const
inline

Definition at line 541 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ minMax()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
MinMaxFunctor< VALUE > opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::minMax ( ) const
inline

find minimum and maximum of the function in a single sweep

Returns
class holding the minimum and the maximum

Definition at line 530 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ numberOfWeights()

template<class FUNCTION, class VALUE, class INDEX = size_t, class LABEL = size_t>
size_t opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::numberOfWeights ( ) const
inline

Definition at line 131 of file function_properties_base.hxx.

§ operator==()

template<class FUNCTION, class VALUE , class INDEX , class LABEL >
bool opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::operator== ( const FUNCTION &  fb) const
inline

Definition at line 149 of file function_properties_base.hxx.

§ product()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::ReturnType opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::product ( ) const
inline

Definition at line 569 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ setWeights()

template<class FUNCTION, class VALUE, class INDEX = size_t, class LABEL = size_t>
void opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::setWeights ( const opengm::learning::Weights< VALUE > &  ) const
inline

Definition at line 137 of file function_properties_base.hxx.

§ sum()

template<class FUNCTION , class VALUE , class INDEX , class LABEL >
FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::ReturnType opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::sum ( ) const
inline

Definition at line 561 of file function_properties_base.hxx.

+ Here is the caller graph for this function:

§ weightGradient()

template<class FUNCTION, class VALUE, class INDEX = size_t, class LABEL = size_t>
template<class ITERATOR >
VALUE opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::weightGradient ( size_t  ,
ITERATOR   
) const
inline

Definition at line 139 of file function_properties_base.hxx.

§ weightIndex()

template<class FUNCTION, class VALUE, class INDEX = size_t, class LABEL = size_t>
INDEX opengm::FunctionBase< FUNCTION, VALUE, INDEX, LABEL >::weightIndex ( const size_t  weightNumber) const
inline

Definition at line 134 of file function_properties_base.hxx.