From 616bb095f10c24f1f720efe89b7f39c670d114a3 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sat, 1 Jul 2006 08:01:00 -0700 Subject: Version abc60701 --- src/opt/cut/cutNode.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/opt/cut/cutNode.c') diff --git a/src/opt/cut/cutNode.c b/src/opt/cut/cutNode.c index b651dac9..6f7777ad 100644 --- a/src/opt/cut/cutNode.c +++ b/src/opt/cut/cutNode.c @@ -102,6 +102,36 @@ static inline void Cut_CutFilter( Cut_Man_t * p, Cut_Cut_t * pList ) *ppListR = NULL; } +/**Function************************************************************* + + Synopsis [Checks equality of one cut.] + + Description [Returns 1 if the cut is removed.] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +static inline int Cut_CutFilterOneEqual( Cut_Man_t * p, Cut_List_t * pSuperList, Cut_Cut_t * pCut ) +{ + Cut_Cut_t * pTemp; + Cut_ListForEachCut( pSuperList->pHead[pCut->nLeaves], pTemp ) + { + // skip the non-contained cuts + if ( pCut->uSign != pTemp->uSign ) + continue; + // check containment seriously + if ( Cut_CutCheckDominance( pTemp, pCut ) ) + { + p->nCutsFilter++; + Cut_CutRecycle( p, pCut ); + return 1; + } + } + return 0; +} + /**Function************************************************************* Synopsis [Checks containment for one cut.] @@ -266,6 +296,7 @@ static inline int Cut_CutProcessTwo( Cut_Man_t * p, Cut_Cut_t * pCut0, Cut_Cut_t if ( p->pParams->fFilter ) { if ( Cut_CutFilterOne(p, pSuperList, pCut) ) +// if ( Cut_CutFilterOneEqual(p, pSuperList, pCut) ) return 0; if ( p->pParams->fSeq ) { -- cgit v1.2.3