1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
Jip J. Dekker 35a3110598 Squashed 'software/chuffed/' content from commit 2ed0c015
git-subtree-dir: software/chuffed
git-subtree-split: 2ed0c01558d2a5c49c1ce57e048d32c17adf92d3
2021-06-18 09:36:35 +10:00

40 lines
869 B
C++

#ifndef ldsb_h
#define ldsb_h
#include <utility>
#include <chuffed/support/misc.h>
using namespace std;
class Clause;
class IntVar;
class Lit;
class lbool;
class Symmetry;
class LDSB {
public:
vec<Symmetry*> symmetries;
vec<vec<pair<int,int> > > lookupTable; // lookup by var_id, which symmetries it is in and what pos in that symmetry
vec<Clause*> sym_learnts; // List of symmetric learnt clauses
vec<int> 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<IntVar*>& x);
void val_sym_ldsb(vec<IntVar*>& x, int l, int u);
void var_seq_sym_ldsb(int n, int m, vec<IntVar*>& x);
void val_seq_sym_ldsb(int n, int m, vec<IntVar*>& x, vec<int>& a);
extern LDSB ldsb;
#endif