summaryrefslogtreecommitdiffstats
path: root/src/opt/cut/cutInt.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2005-09-10 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2005-09-10 08:01:00 -0700
commite52e48c3643b0a69ee84291634d5a31956d183db (patch)
tree98f7c5d4940dd6cc43fb4cffdd37eb2f252b9898 /src/opt/cut/cutInt.h
parenteb4cdcdcb4db6e468aa02a7949217fa6da245217 (diff)
downloadabc-e52e48c3643b0a69ee84291634d5a31956d183db.tar.gz
abc-e52e48c3643b0a69ee84291634d5a31956d183db.tar.bz2
abc-e52e48c3643b0a69ee84291634d5a31956d183db.zip
Version abc50910
Diffstat (limited to 'src/opt/cut/cutInt.h')
-rw-r--r--src/opt/cut/cutInt.h29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/opt/cut/cutInt.h b/src/opt/cut/cutInt.h
index fe5080b4..2d4443f1 100644
--- a/src/opt/cut/cutInt.h
+++ b/src/opt/cut/cutInt.h
@@ -48,7 +48,6 @@ struct Cut_ManStruct_t_
// storage for cuts
Vec_Ptr_t * vCuts; // cuts by ID
Vec_Ptr_t * vCutsNew; // cuts by ID
- Cut_HashTable_t * tTable; // cuts by their leaves (and root)
// memory management
Extra_MmFixed_t * pMmCuts;
int EntrySize;
@@ -58,6 +57,7 @@ struct Cut_ManStruct_t_
int fCompl0;
int fCompl1;
int fSimul;
+ int nNodeCuts;
// precomputations
unsigned uTruthVars[6][2];
unsigned short ** pPerms43;
@@ -69,7 +69,8 @@ struct Cut_ManStruct_t_
int nCutsDealloc;
int nCutsPeak;
int nCutsTriv;
- int nCutsNode;
+ int nCutsFilter;
+ int nCutsLimit;
int nNodes;
// runtime
int timeMerge;
@@ -79,6 +80,22 @@ struct Cut_ManStruct_t_
int timeHash;
};
+// iterator through all the cuts of the list
+#define Cut_ListForEachCut( pList, pCut ) \
+ for ( pCut = pList; \
+ pCut; \
+ pCut = pCut->pNext )
+#define Cut_ListForEachCutStop( pList, pCut, pStop ) \
+ for ( pCut = pList; \
+ pCut != pStop; \
+ pCut = pCut->pNext )
+#define Cut_ListForEachCutSafe( pList, pCut, pCut2 ) \
+ for ( pCut = pList, \
+ pCut2 = pCut? pCut->pNext: NULL; \
+ pCut; \
+ pCut = pCut2, \
+ pCut2 = pCut? pCut->pNext: NULL )
+
////////////////////////////////////////////////////////////////////////
/// MACRO DEFITIONS ///
////////////////////////////////////////////////////////////////////////
@@ -87,10 +104,14 @@ struct Cut_ManStruct_t_
/// FUNCTION DECLARATIONS ///
////////////////////////////////////////////////////////////////////////
+/*=== cutCut.c ==========================================================*/
+extern Cut_Cut_t * Cut_CutAlloc( Cut_Man_t * p );
+extern Cut_Cut_t * Cut_CutCreateTriv( Cut_Man_t * p, int Node );
+extern void Cut_CutRecycle( Cut_Man_t * p, Cut_Cut_t * pCut );
+extern void Cut_CutPrint( Cut_Cut_t * pCut );
+extern void Cut_CutPrintMerge( Cut_Cut_t * pCut, Cut_Cut_t * pCut0, Cut_Cut_t * pCut1 );
/*=== cutMerge.c ==========================================================*/
extern Cut_Cut_t * Cut_CutMergeTwo( Cut_Man_t * p, Cut_Cut_t * pCut0, Cut_Cut_t * pCut1 );
-/*=== cutNode.c ==========================================================*/
-extern Cut_Cut_t * Cut_CutAlloc( Cut_Man_t * p );
/*=== cutTable.c ==========================================================*/
extern Cut_HashTable_t * Cut_TableStart( int Size );
extern void Cut_TableStop( Cut_HashTable_t * pTable );