#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 LiftedSolverType { LVE, // generalized counting first-order variable elimination (GC-FOVE) LBP, // lifted first-order belief propagation LKC // lifted first-order knowledge compilation }; enum GroundSolverType { VE, // variable elimination BP, // belief propagation CBP // counting belief propagation }; namespace Globals { extern bool logDomain; // level of debug information extern unsigned verbosity; extern LiftedSolverType liftedSolver; extern GroundSolverType 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