21 #ifndef ABC__opt__cut__cut_h
22 #define ABC__opt__cut__cut_h
38 #define CUT_SIZE_MIN 3 // the min K of the K-feasible cut computation
39 #define CUT_SIZE_MAX 12 // the max K of the K-feasible cut computation
41 #define CUT_SHIFT 8 // the number of bits for storing latch number in the cut leaves
42 #define CUT_MASK 0xFF // the mask to get the stored latch number
97 for ( i = (p->
nVarsMax <= 5) ? 0 : ((1 << (p->
nVarsMax - 5)) - 1); i >= 0; i-- )
140 extern void Cut_NodeComputeCutsSeq(
Cut_Man_t *
p,
int Node,
int Node0,
int Node1,
int fCompl0,
int fCompl1,
int nLat0,
int nLat1,
int fTriv,
int CutSetNum );
Cut_Cut_t * Cut_NodeReadCutsTemp(Cut_Man_t *p, int Node)
Cut_Cut_t * Cut_NodeReadCutsOld(Cut_Man_t *p, int Node)
static int * Cut_CutReadLeaves(Cut_Cut_t *p)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Cut_TruthNCanonicize(Cut_Cut_t *pCut)
Cut_Cut_t * Cut_OracleComputeCuts(Cut_Oracle_t *p, int Node, int Node0, int Node1, int fCompl0, int fCompl1)
void Cut_CellLoad()
FUNCTION DEFINITIONS ///.
void Cut_ManSetNodeAttrs(Cut_Man_t *p, Vec_Int_t *vFanCounts)
static unsigned * Cut_CutReadTruth(Cut_Cut_t *p)
static void Cut_CutWriteTruth(Cut_Cut_t *p, unsigned *puTruth)
Cut_Oracle_t * Cut_OracleStart(Cut_Man_t *pMan)
FUNCTION DEFINITIONS ///.
int Cut_OracleReadDrop(Cut_Oracle_t *p)
int Cut_CutCountList(Cut_Cut_t *pList)
void Cut_OracleStop(Cut_Oracle_t *p)
void Cut_NodeSetTriv(Cut_Man_t *p, int Node)
void Cut_NodeWriteCutsTemp(Cut_Man_t *p, int Node, Cut_Cut_t *pList)
void Cut_ManSetFanoutCounts(Cut_Man_t *p, Vec_Int_t *vFanCounts)
int Cut_ManMappingArea_rec(Cut_Man_t *p, int Node)
void Cut_NodeWriteCutsOld(Cut_Man_t *p, int Node, Cut_Cut_t *pList)
void Cut_OracleTryDroppingCuts(Cut_Oracle_t *p, int Node)
void Cut_ManIncrementDagNodes(Cut_Man_t *p)
static int Cut_CutReadLeaveNum(Cut_Cut_t *p)
Cut_Cut_t * Cut_NodeUnionCuts(Cut_Man_t *p, Vec_Int_t *vNodes)
int Cut_NodeTempTransferToNew(Cut_Man_t *p, int Node, int CutSetNum)
void Cut_NodeFreeCuts(Cut_Man_t *p, int Node)
void Cut_ManPrintStats(Cut_Man_t *p)
void Cut_ManStop(Cut_Man_t *p)
void Cut_NodeOldTransferToNew(Cut_Man_t *p, int Node)
void Cut_NodeTryDroppingCuts(Cut_Man_t *p, int Node)
Cut_Man_t * Cut_ManStart(Cut_Params_t *pParams)
FUNCTION DEFINITIONS ///.
void Cut_NodeComputeCutsSeq(Cut_Man_t *p, int Node, int Node0, int Node1, int fCompl0, int fCompl1, int nLat0, int nLat1, int fTriv, int CutSetNum)
void Cut_CellDumpToFile()
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
void Cut_CutPrint(Cut_Cut_t *pCut, int fSeq)
void Cut_CutPrintList(Cut_Cut_t *pList, int fSeq)
#define ABC_NAMESPACE_HEADER_END
void Cut_OracleNodeSetTriv(Cut_Oracle_t *p, int Node)
Cut_Cut_t * Cut_NodeComputeCuts(Cut_Man_t *p, int Node, int Node0, int Node1, int fCompl0, int fCompl1, int fTriv, int TreeCode)
void Cut_CellPrecompute()
void Cut_OracleSetFanoutCounts(Cut_Oracle_t *p, Vec_Int_t *vFanCounts)
void Cut_ManPrintStatsToFile(Cut_Man_t *p, char *pFileName, abctime TimeTotal)
void Cut_NodeNewMergeWithOld(Cut_Man_t *p, int Node)
Cut_Cut_t * Cut_NodeUnionCutsSeq(Cut_Man_t *p, Vec_Int_t *vNodes, int CutSetNum, int fFirst)
void Cut_NodeWriteCutsNew(Cut_Man_t *p, int Node, Cut_Cut_t *pList)
Cut_Cut_t * Cut_NodeReadCutsNew(Cut_Man_t *p, int Node)
MACRO DEFINITIONS ///.
Cut_Params_t * Cut_ManReadParams(Cut_Man_t *p)
int Cut_CellTruthLookup(unsigned *pTruth, int nVars)
Vec_Int_t * Cut_ManReadNodeAttrs(Cut_Man_t *p)
int Cut_ManReadVarsMax(Cut_Man_t *p)