21 #ifndef ABC__opt__cut__cutInt_h
22 #define ABC__opt__cut__cutInt_h
104 #define Cut_ListForEachCut( pList, pCut ) \
105 for ( pCut = pList; \
108 #define Cut_ListForEachCutStop( pList, pCut, pStop ) \
109 for ( pCut = pList; \
112 #define Cut_ListForEachCutSafe( pList, pCut, pCut2 ) \
113 for ( pCut = pList, \
114 pCut2 = pCut? pCut->pNext: NULL; \
117 pCut2 = pCut? pCut->pNext: NULL )
124 static inline unsigned Cut_NodeSign(
int Node ) {
return (1 << (Node % 31)); }
125 static inline int Cut_TruthWords(
int nVarsMax ) {
return nVarsMax <= 5 ? 1 : (1 << (nVarsMax - 5)); }
Cut_Cut_t * Cut_CutMergeLists(Cut_Cut_t *pList1, Cut_Cut_t *pList2)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
void Cut_TruthComputeOld(Cut_Cut_t *pCut, Cut_Cut_t *pCut0, Cut_Cut_t *pCut1, int fCompl0, int fCompl1)
typedefABC_NAMESPACE_HEADER_START struct Cut_ListStruct_t_ Cut_List_t
INCLUDES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static int Cut_TruthWords(int nVarsMax)
void Cut_TableStop(Cut_HashTable_t *pTable)
Cut_HashTable_t * Cut_TableStart(int Size)
Cut_Cut_t * Cut_CutCreateTriv(Cut_Man_t *p, int Node)
void Cut_CutRecycle(Cut_Man_t *p, Cut_Cut_t *pCut)
int Cut_CutCompare(Cut_Cut_t *pCut1, Cut_Cut_t *pCut2)
static unsigned Cut_NodeSign(int Node)
MACRO DEFINITIONS ///.
void Cut_TableClear(Cut_HashTable_t *pTable)
int Cut_TableReadTime(Cut_HashTable_t *pTable)
typedefABC_NAMESPACE_HEADER_START struct Cut_HashTableStruct_t_ Cut_HashTable_t
INCLUDES ///.
Cut_Cut_t * Cut_CutDupList(Cut_Man_t *p, Cut_Cut_t *pList)
void Cut_CutRecycleList(Cut_Man_t *p, Cut_Cut_t *pList)
void Cut_TruthCompute(Cut_Man_t *p, Cut_Cut_t *pCut, Cut_Cut_t *pCut0, Cut_Cut_t *pCut1, int fCompl0, int fCompl1)
Cut_Cut_t * Cut_CutAlloc(Cut_Man_t *p)
FUNCTION DECLARATIONS ///.
Extra_MmFixed_t * pMmCuts
int Cut_TableLookup(Cut_HashTable_t *pTable, Cut_Cut_t *pCut, int fStore)
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
#define ABC_NAMESPACE_HEADER_END
int Cut_CutListVerify(Cut_Cut_t *pList)
Cut_Cut_t * Cut_CutMergeTwo(Cut_Man_t *p, Cut_Cut_t *pCut0, Cut_Cut_t *pCut1)
void Cut_CutNumberList(Cut_Cut_t *pList)
void Cut_NodeDoComputeCuts(Cut_Man_t *p, Cut_List_t *pSuper, int Node, int fCompl0, int fCompl1, Cut_Cut_t *pList0, Cut_Cut_t *pList1, int fTriv, int TreeCode)
void Cut_CutPrintMerge(Cut_Cut_t *pCut, Cut_Cut_t *pCut0, Cut_Cut_t *pCut1)