50 Vec_Int_t * vSupNew, * vSup, * vSup2, * vTemp;
53 int i, k, nCommon, CountOver, CountQuant;
54 int nTotalSupp, nTotalSupp2, Entry, Largest;
65ABC_PRT(
"Supports", Abc_Clock() - clk );
69 vSup = Vec_VecEntryInt( vSupps, i );
77 vSuppsIn = Vec_VecStart( Aig_ManCiNum(
p) );
80 vSup = Vec_VecEntryInt( vSupps, i );
82 Vec_VecPush( vSuppsIn, Entry, (
void *)(ABC_PTRUINT_T)i );
84ABC_PRT(
"Inverse ", Abc_Clock() - clk );
89 vSuppsNew = Vec_PtrAlloc( Aig_ManCoNum(
p) );
90 vOverNew = Vec_IntAlloc( Aig_ManCoNum(
p) );
91 vQuantNew = Vec_IntAlloc( Aig_ManCoNum(
p) );
97 vSup = Vec_VecEntryInt( vSupps, i );
98 if ( Vec_IntSize(vSup) < 2 )
101 CountOver = CountQuant = 0;
102 vSupNew = Vec_IntDup( vSup );
112 vSup2 = Vec_VecEntryInt( vSupps, k );
114 nCommon = Vec_IntTwoCountCommon(vSup, vSup2);
117 if ( nCommon > nComLim )
119 vSupNew = Vec_IntTwoMerge( vTemp = vSupNew, vSup2 );
120 Vec_IntFree( vTemp );
127 Vec_PtrPush( vSuppsNew, vSupNew );
128 Vec_IntPush( vOverNew, CountOver );
129 Vec_IntPush( vQuantNew, CountQuant );
131 if ( Largest < Vec_IntSize(vSupNew) )
132 Largest = Vec_IntSize(vSupNew);
134 nTotalSupp += Vec_IntSize(vSup);
135 nTotalSupp2 += Vec_IntSize(vSupNew);
136 if ( Vec_IntSize(vSup) )
137 R = Vec_IntSize(vSupNew) / Vec_IntSize(vSup);
145 printf(
"%6d : ", i );
146 printf(
"S = %5d. ", Vec_IntSize(vSup) );
147 printf(
"SNew = %5d. ", Vec_IntSize(vSupNew) );
148 printf(
"R = %7.2f. ", R );
149 printf(
"Over = %5d. ", CountOver );
150 printf(
"Quant = %5d. ", CountQuant );
159ABC_PRT(
"Scanning", Abc_Clock() - clk );
162 printf(
"PIs = %6d. POs = %6d. Lim = %3d. AveS = %3d. SN = %3d. R = %4.2f Max = %5d.\n",
163 Aig_ManCiNum(
p), Aig_ManCoNum(
p), nComLim,
164 nTotalSupp/Aig_ManCoNum(
p), nTotalSupp2/Aig_ManCoNum(
p),
165 Ratio/Aig_ManCoNum(
p), Largest );
167 Vec_VecFree( vSupps );
168 Vec_VecFree( vSuppsIn );
170 Vec_IntFree( vOverNew );
171 Vec_IntFree( vQuantNew );
192 int Entry, Entry2, Entry3, Counter;
200ABC_PRT(
"Supports", Abc_Clock() - clk );
204 vSup = Vec_VecEntryInt( vSupps, i );
212 vSuppsIn = Vec_VecStart( Aig_ManCiNum(
p) );
215 if ( i ==
p->nAsserts )
217 vSup = Vec_VecEntryInt( vSupps, i );
219 Vec_VecPush( vSuppsIn, Entry, (
void *)(ABC_PTRUINT_T)i );
221ABC_PRT(
"Inverse ", Abc_Clock() - clk );
230 vSup = Vec_VecEntryInt( vSupps, i );
231 memset( pSupp, 0,
sizeof(
char) * Aig_ManCiNum(
p) );
236 vSup2 = Vec_VecEntryInt( vSuppsIn, Entry );
240 vSup3 = Vec_VecEntryInt( vSupps, Entry2 );
250 for ( m = 0; m < Aig_ManCiNum(
p); m++ )
252 printf(
"%d(%d) ", Vec_IntSize(vSup), Counter );
255ABC_PRT(
"Extension ", Abc_Clock() - clk );
258 Vec_VecFree( vSupps );
259 Vec_VecFree( vSuppsIn );