diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2005-08-06 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2005-08-06 08:01:00 -0700 |
commit | d0e834d1a615f8e0e9d04c2ac97811f63562bd0b (patch) | |
tree | 0973181bfb5ee7d556cc95bd640de16fee771e89 /src/map/mapper/mapperCut.c | |
parent | 888e5bed5d7f56a5d86d91a6e8e88f3e5a3454dc (diff) | |
download | abc-d0e834d1a615f8e0e9d04c2ac97811f63562bd0b.tar.gz abc-d0e834d1a615f8e0e9d04c2ac97811f63562bd0b.tar.bz2 abc-d0e834d1a615f8e0e9d04c2ac97811f63562bd0b.zip |
Version abc50806
Diffstat (limited to 'src/map/mapper/mapperCut.c')
-rw-r--r-- | src/map/mapper/mapperCut.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/map/mapper/mapperCut.c b/src/map/mapper/mapperCut.c index 87592365..8566c819 100644 --- a/src/map/mapper/mapperCut.c +++ b/src/map/mapper/mapperCut.c @@ -23,9 +23,9 @@ //////////////////////////////////////////////////////////////////////// // the largest number of cuts considered -#define MAP_CUTS_MAX_COMPUTE 200 +#define MAP_CUTS_MAX_COMPUTE 1000 // the largest number of cuts used -#define MAP_CUTS_MAX_USE 50 +#define MAP_CUTS_MAX_USE 250 // temporary hash table to store the cuts typedef struct Map_CutTableStrutct_t Map_CutTable_t; @@ -373,6 +373,14 @@ Map_Cut_t * Map_CutMergeLists( Map_Man_t * p, Map_CutTable_t * pTable, pTemp1 = ppArray1[i]; pTemp2 = ppArray2[k]; + if ( pTemp1->nLeaves == p->nVarsMax && pTemp2->nLeaves == p->nVarsMax ) + { + if ( pTemp1->ppLeaves[0] != pTemp2->ppLeaves[0] ) + continue; + if ( pTemp1->ppLeaves[1] != pTemp2->ppLeaves[1] ) + continue; + } + // check if k-feasible cut exists nNodes = Map_CutMergeTwo( pTemp1, pTemp2, ppNodes, p->nVarsMax ); if ( nNodes == 0 ) @@ -397,6 +405,14 @@ Map_Cut_t * Map_CutMergeLists( Map_Man_t * p, Map_CutTable_t * pTable, pTemp1 = ppArray1[k]; pTemp2 = ppArray2[i]; + if ( pTemp1->nLeaves == p->nVarsMax && pTemp2->nLeaves == p->nVarsMax ) + { + if ( pTemp1->ppLeaves[0] != pTemp2->ppLeaves[0] ) + continue; + if ( pTemp1->ppLeaves[1] != pTemp2->ppLeaves[1] ) + continue; + } + // check if k-feasible cut exists nNodes = Map_CutMergeTwo( pTemp1, pTemp2, ppNodes, p->nVarsMax ); if ( nNodes == 0 ) @@ -424,6 +440,14 @@ Map_Cut_t * Map_CutMergeLists( Map_Man_t * p, Map_CutTable_t * pTable, pTemp1 = ppArray1[k]; pTemp2 = ppArray2[i]; + if ( pTemp1->nLeaves == p->nVarsMax && pTemp2->nLeaves == p->nVarsMax ) + { + if ( pTemp1->ppLeaves[0] != pTemp2->ppLeaves[0] ) + continue; + if ( pTemp1->ppLeaves[1] != pTemp2->ppLeaves[1] ) + continue; + } + // check if k-feasible cut exists nNodes = Map_CutMergeTwo( pTemp1, pTemp2, ppNodes, p->nVarsMax ); if ( nNodes == 0 ) |