49 assert( !Aig_IsComplement(pObj) );
50 if ( Aig_ObjIsTravIdCurrent(
p->pAigTotal, pObj) )
52 Aig_ObjSetTravIdCurrent(
p->pAigTotal, pObj);
57 pRepr = Aig_ObjRepr(
p->pAigTotal, pObj );
61 if ( pRepr == Aig_ManConst1(
p->pAigTotal) )
63 Vec_PtrPush(
p->vSimRoots, pObj );
70 Vec_PtrPush(
p->vSimClasses, pRepr );
88 Vec_PtrClear(
p->vSimRoots );
89 Vec_PtrClear(
p->vSimClasses );
91 Aig_ObjSetTravIdCurrent(
p->pAigTotal, Aig_ManConst1(
p->pAigTotal) );
113 if ( Aig_ObjIsTravIdCurrent(
p->pAigTotal, pObj) )
115 Aig_ObjSetTravIdCurrent(
p->pAigTotal, pObj);
116 if ( Aig_ObjIsCi(pObj) )
120 pObjFraig = Dch_ObjFraig( pObj );
121 assert( !Aig_IsComplement(pObjFraig) );
122 nVarNum = Dch_ObjSatNum(
p, pObjFraig );
125 pObj->
fMarkB = !nVarNum? 0 : sat_solver_var_value(
p->pSat, nVarNum );
131 pObj->
fMarkB = ( Aig_ObjFanin0(pObj)->fMarkB ^ Aig_ObjFaninC0(pObj) )
132 & ( Aig_ObjFanin1(pObj)->fMarkB ^ Aig_ObjFaninC1(pObj) );
134 if ( Dch_ObjSatNum(
p, Aig_Regular(Dch_ObjFraig(pObj)) ) > 0 )
151 if ( Aig_ObjIsTravIdCurrent(
p->pAigTotal, pObj) )
153 Aig_ObjSetTravIdCurrent(
p->pAigTotal, pObj);
154 if ( Aig_ObjIsCi(pObj) )
162 pObj->
fMarkB = ( Aig_ObjFanin0(pObj)->fMarkB ^ Aig_ObjFaninC0(pObj) )
163 & ( Aig_ObjFanin1(pObj)->fMarkB ^ Aig_ObjFaninC1(pObj) );
180 int i, k, nSize, RetValue1, RetValue2;
187 Aig_ObjSetTravIdCurrent(
p->pAigTotal, Aig_ManConst1(
p->pAigTotal) );
190 p->nConeMax = Abc_MaxInt(
p->nConeMax,
p->nConeThis );
201 for ( k = 0; k < nSize; k++ )
207 if ( Aig_ObjIsConst1(pRepr) )
211p->timeSimSat += Abc_Clock() - clk;
231 if ( Dch_ObjIsConst1Cand(
p->pAigTotal, pObj) )
238 Aig_ObjSetTravIdCurrent(
p->pAigTotal, Aig_ManConst1(
p->pAigTotal) );
241 p->nConeMax = Abc_MaxInt(
p->nConeMax,
p->nConeThis );
246 if ( Dch_ObjIsConst1Cand(
p->pAigTotal, pObj) )
251p->timeSimSat += Abc_Clock() - clk;
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define Aig_ObjForEachFanout(p, pObj, pFanout, iFan, i)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
struct Aig_Obj_t_ Aig_Obj_t
int Aig_ObjCompareIdIncrease(Aig_Obj_t **pp1, Aig_Obj_t **pp2)
unsigned Aig_ManRandom(int fReset)
Aig_Obj_t ** Dch_ClassesReadClass(Dch_Cla_t *p, Aig_Obj_t *pRepr, int *pnSize)
void Dch_ClassesCollectConst1Group(Dch_Cla_t *p, Aig_Obj_t *pObj, int nNodes, Vec_Ptr_t *vRoots)
int Dch_ClassesRefineConst1Group(Dch_Cla_t *p, Vec_Ptr_t *vRoots, int fRecursive)
void Dch_ClassesCollectOneClass(Dch_Cla_t *p, Aig_Obj_t *pRepr, Vec_Ptr_t *vRoots)
int Dch_ClassesRefineOneClass(Dch_Cla_t *p, Aig_Obj_t *pReprOld, int fRecursive)
struct Dch_Man_t_ Dch_Man_t
void Dch_ManResimulateSolved_rec(Dch_Man_t *p, Aig_Obj_t *pObj)
void Dch_ManResimulateCex(Dch_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pRepr)
void Dch_ManResimulateCex2(Dch_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pRepr)
ABC_NAMESPACE_IMPL_START void Dch_ManCollectTfoCands_rec(Dch_Man_t *p, Aig_Obj_t *pObj)
DECLARATIONS ///.
void Dch_ManCollectTfoCands(Dch_Man_t *p, Aig_Obj_t *pObj1, Aig_Obj_t *pObj2)
void Dch_ManResimulateOther_rec(Dch_Man_t *p, Aig_Obj_t *pObj)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.