Commit b7c8f918 by Alan Mishchenko

Adding code to count statistics about decomposable LUT5.

parent 3459683e
...@@ -226,6 +226,7 @@ struct If_Man_t_ ...@@ -226,6 +226,7 @@ struct If_Man_t_
int nCutsCount[32]; int nCutsCount[32];
int nCutsCountAll; int nCutsCountAll;
int nCutsUselessAll; int nCutsUselessAll;
int nCuts5, nCuts5a;
// Abc_Nam_t * pNamDsd; // Abc_Nam_t * pNamDsd;
int iNamVar; int iNamVar;
Dss_Man_t * pDsdMan; Dss_Man_t * pDsdMan;
......
...@@ -151,6 +151,7 @@ void If_ManStop( If_Man_t * p ) ...@@ -151,6 +151,7 @@ void If_ManStop( If_Man_t * p )
if ( p->nCutsUseless[i] ) if ( p->nCutsUseless[i] )
Abc_Print( 1, "Useless cuts %2d = %9d (out of %9d) (%6.2f %%)\n", i, p->nCutsUseless[i], p->nCutsCount[i], 100.0*p->nCutsUseless[i]/(p->nCutsCount[i]+1) ); Abc_Print( 1, "Useless cuts %2d = %9d (out of %9d) (%6.2f %%)\n", i, p->nCutsUseless[i], p->nCutsCount[i], 100.0*p->nCutsUseless[i]/(p->nCutsCount[i]+1) );
Abc_Print( 1, "Useless cuts all = %9d (out of %9d) (%6.2f %%)\n", p->nCutsUselessAll, p->nCutsCountAll, 100.0*p->nCutsUselessAll/(p->nCutsCountAll+1) ); Abc_Print( 1, "Useless cuts all = %9d (out of %9d) (%6.2f %%)\n", p->nCutsUselessAll, p->nCutsCountAll, 100.0*p->nCutsUselessAll/(p->nCutsCountAll+1) );
Abc_Print( 1, "Statistics about 5-cuts: Total = %d Non-decomposable = %d (%.2f %%)\n", p->nCuts5, p->nCuts5-p->nCuts5a, 100.0*(p->nCuts5-p->nCuts5a)/p->nCuts5 );
} }
if ( p->pPars->fUseDsd ) if ( p->pPars->fUseDsd )
{ {
......
...@@ -273,6 +273,16 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep ...@@ -273,6 +273,16 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep
p->nCutsUseless[pCut->nLeaves] += pCut->fUseless; p->nCutsUseless[pCut->nLeaves] += pCut->fUseless;
p->nCutsCountAll++; p->nCutsCountAll++;
p->nCutsCount[pCut->nLeaves]++; p->nCutsCount[pCut->nLeaves]++;
if ( p->pPars->fVerbose && pCut->nLeaves == 5 )
{
extern int If_CluCheckDecIn( word t, int nVars );
extern int If_CluCheckDecOut( word t, int nVars );
unsigned TruthU = *If_CutTruth(pCut);
word Truth = (((word)TruthU << 32) | (word)TruthU);
p->nCuts5++;
if ( If_CluCheckDecIn( Truth, 5 ) || If_CluCheckDecOut( Truth, 5 ) )
p->nCuts5a++;
}
} }
} }
if ( p->pPars->fUseDsd ) if ( p->pPars->fUseDsd )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment