45 #define STARTUP_LIT_POOL_SIZE 0x1000
49 return (a.first==b.first && a.second == b.second);
55 return (a.first + (a.second << 16));
178 int mem_cls =
sizeof(
CClause) *
180 int mem_cls_queue =
sizeof(int) *
182 int mem_ht_ptrs =0, mem_lit_clauses = 0;
185 return (lit_pool + mem_vars + mem_cls +
186 mem_cls_queue + mem_ht_ptrs + mem_lit_clauses);
193 int mem_ht_ptrs = 0, mem_lit_clauses = 0;
194 for (
unsigned i=0; i<
variables().size(); ++i) {
196 mem_ht_ptrs += v.
ht_ptr(0).capacity() + v.
ht_ptr(1).capacity();
200 return (lit_pool + mem_vars + mem_cls +
201 mem_cls_queue + mem_ht_ptrs + mem_lit_clauses);
225 for (
int i=0; i< cl.
num_lits(); ++i) {
232 if (
variable(v_idx).in_new_cl() == -1 && phase != -1)
234 else if (
variable(v_idx).in_new_cl() != -1 && phase == -1)
236 else assert (0 &&
"How can this happen? ");
252 void dump(ostream & os = cout);
int find_unit_literal(ClauseIdx cl)
void compact_lit_pool(void)
size_t operator()(const pair< int, int > a) const
int literal_value(CLitPoolElement l)
int lit_pool_free_space(void)
CLitPoolElement * lit_pool_begin(void)
void mark_clause_deleted(CClause &cl)
void dump(ostream &os=cout)
vector< CClause > _clauses
vector< CClause > & clauses(void)
int & num_added_clauses()
int & num_added_literals()
bool is_conflict(ClauseIdx cl)
void mark_var_in_new_cl(int v_idx, int phase)
CDatabaseStats & stats(void)
void set_in_new_cl(int phase)
void lit_pool_push_back(int value)
CLitPoolElement & literal(int idx)
vector< CVariable > & variables(void)
CLitPoolElement * _lit_pool_end_storage
void output_lit_pool_state(void)
int estimate_mem_usage(void)
int & init_num_literals()
queue< ClauseIdx > _unused_clause_idx_queue
CLitPoolElement * _lit_pool_finish
CVariable & variable(int idx)
CLitPoolElement * lit_pool_end(void)
vector< CLitPoolElement * > & ht_ptr(int i)
void set_mem_limit(int n)
void set_variable_number(int n)
int & num_deleted_literals()
bool enlarge_lit_pool(void)
CLitPoolElement * _lit_pool_start
CLitPoolElement & lit_pool(int i)
void detail_dump_cl(ClauseIdx cl_idx, ostream &os=cout)
bool operator()(pair< int, int > a, pair< int, int > b)
bool is_satisfied(ClauseIdx cl)
CClause & clause(ClauseIdx idx)
vector< CVariable > _variables
int & num_deleted_clauses()