21#ifndef Minisat_Solver_h
22#define Minisat_Solver_h
263 static inline double drand(
double& seed) {
265 int q = (int)(seed / 2147483647);
266 seed -= (double)q * 2147483647;
267 return seed / 2147483647; }
270 static inline int irand(
double& seed,
int size) {
271 return (
int)(
drand(seed) * size); }
287 if ( (
activity[v] += inc) > 1e100 ) {
289 for (
int i = 0; i <
nVars(); i++)
301 for (
int i = 0; i <
learnts.size(); i++)
307 if (
ca.wasted() >
ca.size() * gf)
#define ABC_NAMESPACE_CXX_HEADER_START
#define ABC_NAMESPACE_CXX_HEADER_END
ABC_NAMESPACE_IMPL_START typedef signed char value
bool addClause_(vec< Lit > &ps)
uint64_t clauses_literals
lbool search(int nof_conflicts)
void toDimacs(FILE *f, const vec< Lit > &assumps)
lbool solveLimited(const vec< Lit > &assumps)
void cancelUntil(int level)
bool litRedundant(Lit p, uint32_t abstract_levels)
void claBumpActivity(Clause &c)
lbool modelValue(Var x) const
virtual void garbageCollect()
double progressEstimate() const
void relocAll(ClauseAllocator &to)
int64_t propagation_budget
bool locked(const Clause &c) const
void removeClause(CRef cr)
void detachClause(CRef cr, bool strict=false)
void setPropBudget(int64_t x)
void analyze(CRef confl, vec< Lit > &out_learnt, int &out_btlevel)
void attachClause(CRef cr)
void removeSatisfied(vec< CRef > &cs)
static double drand(double &seed)
void analyzeFinal(Lit p, vec< Lit > &out_conflict)
void insertVarOrder(Var x)
bool addClause(const vec< Lit > &ps)
uint64_t learnts_literals
int learntsize_adjust_cnt
bool withinBudget() const
uint32_t abstractLevel(Var x) const
OccLists< Lit, vec< Watcher >, WatcherDeleted > watches
static int irand(double &seed, int size)
static VarData mkVarData(CRef cr, int l)
void varBumpActivity(Var v, double inc)
void setConfBudget(int64_t x)
vec< Lit > analyze_toclear
void setPolarity(Var v, bool b)
int decisionLevel() const
Var newVar(bool polarity=true, bool dvar=true)
void setDecisionVar(Var v, bool b)
double learntsize_adjust_inc
double learntsize_adjust_confl
void uncheckedEnqueue(Lit p, CRef from=CRef_Undef)
bool enqueue(Lit p, CRef from=CRef_Undef)
Heap< VarOrderLt > order_heap
int learntsize_adjust_start_confl
bool satisfied(const Clause &c) const
void copyTo(vec< T > ©) const
RegionAllocator< uint32_t >::Ref CRef
VarOrderLt(const vec< double > &act)
bool operator()(Var x, Var y) const
const vec< double > & activity
bool operator()(const Watcher &w) const
const ClauseAllocator & ca
WatcherDeleted(const ClauseAllocator &_ca)
bool operator==(const Watcher &w) const
bool operator!=(const Watcher &w) const