49 s->vAssumptions = NULL;
68 Vec_IntFree(s->vAssumptions);
71 Vec_IntFree(s->vCore);
91 for(;begin != end; begin++) {
116 assert(nInsLimitGlobal == 0);
120 if(nConfLimitGlobal && (nConfLimit == 0 || nConfLimit > nConfLimitGlobal))
125 if(s->vAssumptions == NULL) {
126 s->vAssumptions = Vec_IntAllocArrayCopy(begin, end - begin);
128 Vec_IntClear(s->vAssumptions);
129 Vec_IntGrow(s->vAssumptions, end - begin);
130 Vec_IntPushArray(s->vAssumptions, begin, end - begin);
133 for(;begin != end; begin++) {
172 if(s->vCore == NULL) {
173 s->vCore = Vec_IntAlloc(Vec_IntSize(s->vAssumptions));
175 Vec_IntClear(s->vCore);
185 Vec_IntPush(s->vCore, Abc_LitNot(v));
188 *ppArray = Vec_IntArray(s->vCore);
189 return Vec_IntSize(s->vCore);
270 int i, * pBeg, * pEnd, RetValue;
272 printf(
"CNF stats: Vars = %6d. Clauses = %7d. Literals = %8d. ", pCnf->
nVars, pCnf->
nClauses, pCnf->
nLiterals );
285 printf(
"Result: Satisfiable. " );
286 else if ( RetValue == -1 )
287 printf(
"Result: Unsatisfiable. " );
289 printf(
"Result: Undecided. " );
290 if ( RetValue == 1 ) {
291 vRes = Vec_IntAlloc( pCnf->
nVars );
292 for ( i = 0; i < pCnf->
nVars; i++ )
296 Abc_PrintTime( 1,
"Time", Abc_Clock() - clk );
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Vec_Int_t * cadical_solve_cnf(Cnf_Dat_t *pCnf, char *pArgs, int nConfs, int nTimeLimit, int fSat, int fUnsat, int fPrintCex, int fVerbose)
int cadical_solver_final(cadical_solver *s, int **ppArray)
int cadical_solver_addclause(cadical_solver *s, int *begin, int *end)
int cadical_solver_get_var_value(cadical_solver *s, int v)
int cadical_solver_nvars(cadical_solver *s)
void cadical_solver_setnvars(cadical_solver *s, int n)
int cadical_solver_addvar(cadical_solver *s)
int cadical_solver_solve(cadical_solver *s, int *begin, int *end, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, ABC_INT64_T nConfLimitGlobal, ABC_INT64_T nInsLimitGlobal)
ABC_NAMESPACE_IMPL_START cadical_solver * cadical_solver_new(void)
DECLARATIONS ///.
void cadical_solver_delete(cadical_solver *s)
typedefABC_NAMESPACE_HEADER_START struct cadical_solver_ cadical_solver
INCLUDES ///.
void ccadical_assume(CCaDiCaL *wrapper, int lit)
int ccadical_solve(CCaDiCaL *wrapper)
void ccadical_reserve(CCaDiCaL *ptr, int min_max_var)
void ccadical_release(CCaDiCaL *wrapper)
int ccadical_is_inconsistent(CCaDiCaL *ptr)
int ccadical_val(CCaDiCaL *wrapper, int lit)
void ccadical_add(CCaDiCaL *wrapper, int lit)
void ccadical_limit(CCaDiCaL *wrapper, const char *name, int val)
CCaDiCaL * ccadical_init(void)
int ccadical_failed(CCaDiCaL *wrapper, int lit)
typedefABC_NAMESPACE_HEADER_START struct CCaDiCaL CCaDiCaL
#define Cnf_CnfForClause(p, pBeg, pEnd, i)
MACRO DEFINITIONS ///.
struct Cnf_Dat_t_ Cnf_Dat_t
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.