From 6842b8cdbcf0605cdb12369e270bd61e0ea89276 Mon Sep 17 00:00:00 2001 From: Ana Petkovska Date: Sat, 18 Jun 2016 18:42:57 +0200 Subject: Group based exact NPN classification. --- src/base/abci/abcNpn.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/base') diff --git a/src/base/abci/abcNpn.c b/src/base/abci/abcNpn.c index e667a074..d2cac715 100644 --- a/src/base/abci/abcNpn.c +++ b/src/base/abci/abcNpn.c @@ -293,17 +293,18 @@ 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" ); -- cgit v1.2.3 From 8e5af90c41d9c0c364e01ae3e413a4e40cb8a1e0 Mon Sep 17 00:00:00 2001 From: Ana Petkovska Date: Sat, 18 Jun 2016 18:51:38 +0200 Subject: Return the class representative of each function. --- src/base/abci/abcNpn.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/base') diff --git a/src/base/abci/abcNpn.c b/src/base/abci/abcNpn.c index d2cac715..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 ) @@ -309,12 +309,12 @@ void Abc_TruthNpnPerform( Abc_TtStore_t * p, int NpnType, int 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 ); } -- cgit v1.2.3