mirror of https://github.com/YosysHQ/abc.git
Improvement to CNF encoding of cardinality constraints proposed by Mathias Soaken.
This commit is contained in:
parent
31b2e8bebd
commit
998aeff15e
|
|
@ -314,6 +314,12 @@ static inline void Sbm_AddCardinConstrMerge( sat_solver * p, int * pVars, int lo
|
||||||
Sbm_AddCardinConstrMerge( p, pVars, lo+r, hi, step, pnVars );
|
Sbm_AddCardinConstrMerge( p, pVars, lo+r, hi, step, pnVars );
|
||||||
for ( i = lo+r; i < hi-r; i += step )
|
for ( i = lo+r; i < hi-r; i += step )
|
||||||
Sbm_AddSorter( p, pVars, i, i+r, pnVars );
|
Sbm_AddSorter( p, pVars, i, i+r, pnVars );
|
||||||
|
for ( i = lo+r; i < hi-r-1; i += r )
|
||||||
|
{
|
||||||
|
lit Lits[2] = { Abc_Var2Lit(pVars[i], 0), Abc_Var2Lit(pVars[i+r], 1) };
|
||||||
|
int Cid = sat_solver_addclause( p, Lits, Lits + 2 );
|
||||||
|
assert( Cid );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static inline void Sbm_AddCardinConstrRange( sat_solver * p, int * pVars, int lo, int hi, int * pnVars )
|
static inline void Sbm_AddCardinConstrRange( sat_solver * p, int * pVars, int lo, int hi, int * pnVars )
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue