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 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 158 of file permutable_label_fusion_mover.hxx.

Member Typedef Documentation

§ AccumulationType

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

Definition at line 163 of file permutable_label_fusion_mover.hxx.

§ EFunction

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

Definition at line 212 of file permutable_label_fusion_mover.hxx.

§ GraphicalModelType

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

Definition at line 162 of file permutable_label_fusion_mover.hxx.

§ MapCIter

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

Definition at line 167 of file permutable_label_fusion_mover.hxx.

§ MapIter

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

Definition at line 166 of file permutable_label_fusion_mover.hxx.

§ MapType

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

Definition at line 165 of file permutable_label_fusion_mover.hxx.

§ PFunction

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

Definition at line 211 of file permutable_label_fusion_mover.hxx.

§ SelfType

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

Definition at line 170 of file permutable_label_fusion_mover.hxx.

§ SubModel

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

Definition at line 213 of file permutable_label_fusion_mover.hxx.

§ SubSpace

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

Definition at line 210 of file permutable_label_fusion_mover.hxx.

Member Enumeration Documentation

§ FusionSolver

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

Definition at line 172 of file permutable_label_fusion_mover.hxx.

Constructor & Destructor Documentation

§ PermutableLabelFusionMove()

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

Definition at line 216 of file permutable_label_fusion_mover.hxx.

Member Function Documentation

§ doMoveBase()

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 568 of file permutable_label_fusion_mover.hxx.

§ doMoveCgc()

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 495 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

§ doMoveHierachicalClustering()

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 746 of file permutable_label_fusion_mover.hxx.

§ doMoveMulticut()

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 587 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

§ doMoveMulticutNative()

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 687 of file permutable_label_fusion_mover.hxx.

§ fuse()

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 320 of file permutable_label_fusion_mover.hxx.

§ fuseClassic()

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 434 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

§ intersect()

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 280 of file permutable_label_fusion_mover.hxx.

+ Here is the call graph for this function:

§ printArg()

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

Definition at line 262 of file permutable_label_fusion_mover.hxx.

Member Data Documentation

§ OPENGM_GM_TYPE_TYPEDEFS

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

Definition at line 164 of file permutable_label_fusion_mover.hxx.