#ifndef HORUS_HORUS_H #define HORUS_HORUS_H #include #include #define DISALLOW_COPY_AND_ASSIGN(TypeName) \ TypeName(const TypeName&); \ void operator=(const TypeName&) using namespace std; class Var; class Factor; class VarNode; class FacNode; typedef vector Params; typedef unsigned VarId; typedef vector VarIds; typedef vector Vars; typedef vector VarNodes; typedef vector FacNodes; typedef vector Factors; typedef vector States; typedef vector Ranges; typedef unsigned long long ullong; enum LiftedSolver { FOVE, // first order variable elimination LBP, // lifted belief propagation }; enum GroundSolver { VE, // variable elimination BP, // belief propagation CBP // counting belief propagation }; namespace Globals { extern bool logDomain; // level of debug information extern unsigned verbosity; extern LiftedSolver liftedSolver; extern GroundSolver groundSolver; }; namespace Constants { // show message calculation for belief propagation const bool SHOW_BP_CALCS = false; const int NO_EVIDENCE = -1; // number of digits to show when printing a parameter const unsigned PRECISION = 6; }; namespace BpOptions { enum Schedule { SEQ_FIXED, SEQ_RANDOM, PARALLEL, MAX_RESIDUAL }; extern Schedule schedule; extern double accuracy; extern unsigned maxIter; } #endif // HORUS_HORUS_H