1 #ifndef OPENGM_LIBDAI_DEC_MAP_HXX
2 #define OPENGM_LIBDAI_DEC_MAP_HXX
16 template<
class SUB_INFERENCE>
18 public LibDaiInference<typename SUB_INFERENCE::GraphicalModelType,typename SUB_INFERENCE::AccumulationType,DecMap<SUB_INFERENCE> >,
19 public opengm::Inference<typename SUB_INFERENCE::GraphicalModelType,typename SUB_INFERENCE::AccumulationType>
32 return "libDAI-Dec-Map";
48 const size_t reinit=1,
49 const size_t verbose=0
55 std::string ur,cav,subAiName,subAiOpts;
57 if(opengm::meta::Compare<SUB_INFERENCE,opengm::external::libdai::None>::value) {
63 while(subAiAsString[counter]!=
'[') {
64 subAiName.push_back(subAiAsString[counter]);
67 subAiOpts.reserve(subAiAsString.size()-subAiName.size());
68 for(;counter<subAiAsString.size();++counter) {
69 subAiOpts.push_back(subAiAsString[counter]);
70 if(subAiAsString[counter]==
']'){
78 <<
"ianame="<<subAiName<<
","
79 <<
"iaopts="<<subAiOpts<<
","
95 return this->graphicalModel_impl();
99 return this->reset_impl();
103 return this->infer_impl();
106 template<
class VISITOR>
108 visitor.begin(*
this);
115 return this->arg_impl(v,argnr);
118 return this->marginal_impl(v,m);
121 return this->factorMarginal_impl(f,m);
130 #endif // OPENGM_LIBDAI_DEC_MAP_HXX
opengm::visitors::TimingVisitor< DecMap< SUB_INFERENCE > > TimingVisitorType
Parameter(const SubInferenceParameter &subInferenceParameter=SubInferenceParameter(), const size_t reinit=1, const size_t verbose=0)
virtual InferenceTermination infer()
DecMap(const GraphicalModelType &gm, const Parameter param=Parameter())
virtual InferenceTermination factorMarginal(const size_t f, IndependentFactorType &m) const
output a solution for a marginal for all variables connected to a factor
virtual InferenceTermination marginal(const size_t v, IndependentFactorType &m) const
output a solution for a marginal for a specific variable
std::string toString() const
SUB_INFERENCE::Parameter SubInferenceParameter
SubInferenceParameter subInferenceParam_
InferenceTermination infer(VISITOR &visitor)
Inference algorithm interface.
SUB_INFERENCE::GraphicalModelType GraphicalModelType
virtual const GraphicalModelType & graphicalModel() const
opengm::visitors::EmptyVisitor< DecMap< SUB_INFERENCE > > EmptyVisitorType
opengm::visitors::VerboseVisitor< DecMap< SUB_INFERENCE > > VerboseVisitorType
virtual InferenceTermination arg(std::vector< LabelType > &v, const size_t argnr=1) const
output a solution
GraphicalModelType::IndependentFactorType IndependentFactorType
SUB_INFERENCE::AccumulationType AccumulationType