29#ifndef Glucose_Solver_h
30#define Glucose_Solver_h
142 virtual void reset();
194 int64_t
nbRemovedClauses,
nbReducedClauses,
nbDL2,
nbBin,
nbUn,
nbReduceDB,
solves,
starts,
decisions,
rnd_decisions,
propagations,
conflicts,
conflictsRestarts,
nbstopsrestarts,
nbstopsrestartssame,
lastblockatrestart;
256#ifdef UPDATEVARACTIVITY
308 void analyze (
CRef confl,
vec<Lit>& out_learnt,
vec<Lit> & selectors,
int& out_btlevel,
unsigned int &nblevels,
unsigned int &szWithoutSelectors);
353 static inline double drand(
double& seed) {
355 int q = (int)(seed / 2147483647);
356 seed -= (double)q * 2147483647;
357 return seed / 2147483647; }
360 static inline int irand(
double& seed,
int size) {
361 return (
int)(
drand(seed) * size); }
377 if ( (
activity[v] += inc) > 1e100 ) {
379 for (
int i = 0; i <
nVars(); i++)
391 for (
int i = 0; i <
learnts.size(); i++)
397 if (
ca.wasted() >
ca.size() * gf)
483 for (
int i = 0; i < c.
size(); i++){
492 for (
int i = 0; i < c.
size(); i++){
#define ABC_NAMESPACE_CXX_HEADER_START
#define ABC_NAMESPACE_CXX_HEADER_END
ABC_NAMESPACE_IMPL_START typedef signed char value
#define sat_solver_mark_cone
#define sat_solver_set_var_fanin_lit
bool locked(const Clause &c) const
int decisionLevel() const
static double drand(double &seed)
bool addClause_(vec< Lit > &ps)
lbool search(int nof_conflicts)
void toDimacs(FILE *f, const vec< Lit > &assumps)
int64_t lastblockatrestart
vec< int > assumptionPositions
OccLists< Lit, vec< Watcher >, WatcherDeleted > watches
void sat_solver_mark_cone(int)
void cancelUntil(int level)
unsigned int computeLBD(const vec< Lit > &lits, int end=-1)
bool litRedundant(Lit p, uint32_t abstract_levels)
vec< unsigned int > permDiff
void sat_solver_start_new_round()
int(* pCnfFunc)(void *p, int, int *)
int64_t conflictsRestarts
static int irand(double &seed, int size)
virtual void garbageCollect()
double progressEstimate() const
void relocAll(ClauseAllocator &to)
void removeClause(CRef cr)
void setConfBudget(int64_t x)
int learntsize_adjust_cnt
void detachClause(CRef cr, bool strict=false)
void minimisationWithBinaryResolution(vec< Lit > &out_learnt)
void attachClause(CRef cr)
void printInitialClause(CRef c)
void removeSatisfied(vec< CRef > &cs)
void setPolarity(Var v, bool b)
void analyzeFinal(Lit p, vec< Lit > &out_conflict)
OccLists< Lit, vec< Watcher >, WatcherDeleted > watchesBin
uint32_t abstractLevel(Var x) const
static VarData mkVarData(CRef cr, int l)
double learntsize_adjust_confl
bool enqueue(Lit p, CRef from=CRef_Undef)
int nbclausesbeforereduce
void sat_solver_set_var_fanin_lit(int, int, int)
bqueue< unsigned int > trailQueue
void setPropBudget(int64_t x)
void initNbInitialVars(int nb)
void insertVarOrder(Var x)
bool withinBudget() const
bool terminate_search_early
Heap< VarOrderLt > order_heap
void claBumpActivity(Clause &c)
unsigned int lbLBDFrozenClause
vec< int > initialPositions
int lbSizeMinimizingClause
Var newVar(bool polarity=true, bool dvar=true)
void varBumpActivity(Var v, double inc)
int64_t propagation_budget
void setDecisionVar(Var v, bool b)
void printIncrementalStats()
bqueue< unsigned int > lbdQueue
void setIncrementalMode()
vec< Lit > analyze_toclear
void analyze(CRef confl, vec< Lit > &out_learnt, vec< Lit > &selectors, int &out_btlevel, unsigned int &nblevels, unsigned int &szWithoutSelectors)
bool addClause(const vec< Lit > &ps)
void uncheckedEnqueue(Lit p, CRef from=CRef_Undef)
lbool solveLimited(const vec< Lit > &assumps)
lbool modelValue(Var x) const
unsigned int lbLBDMinimizingClause
int64_t nbstopsrestartssame
bool satisfied(const Clause &c) const
void copyTo(vec< T > ©) const
RegionAllocator< uint32_t >::Ref CRef
VarOrderLt(const vec< double > &act)
const vec< double > & activity
bool operator()(Var x, Var y) const
const ClauseAllocator & ca
bool operator()(const Watcher &w) const
WatcherDeleted(const ClauseAllocator &_ca)
bool operator!=(const Watcher &w) const
bool operator==(const Watcher &w) const