100 int i, fChanges, PivotValue;
103 vFanouts = Vec_IntAlloc( 100 );
107 if ( !Saig_ObjIsLo(pAig,pObj) && (fCisOnly || !Aig_ObjIsNode(pObj)) )
109 Vec_IntPush( vFanouts, Aig_ObjRefs(pObj) );
111 Vec_IntSort( vFanouts, 1 );
113 nCandMax = Abc_MinInt( nCandMax, Vec_IntSize(vFanouts) - 1 );
114 PivotValue = Vec_IntEntry( vFanouts, nCandMax );
115 Vec_IntFree( vFanouts );
117 vResult = Vec_IntAlloc( 100 );
121 if ( !Saig_ObjIsLo(pAig,pObj) && (fCisOnly || !Aig_ObjIsNode(pObj)) )
123 if ( Aig_ObjRefs(pObj) < PivotValue )
125 Vec_IntPush( vResult, Aig_ObjId(pObj) );
127 assert( Vec_IntSize(vResult) >= nCandMax );
132 for ( i = 0; i < Vec_IntSize(vResult) - 1; i++ )
133 if ( Aig_ObjRefs(Aig_ManObj(pAig, Vec_IntEntry(vResult, i))) <
134 Aig_ObjRefs(Aig_ManObj(pAig, Vec_IntEntry(vResult, i+1))) )
136 int Temp = Vec_IntEntry( vResult, i );
137 Vec_IntWriteEntry( vResult, i, Vec_IntEntry(vResult, i+1) );
138 Vec_IntWriteEntry( vResult, i+1, Temp );
164 DdManager * ddGlo = NULL;
167 int i, Entry, RetValue = -1;
169 assert( pPars->nHintDepth > 0 );
178 vHints = Vec_IntStartFull( Aig_ManObjNumMax(pAigGlo) );
182 Vec_IntWriteEntry( vHints, Entry, 1 );
190 if ( RetValue == -1 )
193 for ( ; i >= pPars->HintFirst; i-- )
195 Entry = Vec_IntEntry( vHFCands, i );
196 Vec_IntWriteEntry( vHints, Entry, -1 );
209 Cudd_RecursiveDeref( ddGlo, ddGlo->bFunc );
212 Vec_IntFreeP( &vHFCands );
213 Vec_IntFreeP( &vHints );
214 if ( pPars->fVerbose )
215 Abc_PrintTime( 1,
"Total runtime", Abc_Clock() - clk );