summaryrefslogtreecommitdiffstats
path: root/src/map
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2015-09-23 15:24:25 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2015-09-23 15:24:25 -0700
commit19a4bb930edcfc7910388bb08fd86482b9dd35e7 (patch)
treeb176de09c1e902768dec8d2902677420c383257d /src/map
parent643aef2ecd1f1f2acc47f1cc58d9d24cb2ff50ed (diff)
downloadabc-19a4bb930edcfc7910388bb08fd86482b9dd35e7.tar.gz
abc-19a4bb930edcfc7910388bb08fd86482b9dd35e7.tar.bz2
abc-19a4bb930edcfc7910388bb08fd86482b9dd35e7.zip
Threshold logic checking code by Augusto Neutzling and Jody Matos.
Diffstat (limited to 'src/map')
-rw-r--r--src/map/if/ifDsd.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/map/if/ifDsd.c b/src/map/if/ifDsd.c
index cdc34b2a..e05e9a6f 100644
--- a/src/map/if/ifDsd.c
+++ b/src/map/if/ifDsd.c
@@ -2761,9 +2761,10 @@ void Id_DsdManTuneStr( If_DsdMan_t * p, char * pStruct, int nConfls, int nProcs,
SeeAlso []
***********************************************************************/
-void Id_DsdManTuneThresh( If_DsdMan_t * p, int fUnate, int fThresh, int fVerbose )
+void Id_DsdManTuneThresh( If_DsdMan_t * p, int fUnate, int fThresh, int fThreshHeuristic, int fVerbose )
{
extern int Extra_ThreshCheck( word * t, int nVars, int * pW );
+ extern int Extra_ThreshHeuristic( word * t, int nVars, int * pW );
int fVeryVerbose = 0;
int pW[16];
ProgressBar * pProgress = NULL;
@@ -2771,7 +2772,7 @@ void Id_DsdManTuneThresh( If_DsdMan_t * p, int fUnate, int fThresh, int fVerbose
word * pTruth, Perm;
int i, nVars, Value;
abctime clk = Abc_Clock();
- assert( fUnate != fThresh );
+ assert( fUnate != fThresh || fUnate != fThreshHeuristic );
if ( p->nObjsPrev > 0 )
printf( "Starting the tuning process from object %d (out of %d).\n", p->nObjsPrev, Vec_PtrSize(&p->vObjs) );
// clean the attributes
@@ -2799,7 +2800,9 @@ void Id_DsdManTuneThresh( If_DsdMan_t * p, int fUnate, int fThresh, int fVerbose
Value = Abc_TtIsUnate( pTruth, nVars );
else if ( fThresh )
Value = Extra_ThreshCheck( pTruth, nVars, pW );
- else
+ else if ( fThreshHeuristic )
+ Value = Extra_ThreshHeuristic( pTruth, nVars, pW );
+ else
Value = 0;
Perm = 0;
if ( fVeryVerbose )