1 #ifndef vars_h
2 #define vars_h
3 
4 #include <chuffed/branching/branching.h>
5 
6 enum EVENT_TYPE {
7 	EVENT_C = 1,		// Any change in the domain of the variable
8 	EVENT_L = 2,		// Lower bound change of the variable
9 	EVENT_U = 4,		// Upper bound change of the variable
10 	EVENT_F = 8,		// When the variable is fixed
11 	EVENT_LU = 6,		// Lower and upper bound change of the variable
12 	EVENT_LF = 10,		// Lower bound change and fixation of the variable
13 	EVENT_UF = 12		// Upper bound change and fixation of the variable
14 };
15 
16 enum VarType {
17 	BOOL_VAR,		// Boolean variable
18 	INT_VAR,		// Integer variable
19 	INT_VAR_EL,		// Integer variable with eager literals
20 	INT_VAR_LL,		// Integer variable with lazy literals
21 	INT_VAR_SL
22 };
23 
24 enum PreferredVal {
25 	PV_MIN,
26 	PV_MAX,
27 	PV_SPLIT_MIN,
28 	PV_SPLIT_MAX,
29 	PV_MEDIAN
30 };
31 
32 class Var : public Branching {
33 public:
34 	virtual VarType getType() = 0;
35 	virtual void setPreferredVal(PreferredVal vb) = 0;
~Var(void)36   virtual ~Var(void) {}
37 };
38 
39 #endif
40 
41