14 #ifndef ___defined_libdai_bbp_h
15 #define ___defined_libdai_bbp_h
34 DAI_ENUM(BBPCostFunctionBase,CFN_GIBBS_B,CFN_GIBBS_B2,CFN_GIBBS_EXP,CFN_GIBBS_B_FACTOR,CFN_GIBBS_B2_FACTOR,CFN_GIBBS_EXP_FACTOR,CFN_VAR_ENT,CFN_FACTOR_ENT,CFN_BETHE_ENT);
82 std::vector<std::vector<Prob> >
_adj_n;
84 std::vector<std::vector<Prob> >
_adj_m;
112 std::vector<std::vector<Prob > >
_Tmsg;
114 std::vector<std::vector<Prob > >
_Umsg;
116 std::vector<std::vector<std::vector<Prob > > >
_Smsg;
118 std::vector<std::vector<std::vector<Prob > > >
_Rmsg;
173 const Prob &
T(
size_t i,
size_t _I)
const {
return _Tmsg[i][_I]; }
177 const Prob &
U(
size_t I,
size_t _i)
const {
return _Umsg[I][_i]; }
179 Prob &
S(
size_t i,
size_t _I,
size_t _j) {
return _Smsg[i][_I][_j]; }
181 const Prob &
S(
size_t i,
size_t _I,
size_t _j)
const {
return _Smsg[i][_I][_j]; }
183 Prob &
R(
size_t I,
size_t _i,
size_t _J) {
return _Rmsg[I][_i][_J]; }
185 const Prob &
R(
size_t I,
size_t _i,
size_t _J)
const {
return _Rmsg[I][_i][_J]; }
203 void calcNewN(
size_t i,
size_t _I );
208 void calcNewM(
size_t i,
size_t _I );
214 void upMsgN(
size_t i,
size_t _I );
216 void upMsgM(
size_t i,
size_t _I );
379 DAI_ENUM(UpdateType,SEQ_FIX,SEQ_MAX,SEQ_BP_REV,SEQ_BP_FWD,PAR);