#ifndef ldsb_h #define ldsb_h #include #include using namespace std; class Clause; class IntVar; class Lit; class lbool; class Symmetry; class LDSB { public: vec symmetries; vec > > lookupTable; // lookup by var_id, which symmetries it is in and what pos in that symmetry vec sym_learnts; // List of symmetric learnt clauses vec sl_origin; // Source of new learnt clause duration ldsb_time; void init(); void processDec(Lit p); bool processImpl(Clause *c); void addLearntClause(Clause& c, int sym_id); }; void var_sym_ldsb(vec& x); void val_sym_ldsb(vec& x, int l, int u); void var_seq_sym_ldsb(int n, int m, vec& x); void val_seq_sym_ldsb(int n, int m, vec& x, vec& a); extern LDSB ldsb; #endif