104 printf(
"Skipping computation of truth table for more than 8 inputs.\n" );
131 printf(
"Cut computation statistics with oracle:\n" );
245 pTruth[i] = 0xAAAAAAAA;
269 for ( i = k = c = 0; c < Limit; c++ )
271 if ( k == (
int)pCut1->
nLeaves )
273 if ( i == (
int)pCut0->
nLeaves )
281 if ( i == (
int)pCut0->
nLeaves )
283 if ( k == (
int)pCut1->
nLeaves )
322 Cut_Cut_t * pList = NULL, ** ppTail = &pList;
323 Cut_Cut_t * pCut, * pCut0, * pCut1, * pList0, * pList1;
324 int iCutStart, nCuts, i, Entry;
330 assert( pList0 && pList1 );
351 ppTail = &pCut->
pNext;
353 for ( i = 1; i < nCuts; i++ )
360 ppTail = &pCut->
pNext;
413 if ( --nFanouts == 0 )
void Cut_OracleStop(Cut_Oracle_t *p)
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)
#define Cut_ListForEachCutSafe(pList, pCut, pCut2)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static void Vec_PtrFill(Vec_Ptr_t *p, int nSize, void *Entry)
Extra_MmFixed_t * pMmCuts
static int Cut_TruthWords(int nVarsMax)
static unsigned * Cut_CutReadTruth(Cut_Cut_t *p)
static Cut_Cut_t * Cut_CutMerge(Cut_Oracle_t *p, Cut_Cut_t *pCut0, Cut_Cut_t *pCut1)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
#define ABC_ALLOC(type, num)
static abctime Abc_Clock()
static Cut_Cut_t * Cut_CutTriv(Cut_Oracle_t *p, int Node)
static Cut_Cut_t * Cut_CutStart(Cut_Oracle_t *p)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
struct Cut_CutStruct_t_ Cut_Cut_t
void Cut_OracleSetFanoutCounts(Cut_Oracle_t *p, Vec_Int_t *vFanCounts)
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
int Cut_OracleReadDrop(Cut_Oracle_t *p)
static void Vec_PtrWriteEntry(Vec_Ptr_t *p, int i, void *Entry)
#define ABC_NAMESPACE_IMPL_START
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
Cut_Oracle_t * Cut_OracleStart(Cut_Man_t *pMan)
FUNCTION DEFINITIONS ///.
Cut_Cut_t * Cut_OracleComputeCuts(Cut_Oracle_t *p, int Node, int Node0, int Node1, int fCompl0, int fCompl1)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
void Cut_OracleTryDroppingCuts(Cut_Oracle_t *p, int Node)
void Cut_OracleNodeSetTriv(Cut_Oracle_t *p, int Node)
static void Vec_PtrClear(Vec_Ptr_t *p)
#define Cut_ListForEachCut(pList, pCut)
static void Vec_IntFree(Vec_Int_t *p)
static void Vec_PtrFree(Vec_Ptr_t *p)
void Cut_OracleFreeCuts(Cut_Oracle_t *p, int Node)