OpenGM  2.3.x
Discrete Graphical Model Library
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
opengm::PermutableLabelFusionMove< GM, ACC > Class Template Reference

#include <permutable_label_fusion_mover.hxx>

+ Collaboration diagram for opengm::PermutableLabelFusionMove< GM, ACC >:

Classes

struct  Parameter
 

Public Types

enum  FusionSolver {
  DefaultSolver, MulticutSolver, MulticutNativeSolver, CgcSolver,
  HierachicalClusteringSolver, BaseSolver, ClassicFusion
}
 
typedef GM GraphicalModelType
 
typedef ACC AccumulationType
 
typedef std::map< UInt64Type, ValueType > MapType
 
typedef MapType::iterator MapIter
 
typedef MapType::const_iterator MapCIter
 
typedef PermutableLabelFusionMove< GM, ACC > SelfType
 
typedef SimpleDiscreteSpace< IndexType, LabelTypeSubSpace
 
typedef PottsFunction< ValueType, IndexType, LabelTypePFunction
 
typedef ExplicitFunction< ValueType, IndexType, LabelTypeEFunction
 
typedef GraphicalModel< ValueType, Adder, OPENGM_TYPELIST_2(EFunction, PFunction), SubSpaceSubModel
 

Public Member Functions

 PermutableLabelFusionMove (const GraphicalModelType &gm, const Parameter &param=Parameter())
 
void printArg (const std::vector< LabelType > arg)
 
size_t intersect (const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res)
 
bool fuse (const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res, const ValueType valA, const ValueType valB, ValueType &valRes)
 
bool fuseClassic (const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res, const ValueType valA, const ValueType valB, ValueType &valRes)
 
bool fuseMmwc (const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res, const ValueType valA, const ValueType valB, ValueType &valRes)
 
bool doMoveMmcw (const MapType &accWeights, const marray::Marray< ValueType > &accUnaries, const std::vector< LabelType > &ab, const IndexType numNewVar, const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res, const ValueType valA, const ValueType valB, ValueType &valRes)
 
bool doMoveCgc (const MapType &accWeights, const std::vector< LabelType > &ab, const IndexType numNewVar, const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res, const ValueType valA, const ValueType valB, ValueType &valRes)
 
bool doMoveBase (const MapType &accWeights, const std::vector< LabelType > &ab, const IndexType numNewVar, const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res, const ValueType valA, const ValueType valB, ValueType &valRes)
 
bool doMoveMulticut (const MapType &accWeights, const std::vector< LabelType > &ab, const IndexType numNewVar, const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res, const ValueType valA, const ValueType valB, ValueType &valRes)
 
bool doMoveMulticutNative (const MapType &accWeights, const std::vector< LabelType > &ab, const IndexType numNewVar, const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res, const ValueType valA, const ValueType valB, ValueType &valRes)
 
bool doMoveHierachicalClustering (const MapType &accWeights, const std::vector< LabelType > &ab, const IndexType numNewVar, const std::vector< LabelType > &a, const std::vector< LabelType > &b, std::vector< LabelType > &res, const ValueType valA, const ValueType valB, ValueType &valRes)
 

Public Attributes

 OPENGM_GM_TYPE_TYPEDEFS
 

Detailed Description

template<class GM, class ACC>
class opengm::PermutableLabelFusionMove< GM, ACC >

Definition at line 155 of file permutable_label_fusion_mover.hxx.

Member Typedef Documentation

template<class GM , class ACC >
typedef ACC opengm::PermutableLabelFusionMove< GM, ACC >::AccumulationType

Definition at line 160 of file permutable_label_fusion_mover.hxx.

template<class GM , class ACC >
typedef ExplicitFunction<ValueType, IndexType, LabelType> opengm::PermutableLabelFusionMove< GM, ACC >::EFunction

Definition at line 209 of file permutable_label_fusion_mover.hxx.

template<class GM , class ACC >
typedef GM opengm::PermutableLabelFusionMove< GM, ACC >::GraphicalModelType

Definition at line 159 of file permutable_label_fusion_mover.hxx.

template<class GM , class ACC >
typedef MapType::const_iterator opengm::PermutableLabelFusionMove< GM, ACC >::MapCIter

Definition at line 164 of file permutable_label_fusion_mover.hxx.

template<class GM , class ACC >
typedef MapType::iterator opengm::PermutableLabelFusionMove< GM, ACC >::MapIter

Definition at line 163 of file permutable_label_fusion_mover.hxx.

template<class GM , class ACC >
typedef std::map<UInt64Type, ValueType> opengm::PermutableLabelFusionMove< GM, ACC >::MapType

Definition at line 162 of file permutable_label_fusion_mover.hxx.

template<class GM , class ACC >
typedef PottsFunction<ValueType, IndexType, LabelType> opengm::PermutableLabelFusionMove< GM, ACC >::PFunction

Definition at line 208 of file permutable_label_fusion_mover.hxx.

template<class GM , class ACC >
typedef PermutableLabelFusionMove<GM, ACC> opengm::PermutableLabelFusionMove< GM, ACC >::SelfType

Definition at line 167 of file permutable_label_fusion_mover.hxx.

template<class GM , class ACC >
typedef GraphicalModel<ValueType, Adder, OPENGM_TYPELIST_2(EFunction,PFunction) , SubSpace> opengm::PermutableLabelFusionMove< GM, ACC >::SubModel

Definition at line 210 of file permutable_label_fusion_mover.hxx.

template<class GM , class ACC >
typedef SimpleDiscreteSpace<IndexType, LabelType> opengm::PermutableLabelFusionMove< GM, ACC >::SubSpace

Definition at line 207 of file permutable_label_fusion_mover.hxx.

Member Enumeration Documentation

template<class GM , class ACC >
enum opengm::PermutableLabelFusionMove::FusionSolver
Enumerator
DefaultSolver 
MulticutSolver 
MulticutNativeSolver 
CgcSolver 
HierachicalClusteringSolver 
BaseSolver 
ClassicFusion 

Definition at line 169 of file permutable_label_fusion_mover.hxx.

Constructor & Destructor Documentation

template<class GM , class ACC >
opengm::PermutableLabelFusionMove< GM, ACC >::PermutableLabelFusionMove ( const GraphicalModelType gm,
const Parameter param = Parameter() 
)
inline

Definition at line 213 of file permutable_label_fusion_mover.hxx.

Member Function Documentation

template<class GM , class ACC >
bool opengm::PermutableLabelFusionMove< GM, ACC >::doMoveBase ( const MapType accWeights,
const std::vector< LabelType > &  ab,
const IndexType  numNewVar,
const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res,
const ValueType  valA,
const ValueType  valB,
ValueType &  valRes 
)
inline

Definition at line 741 of file permutable_label_fusion_mover.hxx.

+ Here is the caller graph for this function:

template<class GM , class ACC >
bool opengm::PermutableLabelFusionMove< GM, ACC >::doMoveCgc ( const MapType accWeights,
const std::vector< LabelType > &  ab,
const IndexType  numNewVar,
const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res,
const ValueType  valA,
const ValueType  valB,
ValueType &  valRes 
)
inline

Definition at line 671 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class GM , class ACC >
bool opengm::PermutableLabelFusionMove< GM, ACC >::doMoveHierachicalClustering ( const MapType accWeights,
const std::vector< LabelType > &  ab,
const IndexType  numNewVar,
const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res,
const ValueType  valA,
const ValueType  valB,
ValueType &  valRes 
)
inline

Definition at line 910 of file permutable_label_fusion_mover.hxx.

+ Here is the caller graph for this function:

template<class GM , class ACC >
bool opengm::PermutableLabelFusionMove< GM, ACC >::doMoveMmcw ( const MapType accWeights,
const marray::Marray< ValueType > &  accUnaries,
const std::vector< LabelType > &  ab,
const IndexType  numNewVar,
const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res,
const ValueType  valA,
const ValueType  valB,
ValueType &  valRes 
)
inline

Definition at line 576 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class GM , class ACC >
bool opengm::PermutableLabelFusionMove< GM, ACC >::doMoveMulticut ( const MapType accWeights,
const std::vector< LabelType > &  ab,
const IndexType  numNewVar,
const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res,
const ValueType  valA,
const ValueType  valB,
ValueType &  valRes 
)
inline

Definition at line 760 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class GM , class ACC >
bool opengm::PermutableLabelFusionMove< GM, ACC >::doMoveMulticutNative ( const MapType accWeights,
const std::vector< LabelType > &  ab,
const IndexType  numNewVar,
const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res,
const ValueType  valA,
const ValueType  valB,
ValueType &  valRes 
)
inline

Definition at line 855 of file permutable_label_fusion_mover.hxx.

+ Here is the caller graph for this function:

template<class GM , class ACC >
bool opengm::PermutableLabelFusionMove< GM, ACC >::fuse ( const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res,
const ValueType  valA,
const ValueType  valB,
ValueType &  valRes 
)
inline

Definition at line 309 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

template<class GM , class ACC >
bool opengm::PermutableLabelFusionMove< GM, ACC >::fuseClassic ( const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res,
const ValueType  valA,
const ValueType  valB,
ValueType &  valRes 
)
inline

Definition at line 423 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class GM , class ACC >
bool opengm::PermutableLabelFusionMove< GM, ACC >::fuseMmwc ( const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res,
const ValueType  valA,
const ValueType  valB,
ValueType &  valRes 
)
inline

Definition at line 480 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

template<class GM , class ACC >
size_t opengm::PermutableLabelFusionMove< GM, ACC >::intersect ( const std::vector< LabelType > &  a,
const std::vector< LabelType > &  b,
std::vector< LabelType > &  res 
)
inline

Definition at line 269 of file permutable_label_fusion_mover.hxx.

+ Here is the caller graph for this function:

template<class GM , class ACC >
void opengm::PermutableLabelFusionMove< GM, ACC >::printArg ( const std::vector< LabelType arg)
inline

Definition at line 251 of file permutable_label_fusion_mover.hxx.

Member Data Documentation

template<class GM , class ACC >
opengm::PermutableLabelFusionMove< GM, ACC >::OPENGM_GM_TYPE_TYPEDEFS

Definition at line 161 of file permutable_label_fusion_mover.hxx.