mirror of https://github.com/YosysHQ/abc.git
merge
This commit is contained in:
commit
9a1ef0e5d0
|
|
@ -53,8 +53,9 @@ static inline int Bmc_MeshUVar( int Me[102][102], int x, int y ) { return Me[x][
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
static inline int Bmc_MeshVarValue( satoko_t * p, int v )
|
static inline int Bmc_MeshVarValue( satoko_t * p, int v )
|
||||||
{
|
{
|
||||||
int value = var_value(p, v) != VAR_UNASSING ? var_value(p, v) : var_polarity(p, v);
|
// int value = var_value(p, v) != VAR_UNASSING ? var_value(p, v) : var_polarity(p, v);
|
||||||
return value == LIT_TRUE;
|
// return value == LIT_TRUE;
|
||||||
|
return var_polarity(p, v) == LIT_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**Function*************************************************************
|
/**Function*************************************************************
|
||||||
|
|
|
||||||
|
|
@ -518,9 +518,9 @@ void solver_cancel_until(solver_t *s, unsigned level)
|
||||||
for (i = (int) vec_uint_size(s->trail) - 1; i >= (int) vec_uint_at(s->trail_lim, level); i--) {
|
for (i = (int) vec_uint_size(s->trail) - 1; i >= (int) vec_uint_at(s->trail_lim, level); i--) {
|
||||||
unsigned var = lit2var(vec_uint_at(s->trail, (unsigned) i));
|
unsigned var = lit2var(vec_uint_at(s->trail, (unsigned) i));
|
||||||
|
|
||||||
|
vec_char_assign(s->polarity, var, vec_char_at(s->assigns, var));
|
||||||
vec_char_assign(s->assigns, var, VAR_UNASSING);
|
vec_char_assign(s->assigns, var, VAR_UNASSING);
|
||||||
vec_uint_assign(s->reasons, var, UNDEF);
|
vec_uint_assign(s->reasons, var, UNDEF);
|
||||||
vec_char_assign(s->polarity, var, lit_polarity(vec_uint_at(s->trail, (unsigned) i)));
|
|
||||||
if (!heap_in_heap(s->var_order, var))
|
if (!heap_in_heap(s->var_order, var))
|
||||||
heap_insert(s->var_order, var);
|
heap_insert(s->var_order, var);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -207,6 +207,8 @@ static inline int solver_enqueue(solver_t *s, unsigned lit, unsigned reason)
|
||||||
unsigned var = lit2var(lit);
|
unsigned var = lit2var(lit);
|
||||||
|
|
||||||
vec_char_assign(s->assigns, var, lit_polarity(lit));
|
vec_char_assign(s->assigns, var, lit_polarity(lit));
|
||||||
|
if ( solver_dlevel(s) == 0 )
|
||||||
|
vec_char_assign(s->polarity, var, lit_polarity(lit));
|
||||||
vec_uint_assign(s->levels, var, solver_dlevel(s));
|
vec_uint_assign(s->levels, var, solver_dlevel(s));
|
||||||
vec_uint_assign(s->reasons, var, reason);
|
vec_uint_assign(s->reasons, var, reason);
|
||||||
vec_uint_push_back(s->trail, lit);
|
vec_uint_push_back(s->trail, lit);
|
||||||
|
|
|
||||||
|
|
@ -480,9 +480,9 @@ void satoko_write_dimacs(satoko_t *s, char *fname, int wrt_lrnt, int zero_var)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fprintf(file, "p cnf %d %d\n", n_vars, wrt_lrnt ? n_orig + n_lrnts : n_orig);
|
fprintf(file, "p cnf %d %d\n", n_vars, wrt_lrnt ? n_orig + n_lrnts : n_orig);
|
||||||
array = vec_uint_data(s->trail);
|
for (i = 0; i < vec_char_size(s->assigns); i++)
|
||||||
for (i = 0; i < vec_uint_size(s->trail); i++)
|
if ( var_value(s, i) != VAR_UNASSING )
|
||||||
fprintf(file, "%d\n", array[i] & 1 ? -(array[i] + !zero_var) : array[i] + !zero_var);
|
fprintf(file, "%d\n", var_value(s, i) == LIT_FALSE ? -(int)(i + !zero_var) : i + !zero_var);
|
||||||
|
|
||||||
array = vec_uint_data(s->originals);
|
array = vec_uint_data(s->originals);
|
||||||
for (i = 0; i < vec_uint_size(s->originals); i++)
|
for (i = 0; i < vec_uint_size(s->originals); i++)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue