This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/packages/CLPBN/horus/Horus.h
Tiago Gomes ef4ebb4d7f Use camel case for constants and enumerators.
All capitals case should be reserved for macros and besides there is no big need to emphasize constness in general.
2013-02-13 18:54:15 +00:00

80 lines
1.7 KiB
C++

#ifndef YAP_PACKAGES_CLPBN_HORUS_HORUS_H_
#define YAP_PACKAGES_CLPBN_HORUS_HORUS_H_
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&)
#define DISALLOW_COPY(TypeName) \
TypeName(const TypeName&)
#define DISALLOW_ASSIGN(TypeName) \
void operator=(const TypeName&)
#include <vector>
#include <string>
namespace Horus {
class Var;
class Factor;
class VarNode;
class FacNode;
typedef std::vector<double> Params;
typedef unsigned VarId;
typedef std::vector<VarId> VarIds;
typedef std::vector<Var*> Vars;
typedef std::vector<VarNode*> VarNodes;
typedef std::vector<FacNode*> FacNodes;
typedef std::vector<Factor*> Factors;
typedef std::vector<std::string> States;
typedef std::vector<unsigned> Ranges;
typedef unsigned long long ullong;
enum LiftedSolverType {
lveSolver, // generalized counting first-order variable elimination (GC-FOveSolver)
lbpSolver, // lifted first-order belief propagation
lkcSolver // lifted first-order knowledge compilation
};
enum GroundSolverType {
veSolver, // variable elimination
bpSolver, // belief propagation
CbpSolver // 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 showBpCalcs = false;
const int unobserved = -1;
// number of digits to show when printing a parameter
const unsigned precision = 6;
}
} // namespace Horus
#endif // YAP_PACKAGES_CLPBN_HORUS_HORUS_H_