graphicalmodel_factor.hxx File Reference

#include <vector>
#include <set>
#include <algorithm>
#include <functional>
#include <numeric>
#include <map>
#include <list>
#include "opengm/datastructures/marray/marray.hxx"
#include "opengm/functions/explicit_function.hxx"
#include "opengm/datastructures/sparsemarray/sparsemarray.hxx"
#include "opengm/opengm.hxx"
#include "opengm/utilities/indexing.hxx"
#include "opengm/utilities/sorting.hxx"
#include "opengm/utilities/functors.hxx"
#include "opengm/utilities/metaprogramming.hxx"
#include "opengm/operations/minimizer.hxx"
#include "opengm/graphicalmodel/graphicalmodel_factor_operator.hxx"
#include "opengm/graphicalmodel/graphicalmodel_factor_accumulator.hxx"
Include dependency graph for graphicalmodel_factor.hxx:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  opengm::Factor< GRAPHICAL_MODEL >
 Abstraction (wrapper class) of factors, independent of the function used to implement the factor. More...
class  opengm::IndependentFactor< T, I, L >
 Factor (with corresponding function and variable indices), independent of a GraphicalModel. More...

Namespaces

namespace  opengm
 

The OpenGM namespace.


Defines

#define OPENGM_INDEPENDENT_FACTOR_OPERATION_GENERATION(BINARY_OPERATOR_SYMBOL, BINARY_INPLACE_OPERATOR_SYMBOL, BINARY_FUNCTOR_NAME)

Functions

template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator|= (IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > & 
opengm::operator|= (IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator|= (IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator|| (const IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator|| (const T &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator|| (const IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator|| (const Factor< GRAPHICAL_MODEL > &op1, const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator|| (const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator|| (const Factor< GRAPHICAL_MODEL > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator|| (const Factor< GRAPHICAL_MODEL > &op1, const typename GRAPHICAL_MODEL::ValueType &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator|| (const typename GRAPHICAL_MODEL::ValueType &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator&= (IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > & 
opengm::operator&= (IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator&= (IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator&& (const IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator&& (const T &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator&& (const IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator&& (const Factor< GRAPHICAL_MODEL > &op1, const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator&& (const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator&& (const Factor< GRAPHICAL_MODEL > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator&& (const Factor< GRAPHICAL_MODEL > &op1, const typename GRAPHICAL_MODEL::ValueType &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator&& (const typename GRAPHICAL_MODEL::ValueType &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator+= (IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > & 
opengm::operator+= (IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator+= (IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator+ (const IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator+ (const T &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator+ (const IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator+ (const Factor< GRAPHICAL_MODEL > &op1, const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator+ (const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator+ (const Factor< GRAPHICAL_MODEL > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator+ (const Factor< GRAPHICAL_MODEL > &op1, const typename GRAPHICAL_MODEL::ValueType &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator+ (const typename GRAPHICAL_MODEL::ValueType &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator-= (IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > & 
opengm::operator-= (IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator-= (IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator- (const IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator- (const T &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator- (const IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator- (const Factor< GRAPHICAL_MODEL > &op1, const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator- (const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator- (const Factor< GRAPHICAL_MODEL > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator- (const Factor< GRAPHICAL_MODEL > &op1, const typename GRAPHICAL_MODEL::ValueType &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator- (const typename GRAPHICAL_MODEL::ValueType &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator*= (IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > & 
opengm::operator*= (IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator*= (IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator* (const IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator* (const T &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator* (const IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator* (const Factor< GRAPHICAL_MODEL > &op1, const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator* (const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator* (const Factor< GRAPHICAL_MODEL > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator* (const Factor< GRAPHICAL_MODEL > &op1, const typename GRAPHICAL_MODEL::ValueType &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator* (const typename GRAPHICAL_MODEL::ValueType &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator/= (IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > & 
opengm::operator/= (IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > & opengm::operator/= (IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator/ (const IndependentFactor< T, I, L > &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator/ (const T &op1, const IndependentFactor< T, I, L > &op2)
template<class T , class I , class L >
IndependentFactor< T, I, L > opengm::operator/ (const IndependentFactor< T, I, L > &op1, const T &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator/ (const Factor< GRAPHICAL_MODEL > &op1, const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator/ (const IndependentFactor< typename GRAPHICAL_MODEL::ValueType, typename GRAPHICAL_MODEL::IndexType, typename GRAPHICAL_MODEL::LabelType > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator/ (const Factor< GRAPHICAL_MODEL > &op1, const Factor< GRAPHICAL_MODEL > &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator/ (const Factor< GRAPHICAL_MODEL > &op1, const typename GRAPHICAL_MODEL::ValueType &op2)
template<class GRAPHICAL_MODEL >
IndependentFactor< typename
GRAPHICAL_MODEL::ValueType,
typename
GRAPHICAL_MODEL::IndexType,
typename
GRAPHICAL_MODEL::LabelType > 
opengm::operator/ (const typename GRAPHICAL_MODEL::ValueType &op1, const Factor< GRAPHICAL_MODEL > &op2)

Define Documentation

#define OPENGM_INDEPENDENT_FACTOR_OPERATION_GENERATION ( BINARY_OPERATOR_SYMBOL,
BINARY_INPLACE_OPERATOR_SYMBOL,
BINARY_FUNCTOR_NAME   ) 

Definition at line 1574 of file graphicalmodel_factor.hxx.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Mon Jun 17 16:31:07 2013 for OpenGM by  doxygen 1.6.3