47 float Power0 = 0.0, Power1 = 0.0;
57 if ( --pFanin->
nRefs == 0 && (!LevelMin || pFanin->
Level > LevelMin) )
60 *pPower += Power0 + 2.0 * pProbs[pFanin->
Id] * (1.0 - pProbs[pFanin->
Id]);
68 if ( --pFanin->
nRefs == 0 && (!LevelMin || pFanin->
Level > LevelMin) )
71 *pPower += Power1 + 2.0 * pProbs[pFanin->
Id] * (1.0 - pProbs[pFanin->
Id]);
94 if ( pFanin->
nRefs++ == 0 && (!LevelMin || pFanin->
Level > LevelMin) )
102 if ( pFanin->
nRefs++ == 0 && (!LevelMin || pFanin->
Level > LevelMin) )
127 if ( pFanin->
nRefs++ == 0 && (!LevelMin || pFanin->
Level > LevelMin) )
134 if ( pFanin->
nRefs++ == 0 && (!LevelMin || pFanin->
Level > LevelMin) )
157 if ( !fTopmost && pNode != pObjSkip && (
Aig_ObjIsCi(pNode) || pNode->
nRefs > 0 || pNode->
Level <= LevelMin) )
181 int ConeSize1, ConeSize2;
195 assert( ConeSize1 == ConeSize2 );
213 int ConeSize1, ConeSize2;
214 assert( (pPower != NULL) == (p->vProbs != NULL) );
218 ConeSize1 =
Aig_NodeDeref_rec( pNode, 0, pPower, p->vProbs? (
float *)p->vProbs->pArray : NULL );
220 assert( ConeSize1 == ConeSize2 );
239 int i, ConeSize1, ConeSize2;
249 assert( ConeSize1 == ConeSize2 );
268 int i, LevelMax, ConeSize1, ConeSize2, ConeCur1, ConeCur2, ConeBest;
282 if ( (
int)pObj->
Level != LevelMax )
285 if ( ConeBest > ConeCur1 )
291 assert( ConeCur1 == ConeCur2 );
293 assert( pLeafBest != NULL );
303 assert( ConeCur1 == ConeCur2 );
306 assert( ConeSize1 == ConeSize2 );
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
static int Aig_ObjIsTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
int Aig_NodeMffcExtendCut(Aig_Man_t *p, Aig_Obj_t *pNode, Vec_Ptr_t *vLeaves, Vec_Ptr_t *vResult)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
static int Aig_IsComplement(Aig_Obj_t *p)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
int Aig_NodeRefLabel_rec(Aig_Man_t *p, Aig_Obj_t *pNode, unsigned LevelMin)
static int Abc_MaxInt(int a, int b)
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static void Aig_ObjSetTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
static int Aig_ObjIsNode(Aig_Obj_t *pObj)
static int Aig_ObjIsBuf(Aig_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_END
int Aig_NodeRef_rec(Aig_Obj_t *pNode, unsigned LevelMin)
int Aig_NodeMffcSupp(Aig_Man_t *p, Aig_Obj_t *pNode, int LevelMin, Vec_Ptr_t *vSupp)
void Aig_NodeMffcSupp_rec(Aig_Man_t *p, Aig_Obj_t *pNode, unsigned LevelMin, Vec_Ptr_t *vSupp, int fTopmost, Aig_Obj_t *pObjSkip)
#define ABC_NAMESPACE_IMPL_START
int Aig_NodeMffcLabel(Aig_Man_t *p, Aig_Obj_t *pNode, float *pPower)
#define ABC_INFINITY
MACRO DEFINITIONS ///.
static void Vec_PtrClear(Vec_Ptr_t *p)
ABC_NAMESPACE_IMPL_START int Aig_NodeDeref_rec(Aig_Obj_t *pNode, unsigned LevelMin, float *pPower, float *pProbs)
DECLARATIONS ///.
int Aig_NodeMffcLabelCut(Aig_Man_t *p, Aig_Obj_t *pNode, Vec_Ptr_t *vLeaves)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static int Aig_ObjIsCi(Aig_Obj_t *pObj)