83 int CostBest, CostCur, i;
90 CostCur = Aig_NodeGetLeafCostOne( pNode, nFanoutLimit );
92 if ( CostBest > CostCur ||
93 (CostBest == CostCur && pNode->
Level > pFaninBest->
Level) )
101 if ( pFaninBest == NULL )
104 if ( Vec_PtrSize(vFront) - 1 + CostBest > nSizeLimit )
106 assert( Aig_ObjIsNode(pFaninBest) );
108 Vec_PtrRemove( vFront, pFaninBest );
112 pNext = Aig_ObjFanin0(pFaninBest);
117 Vec_PtrPush( vFront, pNext );
118 Vec_PtrPush( vVisited, pNext );
121 pNext = Aig_ObjFanin1(pFaninBest);
126 Vec_PtrPush( vFront, pNext );
127 Vec_PtrPush( vVisited, pNext );
129 assert( Vec_PtrSize(vFront) <= nSizeLimit );
150 assert( !Aig_IsComplement(pRoot) );
151 assert( Aig_ObjIsNode(pRoot) );
152 assert( Aig_ObjChild0(pRoot) );
153 assert( Aig_ObjChild1(pRoot) );
156 Vec_PtrClear( vFront );
157 Vec_PtrPush( vFront, Aig_ObjFanin0(pRoot) );
158 Vec_PtrPush( vFront, Aig_ObjFanin1(pRoot) );
161 Vec_PtrClear( vVisited );
162 Vec_PtrPush( vVisited, pRoot );
163 Vec_PtrPush( vVisited, Aig_ObjFanin0(pRoot) );
164 Vec_PtrPush( vVisited, Aig_ObjFanin1(pRoot) );
168 assert( !Aig_ObjFanin0(pRoot)->fMarkA );
169 assert( !Aig_ObjFanin1(pRoot)->fMarkA );
171 Aig_ObjFanin0(pRoot)->fMarkA = 1;
172 Aig_ObjFanin1(pRoot)->fMarkA = 1;
176 assert( Vec_PtrSize(vFront) <= nSizeLimit );