1 #ifndef OPENGM_LIBDAI_FRACTIONAL_BP_HXX
2 #define OPENGM_LIBDAI_FRACTIONAL_BP_HXX
12 template<
class GM,
class ACC>
15 typedef ACC AccumulationType;
16 typedef GM GraphicalModelType;
28 std::string name()
const {
29 return "libDAI-Fractional-Bp";
34 const size_t maxIterations=100,
35 const double damping=0.0,
36 const double tolerance=0.000001,
37 UpdateRule updateRule= PARALL,
38 const size_t verbose=0
39 ) :maxIterations_(maxIterations),
41 tolerance_(tolerance),
42 updateRule_(updateRule),
47 std::string toString()
const{
50 if(updateRule_==PARALL)ur=
"PARALL";
51 else if(updateRule_==SEQFIX)ur =
"SEQFIX";
52 else if(updateRule_==SEQMAX)ur =
"SEQMAX";
53 else if(updateRule_==SEQRND)ur =
"SEQRND";
56 <<
"damping="<<damping_<<
","
57 <<
"maxiter="<<maxIterations_<<
","
58 <<
"tol="<<tolerance_<<
","
59 <<
"logdomain="<<logDomain_<<
","
60 <<
"inference="<< std::string(::opengm::meta::Compare<ACC,::opengm::Integrator>::value==
true ? std::string(
"SUMPROD") : std::string(
"MAXPROD") ) <<
","
61 <<
"verbose="<<verbose_<<
"]";
65 size_t maxIterations_;
68 UpdateRule updateRule_;
72 FractionalBp(
const GM & gm,
const Parameter param=Parameter())
77 virtual const GraphicalModelType& graphicalModel()
const{
78 return this->graphicalModel_impl();
82 return this->reset_impl();
86 return this->infer_impl();
89 template<
class VISITOR>
98 return this->arg_impl(v,argnr);
101 return this->marginal_impl(v,m);
104 return this->factorMarginal_impl(f,m);
115 #endif // OPENGM_LIBDAI_FRACTIONAL_BP_HXX
Inference algorithm interface.
#define OPENGM_GM_TYPE_TYPEDEFS