21 #ifndef Minisat_Solver_h
22 #define Minisat_Solver_h
288 static inline double drand(
double& seed) {
290 int q = (int)(seed / 2147483647);
291 seed -= (double)q * 2147483647;
292 return seed / 2147483647; }
295 static inline int irand(
double& seed,
int size) {
296 return (
int)(
drand(seed) * size); }
312 if ( (
activity[v] += inc) > 1e100 ) {
314 for (
int i = 0; i <
nVars(); i++)
ClauseIterator clausesEnd() const
ShrinkStackElem(uint32_t _i, Lit _l)
RegionAllocator< uint32_t >::Ref CRef
void setConfBudget(int64_t x)
bool locked(const Clause &c) const
const lbool l_False((uint8_t) 1)
int learntsize_adjust_cnt
void relocAll(ClauseAllocator &to)
bool operator()(const Watcher &w) const
TrailIterator trailBegin() const
void setPropBudget(int64_t x)
lbool modelValue(Var x) const
double learntsize_adjust_inc
bool withinBudget() const
void setPolarity(Var v, lbool b)
void claBumpActivity(Clause &c)
VarOrderLt(const IntMap< Var, double > &act)
bool addClause(const vec< Lit > &ps)
int learntsize_adjust_start_confl
bool operator!=(const Watcher &w) const
bool implies(const vec< Lit > &assumps, vec< Lit > &out)
const lbool l_Undef((uint8_t) 2)
void attachClause(CRef cr)
lbool search(int nof_conflicts)
void copyTo(vec< T > ©) const
void setDecisionVar(Var v, bool b)
void cancelUntil(int level)
void insertVarOrder(Var x)
const IntMap< Var, double > & activity
void detachClause(CRef cr, bool strict=false)
void removeSatisfied(vec< CRef > &cs)
lbool solveLimited(const vec< Lit > &assumps)
uint64_t learnts_literals
int decisionLevel() const
bool addClause_(vec< Lit > &ps)
uint64_t clauses_literals
const ClauseAllocator & ca
Heap< Var, VarOrderLt > order_heap
int64_t propagation_budget
void analyzeFinal(Lit p, LSet &out_conflict)
bool operator()(Var x, Var y) const
void removeClause(CRef cr)
vec< Lit > analyze_toclear
void toDimacs(FILE *f, const vec< Lit > &assumps)
static double drand(double &seed)
Var newVar(lbool upol=l_Undef, bool dvar=true)
const lbool l_True((uint8_t) 0)
vec< ShrinkStackElem > analyze_stack
void clear(bool dealloc=false)
virtual void garbageCollect()
ClauseIterator clausesBegin() const
static int irand(double &seed, int size)
bool enqueue(Lit p, CRef from=CRef_Undef)
void uncheckedEnqueue(Lit p, CRef from=CRef_Undef)
bool operator==(const Watcher &w) const
uint32_t abstractLevel(Var x) const
void analyze(CRef confl, vec< Lit > &out_learnt, int &out_btlevel)
bool isRemoved(CRef cr) const
bool satisfied(const Clause &c) const
double progressEstimate() const
WatcherDeleted(const ClauseAllocator &_ca)
void varBumpActivity(Var v, double inc)
OccLists< Lit, vec< Watcher >, WatcherDeleted, MkIndexLit > watches
static VarData mkVarData(CRef cr, int l)
TrailIterator trailEnd() const
double learntsize_adjust_confl