From c6b962efc803c5d258302e2b8bdf33efb219bc5b Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Wed, 6 Dec 2017 13:51:10 -0800 Subject: An improvement to 'twoexact' and 'lutexact'. --- src/sat/bmc/bmc.h | 1 + src/sat/bmc/bmcMaj.c | 4 ++++ src/sat/bmc/bmcMaj2.c | 4 ++++ 3 files changed, 9 insertions(+) (limited to 'src') diff --git a/src/sat/bmc/bmc.h b/src/sat/bmc/bmc.h index c046fe07..00c9feb0 100644 --- a/src/sat/bmc/bmc.h +++ b/src/sat/bmc/bmc.h @@ -36,6 +36,7 @@ ABC_NAMESPACE_HEADER_START //#define USE_NODE_ORDER 1 +//#define USE_FIRST_SPECIAL 1 //////////////////////////////////////////////////////////////////////// /// BASIC TYPES /// diff --git a/src/sat/bmc/bmcMaj.c b/src/sat/bmc/bmcMaj.c index 86934898..97322eae 100644 --- a/src/sat/bmc/bmcMaj.c +++ b/src/sat/bmc/bmcMaj.c @@ -438,6 +438,7 @@ int Exa_ManMarkup( Exa_Man_t * p ) { for ( k = 0; k < 2; k++ ) { +#ifdef USE_FIRST_SPECIAL if ( i == p->nObjs - 1 && k == 0 ) { j = p->nObjs - 2; @@ -445,6 +446,7 @@ int Exa_ManMarkup( Exa_Man_t * p ) p->VarMarks[i][k][j] = p->iVar++; continue; } +#endif for ( j = 1 - k; j < i - k; j++ ) { Vec_WecPush( p->vOutLits, j, Abc_Var2Lit(p->iVar, 0) ); @@ -817,6 +819,7 @@ static int Exa3_ManMarkup( Exa3_Man_t * p ) { for ( k = 0; k < p->nLutSize; k++ ) { +#ifdef USE_FIRST_SPECIAL if ( i == p->nObjs - 1 && k == 0 ) { j = p->nObjs - 2; @@ -824,6 +827,7 @@ static int Exa3_ManMarkup( Exa3_Man_t * p ) p->VarMarks[i][k][j] = p->iVar++; continue; } +#endif for ( j = p->nLutSize - 1 - k; j < i - k; j++ ) { Vec_WecPush( p->vOutLits, j, Abc_Var2Lit(p->iVar, 0) ); diff --git a/src/sat/bmc/bmcMaj2.c b/src/sat/bmc/bmcMaj2.c index cfc8c407..54745118 100644 --- a/src/sat/bmc/bmcMaj2.c +++ b/src/sat/bmc/bmcMaj2.c @@ -544,6 +544,7 @@ static int Exa_ManMarkup( Exa_Man_t * p ) { for ( k = 0; k < 2; k++ ) { +#ifdef USE_FIRST_SPECIAL if ( i == p->nObjs - 1 && k == 0 ) { j = p->nObjs - 2; @@ -551,6 +552,7 @@ static int Exa_ManMarkup( Exa_Man_t * p ) p->VarMarks[i][k][j] = p->iVar++; continue; } +#endif for ( j = 1 - k; j < i - k; j++ ) { Vec_WecPush( p->vOutLits, j, Abc_Var2Lit(p->iVar, 0) ); @@ -925,6 +927,7 @@ static int Exa3_ManMarkup( Exa3_Man_t * p ) { for ( k = 0; k < p->nLutSize; k++ ) { +#ifdef USE_FIRST_SPECIAL if ( i == p->nObjs - 1 && k == 0 ) { j = p->nObjs - 2; @@ -932,6 +935,7 @@ static int Exa3_ManMarkup( Exa3_Man_t * p ) p->VarMarks[i][k][j] = p->iVar++; continue; } +#endif for ( j = p->nLutSize - 1 - k; j < i - k; j++ ) { Vec_WecPush( p->vOutLits, j, Abc_Var2Lit(p->iVar, 0) ); -- cgit v1.2.3