1 #ifndef OPENGM_LIBDAI_LOOP_CORRECTED_BP_HXX
2 #define OPENGM_LIBDAI_LOOP_CORRECTED_BP_HXX
16 template<
class GM,
class ACC,
class CAVITY_INFERENCE>
38 return "libDAI-Loop-Corrected-Bp";
48 const size_t maxiter=10000,
50 const double tolerance=1e-9,
51 const size_t verbose=0
61 std::string ur,cav,cavAiName,cavAiOpts;
72 if(opengm::meta::Compare<CAVITY_INFERENCE,opengm::external::libdai::None>::value) {
76 while(CAVITY_INFERENCE[counter]!=
']') {
77 cavAiName.push_back(cavAiAsString[counter]);
80 cavAiOpts.reserve(cavAiAsString.size()-cavAiName.size());
81 for(;counter<cavAiAsString.size();++counter) {
82 cavAiOpts.push_back(cavAiAsString[counter]);
91 <<
"cavainame="<<cavAiName<<
","
92 <<
"cavaiopts="<<cavAiOpts<<
","
111 return this->graphicalModel_impl();
115 return this->reset_impl();
119 return this->infer_impl();
122 template<
class VISITOR>
124 visitor.begin(*
this);
131 return this->arg_impl(v,argnr);
134 return this->marginal_impl(v,m);
137 return this->factorMarginal_impl(f,m);
146 #endif // OPENGM_LIBDAI_LOOP_CORRECTED_BP_HXX
opengm::visitors::EmptyVisitor< LoopCorrectedBp< GM, ACC, CAVITY_INFERENCE > > EmptyVisitorType
CAVITY_INFERENCE::Parameter CavityInferenceParameter
CavityInferenceParameter cavityInferenceParam_
std::string toString() const
virtual InferenceTermination marginal(const size_t v, IndependentFactorType &m) const
output a solution for a marginal for a specific variable
InferenceTermination infer(VISITOR &visitor)
virtual InferenceTermination factorMarginal(const size_t f, IndependentFactorType &m) const
output a solution for a marginal for all variables connected to a factor
virtual const GraphicalModelType & graphicalModel() const
Inference algorithm interface.
LoopCorrectedBp(const GM &gm, const Parameter param=Parameter())
opengm::visitors::VerboseVisitor< LoopCorrectedBp< GM, ACC, CAVITY_INFERENCE > > VerboseVisitorType
Parameter(const Cavity cavity, const size_t reinit, const UpdateRule updateRule, const size_t maxiter=10000, const CavityInferenceParameter &cavityInferenceParam=CavityInferenceParameter(), const double tolerance=1e-9, const size_t verbose=0)
virtual InferenceTermination arg(std::vector< LabelType > &v, const size_t argnr=1) const
output a solution
virtual InferenceTermination infer()
opengm::visitors::TimingVisitor< LoopCorrectedBp< GM, ACC, CAVITY_INFERENCE > > TimingVisitorType
GraphicalModelType::IndependentFactorType IndependentFactorType