107 int pLits[4], RetValue, VarF, VarI, VarT, VarE, fCompT, fCompE;
226 int * pLits, nLits, RetValue, i;
258 if ( pNode->
fPhase ) pLits[nLits-1] =
lit_neg( pLits[nLits-1] );
355 int i, k, fUseMuxes = 1;
404 int Value0, Value1, nVarNum;
418 return Value0 & Value1;
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
void Ssw_CnfNodeAddToSolver(Ssw_Sat_t *p, Aig_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START Ssw_Sat_t * Ssw_SatStart(int fPolarFlip)
DECLARATIONS ///.
static Aig_Obj_t * Aig_ObjChild0(Aig_Obj_t *pObj)
int sat_solver_addclause(sat_solver *s, lit *begin, lit *end)
static int Vec_PtrPushUnique(Vec_Ptr_t *p, void *Entry)
void sat_solver_delete(sat_solver *s)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
static int Aig_IsComplement(Aig_Obj_t *p)
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
#define ABC_ALLOC(type, num)
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static int Vec_PtrSize(Vec_Ptr_t *p)
static int sat_solver_var_value(sat_solver *s, int v)
static lit lit_neg(lit l)
static int Aig_ObjIsNode(Aig_Obj_t *pObj)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
static Vec_Int_t * Vec_IntStart(int nSize)
void Ssw_AddClausesSuper(Ssw_Sat_t *p, Aig_Obj_t *pNode, Vec_Ptr_t *vSuper)
Aig_Obj_t * Aig_ObjRecognizeMux(Aig_Obj_t *pObj, Aig_Obj_t **ppObjT, Aig_Obj_t **ppObjE)
static lit toLitCond(int v, int c)
void sat_solver_setnvars(sat_solver *s, int n)
#define ABC_NAMESPACE_IMPL_END
static Aig_Obj_t * Aig_ObjChild1(Aig_Obj_t *pObj)
static int Aig_ObjIsConst1(Aig_Obj_t *pObj)
void Ssw_CollectSuper_rec(Aig_Obj_t *pObj, Vec_Ptr_t *vSuper, int fFirst, int fUseMuxes)
void Ssw_AddClausesMux(Ssw_Sat_t *p, Aig_Obj_t *pNode)
static int Aig_ObjFaninC0(Aig_Obj_t *pObj)
static void Ssw_ObjSetSatNum(Ssw_Sat_t *p, Aig_Obj_t *pObj, int Num)
#define ABC_NAMESPACE_IMPL_START
void Ssw_CollectSuper(Aig_Obj_t *pObj, int fUseMuxes, Vec_Ptr_t *vSuper)
sat_solver * sat_solver_new(void)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
int Aig_ObjIsMuxType(Aig_Obj_t *pObj)
static int Aig_ObjFaninC1(Aig_Obj_t *pObj)
static int Ssw_ObjSatNum(Ssw_Sat_t *p, Aig_Obj_t *pObj)
MACRO DEFINITIONS ///.
static void Vec_PtrClear(Vec_Ptr_t *p)
static int Aig_ObjRefs(Aig_Obj_t *pObj)
void Ssw_SatStop(Ssw_Sat_t *p)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
int Ssw_CnfGetNodeValue(Ssw_Sat_t *p, Aig_Obj_t *pObj)
static int Aig_ObjIsCi(Aig_Obj_t *pObj)
static void Vec_PtrFree(Vec_Ptr_t *p)
void Ssw_ObjAddToFrontier(Ssw_Sat_t *p, Aig_Obj_t *pObj, Vec_Ptr_t *vFrontier)