OpenGM  2.3.x
Discrete Graphical Model Library
Public Types | Public Member Functions | List of all members
opengm::SparseFunction< T, I, L, CONTAINER > Class Template Reference

#include <sparsemarray.hxx>

+ Inheritance diagram for opengm::SparseFunction< T, I, L, CONTAINER >:
+ Collaboration diagram for opengm::SparseFunction< T, I, L, CONTAINER >:

Public Types

typedef CONTAINER ContainerType
 
typedef ContainerType::key_type KeyType
 
typedef ContainerType::mapped_type MappedType
 
typedef std::pair< KeyType, MappedTypeKeyValPairType
 
typedef T ValueType
 
typedef I IndexType
 
typedef L LabelType
 
typedef ContainerType::const_iterator ConstContainerIteratorType
 
typedef ContainerType::iterator ContainerIteratorType
 
- Public Types inherited from opengm::FunctionBase< SparseFunction< T, I, L, CONTAINER >, T, I, L >
typedef AccessorIterator< FunctionShapeAccessorType, true > FunctionShapeIteratorType
 

Public Member Functions

 SparseFunction ()
 
template<class SHAPE_ITERATOR >
 SparseFunction (SHAPE_ITERATOR shapeBegin, SHAPE_ITERATOR shapeEnd, const ValueType defaultValue)
 
size_t size () const
 
const ContainerTypecontainer () const
 
ContainerTypecontainer ()
 
const size_t dimension () const
 
const LabelType shape (const IndexType i) const
 
template<class COORDINATE_ITERATOR >
void keyToCoordinate (const KeyType key, COORDINATE_ITERATOR coordinate) const
 
template<class COORDINATE_ITERATOR >
KeyType coordinateToKey (COORDINATE_ITERATOR coordinate) const
 
template<class COORDINATE_ITERATOR , size_t DIM>
KeyType coordinateToKeyWithDim (COORDINATE_ITERATOR coordinate) const
 
template<class COORDINATE_ITERATOR >
ValueType operator() (COORDINATE_ITERATOR coordinate) const
 
ValueType defaultValue () const
 
ValueType valueFromKey (const KeyType key) const
 
template<class COORDINATE_ITERATOR >
void insert (COORDINATE_ITERATOR coordinate, const ValueType value)
 
- Public Member Functions inherited from opengm::FunctionBase< SparseFunction< T, I, L, CONTAINER >, T, I, L >
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< T > 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
 
ReturnType accumulate () const
 accumulate all values of the function More...
 
void forAllValuesInOrder (FUNCTOR &functor) const
 call a functor for each value of the function (in lexicographical order of the variable indices) More...
 
void forAllValuesInSwitchedOrder (FUNCTOR &functor) const
 
void forAllValuesInAnyOrder (FUNCTOR &functor) const
 call a functor for each value of the function (in un-specified order) More...
 
void forAtLeastAllUniqueValues (FUNCTOR &functor) const
 call a functor for at least all unique values of the function More...
 
void forAllValuesInOrderWithCoordinate (COORDINATE_FUNCTOR &functor) const
 
void forAllValuesInAnyOrderWithCoordinate (COORDINATE_FUNCTOR &functor) const
 
void forAtLeastAllUniqueValuesWithCoordinate (COORDINATE_FUNCTOR &functor) const
 
bool operator== (const SparseFunction< T, I, L, CONTAINER > &) const
 
FunctionShapeIteratorType functionShapeBegin () const
 
FunctionShapeIteratorType functionShapeEnd () const
 
size_t numberOfParameters () const
 
parameterIndex (const size_t paramNumber) const
 

Detailed Description

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
class opengm::SparseFunction< T, I, L, CONTAINER >

Definition at line 14 of file datastructures/sparsemarray/sparsemarray.hxx.

Member Typedef Documentation

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
typedef ContainerType::const_iterator opengm::SparseFunction< T, I, L, CONTAINER >::ConstContainerIteratorType

Definition at line 25 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
typedef ContainerType::iterator opengm::SparseFunction< T, I, L, CONTAINER >::ContainerIteratorType

Definition at line 26 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
typedef CONTAINER opengm::SparseFunction< T, I, L, CONTAINER >::ContainerType

Definition at line 16 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
typedef I opengm::SparseFunction< T, I, L, CONTAINER >::IndexType

Definition at line 21 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
typedef ContainerType::key_type opengm::SparseFunction< T, I, L, CONTAINER >::KeyType

Definition at line 17 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
typedef std::pair<KeyType,MappedType> opengm::SparseFunction< T, I, L, CONTAINER >::KeyValPairType

Definition at line 19 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
typedef L opengm::SparseFunction< T, I, L, CONTAINER >::LabelType

Definition at line 22 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
typedef ContainerType::mapped_type opengm::SparseFunction< T, I, L, CONTAINER >::MappedType

Definition at line 18 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
typedef T opengm::SparseFunction< T, I, L, CONTAINER >::ValueType

Definition at line 20 of file datastructures/sparsemarray/sparsemarray.hxx.

Constructor & Destructor Documentation

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
opengm::SparseFunction< T, I, L, CONTAINER >::SparseFunction ( )
inline

Definition at line 29 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
template<class SHAPE_ITERATOR >
opengm::SparseFunction< T, I, L, CONTAINER >::SparseFunction ( SHAPE_ITERATOR  shapeBegin,
SHAPE_ITERATOR  shapeEnd,
const ValueType  defaultValue 
)
inline

Definition at line 40 of file datastructures/sparsemarray/sparsemarray.hxx.

Member Function Documentation

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
const ContainerType& opengm::SparseFunction< T, I, L, CONTAINER >::container ( ) const
inline

Definition at line 64 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
ContainerType& opengm::SparseFunction< T, I, L, CONTAINER >::container ( )
inline

Definition at line 67 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
template<class COORDINATE_ITERATOR >
KeyType opengm::SparseFunction< T, I, L, CONTAINER >::coordinateToKey ( COORDINATE_ITERATOR  coordinate) const
inline

Definition at line 98 of file datastructures/sparsemarray/sparsemarray.hxx.

+ Here is the caller graph for this function:

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
template<class COORDINATE_ITERATOR , size_t DIM>
KeyType opengm::SparseFunction< T, I, L, CONTAINER >::coordinateToKeyWithDim ( COORDINATE_ITERATOR  coordinate) const
inline
template<class T, class I, class L, class CONTAINER = std::map<I,T>>
ValueType opengm::SparseFunction< T, I, L, CONTAINER >::defaultValue ( ) const
inline
template<class T, class I, class L, class CONTAINER = std::map<I,T>>
const size_t opengm::SparseFunction< T, I, L, CONTAINER >::dimension ( ) const
inline

Definition at line 70 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
template<class COORDINATE_ITERATOR >
void opengm::SparseFunction< T, I, L, CONTAINER >::insert ( COORDINATE_ITERATOR  coordinate,
const ValueType  value 
)
inline

Definition at line 175 of file datastructures/sparsemarray/sparsemarray.hxx.

+ Here is the call graph for this function:

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
template<class COORDINATE_ITERATOR >
void opengm::SparseFunction< T, I, L, CONTAINER >::keyToCoordinate ( const KeyType  key,
COORDINATE_ITERATOR  coordinate 
) const
inline

Definition at line 80 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
template<class COORDINATE_ITERATOR >
ValueType opengm::SparseFunction< T, I, L, CONTAINER >::operator() ( COORDINATE_ITERATOR  coordinate) const
inline

Definition at line 117 of file datastructures/sparsemarray/sparsemarray.hxx.

+ Here is the call graph for this function:

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
const LabelType opengm::SparseFunction< T, I, L, CONTAINER >::shape ( const IndexType  i) const
inline

Definition at line 73 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
size_t opengm::SparseFunction< T, I, L, CONTAINER >::size ( ) const
inline

Definition at line 56 of file datastructures/sparsemarray/sparsemarray.hxx.

template<class T, class I, class L, class CONTAINER = std::map<I,T>>
ValueType opengm::SparseFunction< T, I, L, CONTAINER >::valueFromKey ( const KeyType  key) const
inline

Definition at line 164 of file datastructures/sparsemarray/sparsemarray.hxx.

+ Here is the caller graph for this function: