92 int Lits[2], status, iVar, i, c;
130 if ( p->
pPars->fOneHotness )
155 if ( p->
pPars->fOneHotness )
176 for ( c = 0; c < nCands; c++ )
241 int c, i, * pGloVars;
247 status =
sat_solver_solve( pSat, NULL, NULL, (ABC_INT64_T)p->
pPars->nBTLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
259 for ( c = 0; c < nCands; c++ )
270 assert( nFanins == nCands );
287 unsigned * pTruth, uTruth0[2], uTruth1[2];
292 uTruth1[0] = pTruth[0];
293 uTruth1[1] = pTruth[1];
297 uTruth1[0] = pTruth[0];
298 uTruth1[1] = pTruth[0];
303 uTruth0[0] = ~pTruth[0];
304 uTruth0[1] = ~pTruth[1];
308 uTruth0[0] = ~pTruth[0];
309 uTruth0[1] = ~pTruth[0];
340 int c, i, * pGloVars;
351 sprintf( FileName,
"cnf\\pj1_if6_mfs%03d.cnf", Counter++ );
356 status =
sat_solver_solve( pSat, NULL, NULL, (ABC_INT64_T)p->
pPars->nBTLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
358 printf(
"File %s has UNSAT problem with %d conflicts.\n", FileName, (
int)pSat->
stats.
conflicts );
372 for ( c = 0; c < nCands; c++ )
383 assert( nFanins == nCands );
int Int_ManInterpolate(Int_Man_t *p, Sto_Man_t *pCnf, int fVerbose, unsigned **ppResult)
int Abc_NtkMfsInterplateEval(Mfs_Man_t *p, int *pCands, int nCands)
sat_solver * Abc_MfsCreateSolverResub(Mfs_Man_t *p, int *pCands, int nCands, int fInvert)
#define Vec_PtrForEachEntryStart(Type, vVec, pEntry, i, Start)
int sat_solver_addclause(sat_solver *s, lit *begin, lit *end)
int sat_solver_solve(sat_solver *s, lit *begin, lit *end, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, ABC_INT64_T nConfLimitGlobal, ABC_INT64_T nInsLimitGlobal)
static int lit_var(lit l)
ABC_NAMESPACE_IMPL_START int Abc_MfsSatAddXor(sat_solver *pSat, int iVarA, int iVarB, int iVarC)
DECLARATIONS ///.
void sat_solver_delete(sat_solver *s)
void * sat_solver_store_release(sat_solver *s)
static int Vec_PtrSize(Vec_Ptr_t *p)
for(p=first;p->value< newval;p=p->next)
Hop_Obj_t * Abc_NtkMfsInterplate(Mfs_Man_t *p, int *pCands, int nCands)
int Abc_NtkAddOneHotness(Mfs_Man_t *p)
static lit lit_neg(lit l)
static int Aig_ManCoNum(Aig_Man_t *p)
Hop_Obj_t * Kit_GraphToHop(Hop_Man_t *pMan, Kit_Graph_t *pGraph)
void Kit_GraphFree(Kit_Graph_t *pGraph)
void sat_solver_store_alloc(sat_solver *s)
static lit toLitCond(int v, int c)
void sat_solver_setnvars(sat_solver *s, int n)
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
static void Vec_IntPush(Vec_Int_t *p, int Entry)
void Sat_SolverWriteDimacs(sat_solver *p, char *pFileName, lit *assumptionsBegin, lit *assumptionsEnd, int incrementVars)
unsigned * Abc_NtkMfsInterplateTruth(Mfs_Man_t *p, int *pCands, int nCands, int fInvert)
void sat_solver_store_mark_clauses_a(sat_solver *s)
#define ABC_NAMESPACE_IMPL_START
static Aig_Obj_t * Aig_ManCo(Aig_Man_t *p, int i)
void sat_solver_store_mark_roots(sat_solver *s)
int * Int_ManSetGlobalVars(Int_Man_t *p, int nGloVars)
int sat_solver_simplify(sat_solver *s)
sat_solver * sat_solver_new(void)
static int Vec_IntSize(Vec_Int_t *p)
void Sto_ManFree(Sto_Man_t *p)
static void Vec_IntClear(Vec_Int_t *p)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
Kit_Graph_t * Kit_TruthToGraph(unsigned *pTruth, int nVars, Vec_Int_t *vMemory)
typedefABC_NAMESPACE_HEADER_START struct Hop_Man_t_ Hop_Man_t
INCLUDES ///.