summaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2016-08-06 00:20:47 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2016-08-06 00:20:47 -0700
commit2ded05127ae06f7ffea27600936c9b57758185a3 (patch)
treebec66e3917b18d51156cbaeba24acd771207c4dd /src/base
parentf03512bad1e7cb2fdae5b7f8a96c5f36f3daefe2 (diff)
parent8e5af90c41d9c0c364e01ae3e413a4e40cb8a1e0 (diff)
downloadabc-2ded05127ae06f7ffea27600936c9b57758185a3.tar.gz
abc-2ded05127ae06f7ffea27600936c9b57758185a3.tar.bz2
abc-2ded05127ae06f7ffea27600936c9b57758185a3.zip
Merged in petkovska/abc-pullreq/hier-npn_fast-exact (pull request #29)
Exact hierarchical NPN classification
Diffstat (limited to 'src/base')
-rw-r--r--src/base/abci/abcNpn.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/base/abci/abcNpn.c b/src/base/abci/abcNpn.c
index e667a074..8335edda 100644
--- a/src/base/abci/abcNpn.c
+++ b/src/base/abci/abcNpn.c
@@ -181,7 +181,7 @@ void Abc_TruthNpnPerform( Abc_TtStore_t * p, int NpnType, int fVerbose )
char pCanonPerm[16];
unsigned uCanonPhase=0;
abctime clk = Abc_Clock();
- int i, nClasses = -1;
+ int i;
char * pAlgoName = NULL;
if ( NpnType == 0 )
@@ -293,27 +293,28 @@ void Abc_TruthNpnPerform( Abc_TtStore_t * p, int NpnType, int fVerbose )
}
else if ( NpnType == 7 )
{
- extern unsigned Abc_TtCanonicizeHie( Abc_TtMan_t * p, word * pTruth, int nVars, char * pCanonPerm );
+ extern unsigned Abc_TtCanonicizeHie( Abc_TtMan_t * p, word * pTruth, int nVars, char * pCanonPerm, int fExact );
extern Abc_TtMan_t * Abc_TtManStart( int nVars );
extern void Abc_TtManStop( Abc_TtMan_t * p );
extern int Abc_TtManNumClasses( Abc_TtMan_t * p );
+ int fExact = 0;
Abc_TtMan_t * pMan = Abc_TtManStart( p->nVars );
for ( i = 0; i < p->nFuncs; i++ )
{
if ( fVerbose )
printf( "%7d : ", i );
- uCanonPhase = Abc_TtCanonicizeHie( pMan, p->pFuncs[i], p->nVars, pCanonPerm );
+ uCanonPhase = Abc_TtCanonicizeHie( pMan, p->pFuncs[i], p->nVars, pCanonPerm, fExact );
if ( fVerbose )
// Extra_PrintHex( stdout, (unsigned *)p->pFuncs[i], p->nVars ), Abc_TruthNpnPrint(NULL, uCanonPhase, p->nVars), printf( "\n" );
printf( "\n" );
}
- nClasses = Abc_TtManNumClasses( pMan );
+ // nClasses = Abc_TtManNumClasses( pMan );
Abc_TtManStop( pMan );
}
else assert( 0 );
clk = Abc_Clock() - clk;
- printf( "Classes =%9d ", nClasses == -1 ? Abc_TruthNpnCountUnique(p) : nClasses );
+ printf( "Classes =%9d ", Abc_TruthNpnCountUnique(p) );
Abc_PrintTime( 1, "Time", clk );
}