84 nAreaFlow += pAreaFlows[pLeaf->
Id] / (pLeaf->
nRefs? pLeaf->
nRefs : 1);
105 int i, k, AreaFlow, * pAreaFlows;
121 if ( pCutBest == NULL || pCutBest->
uSign > pCut->
uSign ||
130 if ( AreaFlow >= (
int)pCutBest->
uSign )
132 pAreaFlows[pObj->
Id] = pCutBest->
uSign;
137 pAreaFlows[pObj->
Id] = AreaFlow;
177 Aig_CutDeref( p, Aig_ObjBestCut(pLeaf) );
195 int i, Area = pCut->
Value;
201 Area += Aig_CutRef( p, Aig_ObjBestCut(pLeaf) );
220 Area = Aig_CutRef( p, pCut );
221 Aig_CutDeref( p, pCut );
238 if ( pC0->Area < pC1->Area - 0.0001 )
240 if ( pC0->Area > pC1->Area + 0.0001 )
271 if ( pCutBest == NULL || Cnf_CutCompare(pCutBest, pCut) == 1 )
291 pCut->Area = (float)pCut->Cost;
298 if ( pLeaf->
nRefs == 0 )
300 pCut->Area += Aig_ObjBestCut(pLeaf)->Cost;
305 if ( pCut->FanRefs + pLeaf->
nRefs > 15 )
308 pCut->FanRefs += pLeaf->
nRefs;
333 pCutBest = Aig_ObjBestCut(pObj);
334 Dar_ObjClearBestCut(pCutBest);
337 Aig_CutDeref( p->pManAig, pCutBest );
342 pCut->Area = (
float)Cnf_CutArea( p->pManAig, pCut );
345 pCutBest = Cnf_ObjFindBestCut(pObj);
346 Dar_ObjSetBestCut( pCutBest );
349 Aig_CutRef( p->pManAig, pCutBest );
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 Cnf_CutSopCost(Cnf_Man_t *p, Dar_Cut_t *pCut)
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
#define ABC_ALLOC(type, num)
static int Vec_PtrSize(Vec_Ptr_t *p)
#define Dar_ObjForEachCut(pObj, pCut, i)
static int Aig_ObjIsNode(Aig_Obj_t *pObj)
#define Aig_ManForEachNode(p, pObj, i)
int Cnf_CutSuperAreaFlow(Vec_Ptr_t *vSuper, int *pAreaFlows)
#define ABC_NAMESPACE_IMPL_END
int Cnf_ManMapForCnf(Cnf_Man_t *p)
ABC_NAMESPACE_IMPL_START void Cnf_CutAssignAreaFlow(Cnf_Man_t *p, Dar_Cut_t *pCut, int *pAreaFlows)
DECLARATIONS ///.
static int Aig_ManObjNumMax(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_START
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
#define Dar_CutForEachLeaf(p, pCut, pLeaf, i)
void Cnf_DeriveMapping(Cnf_Man_t *p)
#define ABC_INFINITY
MACRO DEFINITIONS ///.
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Cnf_Man_t_ Cnf_Man_t
INCLUDES ///.
static int Aig_ObjIsAnd(Aig_Obj_t *pObj)
static void Vec_PtrFree(Vec_Ptr_t *p)