31static inline Aig_Obj_t * Dch_ObjChild0Fra(
Aig_Obj_t * pObj ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin0(pObj)? Aig_NotCond(Dch_ObjFraig(Aig_ObjFanin0(pObj)), Aig_ObjFaninC0(pObj)) : NULL; }
32static inline Aig_Obj_t * Dch_ObjChild1Fra(
Aig_Obj_t * pObj ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin1(pObj)? Aig_NotCond(Dch_ObjFraig(Aig_ObjFanin1(pObj)), Aig_ObjFaninC1(pObj)) : NULL; }
51 Aig_Obj_t * pObjRepr, * pObjFraig, * pObjFraig2, * pObjReprFraig;
54 pObjRepr = Aig_ObjRepr(
p->pAigTotal, pObj );
55 if ( pObjRepr == NULL )
58 pObjFraig = Dch_ObjFraig( pObj );
59 if ( pObjFraig == NULL )
62 pObjReprFraig = Dch_ObjFraig( pObjRepr );
63 if ( pObjReprFraig == NULL )
66 if ( Aig_Regular(pObjFraig) == Aig_Regular(pObjReprFraig) )
69 p->pReprsProved[ pObj->
Id ] = pObjRepr;
72 assert( Aig_Regular(pObjFraig) != Aig_ManConst1(
p->pAigFraig) );
76 Dch_ObjSetFraig( pObj, NULL );
81 pObjFraig2 = Aig_NotCond( pObjReprFraig, pObj->
fPhase ^ pObjRepr->
fPhase );
82 Dch_ObjSetFraig( pObj, pObjFraig2 );
84 p->pReprsProved[ pObj->
Id ] = pObjRepr;
88 if (
p->pPars->fSimulateTfo )
92 assert( Aig_ObjRepr(
p->pAigTotal, pObj ) != pObjRepr );
114 Aig_ManConst1(
p->pAigTotal)->pData = Aig_ManConst1(
p->pAigFraig);
121 Bar_ProgressUpdate( pProgress, i, NULL );
122 if ( Dch_ObjFraig(Aig_ObjFanin0(pObj)) == NULL ||
123 Dch_ObjFraig(Aig_ObjFanin1(pObj)) == NULL )
125 pObjNew =
Aig_And(
p->pAigFraig, Dch_ObjChild0Fra(pObj), Dch_ObjChild1Fra(pObj) );
126 if ( pObjNew == NULL )
128 Dch_ObjSetFraig( pObj, pObjNew );
134 p->pAigTotal->pReprs =
p->pReprsProved;
135 p->pReprsProved = NULL;
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Aig_ManCleanMarkB(Aig_Man_t *p)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
struct Aig_Obj_t_ Aig_Obj_t
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
#define Aig_ManForEachNode(p, pObj, i)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
void Aig_ManCleanData(Aig_Man_t *p)
void Bar_ProgressStop(Bar_Progress_t *p)
Bar_Progress_t * Bar_ProgressStart(FILE *pFile, int nItemsTotal)
FUNCTION DEFINITIONS ///.
struct Bar_Progress_t_ Bar_Progress_t
BASIC TYPES ///.
struct Dch_Man_t_ Dch_Man_t
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)
int Dch_NodesAreEquiv(Dch_Man_t *p, Aig_Obj_t *pObj1, Aig_Obj_t *pObj2)
DECLARATIONS ///.
void Dch_ManSweep(Dch_Man_t *p)
void Dch_ManSweepNode(Dch_Man_t *p, Aig_Obj_t *pObj)
FUNCTION DEFINITIONS ///.