80 clock_t clk = clock();
113 if ( pParams->
fDrop )
124 if ( pParams->
fDrop )
133 for ( pNode = pObj; pNode; pNode = pNode->
pData )
141 PRT(
"Total", clock() - clk );
167 clock_t clk = clock();
348 int fDagNode, fTriv, TreeCode = 0;
358 fTriv = fDagNode || !fDag;
406 fTriv = pObj->
fMarkC ? 0 : fTriv;
461 printf(
"Cuts of the network:\n" );
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
void Abc_NtkBalanceAttach(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static Abc_Obj_t * Abc_ObjFanin1(Abc_Obj_t *pObj)
static int Abc_NtkObjNumMax(Abc_Ntk_t *pNtk)
static int Abc_ObjFaninC1(Abc_Obj_t *pObj)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Abc_NodeGetCutsSeq(void *p, Abc_Obj_t *pObj, int fTriv)
Cut_Cut_t * Cut_OracleComputeCuts(Cut_Oracle_t *p, int Node, int Node0, int Node1, int fCompl0, int fCompl1)
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
void Cut_ManSetNodeAttrs(Cut_Man_t *p, Vec_Int_t *vFanCounts)
static int Abc_ObjFaninNum(Abc_Obj_t *pObj)
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
int Cut_OracleReadDrop(Cut_Oracle_t *p)
void Cut_NodeSetTriv(Cut_Man_t *p, int Node)
static Abc_Obj_t * Abc_NtkObj(Abc_Ntk_t *pNtk, int i)
static int Vec_PtrSize(Vec_Ptr_t *p)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
void Cut_ManSetFanoutCounts(Cut_Man_t *p, Vec_Int_t *vFanCounts)
static int Abc_ObjFaninId0(Abc_Obj_t *pObj)
static int Abc_ObjIsCo(Abc_Obj_t *pObj)
void * Abc_NodeGetCutsRecursive(void *p, Abc_Obj_t *pObj, int fDag, int fTree)
ABC_DLL int Abc_NodeIsMuxControlType(Abc_Obj_t *pNode)
void Abc_NtkCutsOracle(Abc_Ntk_t *pNtk, Cut_Oracle_t *p)
void Cut_OracleTryDroppingCuts(Cut_Oracle_t *p, int Node)
int nTotal
DECLARATIONS ///.
Cut_Man_t * Abc_NtkCuts(Abc_Ntk_t *pNtk, Cut_Params_t *pParams)
FUNCTION DEFINITIONS ///.
void Cut_ManIncrementDagNodes(Cut_Man_t *p)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
static Vec_Int_t * Vec_IntStart(int nSize)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Cut_Cut_t * Cut_NodeUnionCuts(Cut_Man_t *p, Vec_Int_t *vNodes)
void Cut_NodeFreeCuts(Cut_Man_t *p, int Node)
static void Abc_NtkPrintCuts_(void *p, Abc_Ntk_t *pNtk, int fSeq)
void Cut_NodeTryDroppingCuts(Cut_Man_t *p, int Node)
static int Vec_IntEntry(Vec_Int_t *p, int i)
Cut_Man_t * Cut_ManStart(Cut_Params_t *pParams)
FUNCTION DEFINITIONS ///.
#define ABC_NAMESPACE_IMPL_END
void * Abc_NodeReadCuts(void *p, Abc_Obj_t *pObj)
Cut_Man_t * Abc_NtkSeqCuts(Abc_Ntk_t *pNtk, Cut_Params_t *pParams)
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)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
void Cut_CutPrintList(Cut_Cut_t *pList, int fSeq)
void Cut_OracleNodeSetTriv(Cut_Oracle_t *p, int Node)
ABC_DLL Vec_Ptr_t * Abc_AigDfs(Abc_Ntk_t *pNtk, int fCollectAll, int fCollectCos)
Cut_Cut_t * Cut_NodeComputeCuts(Cut_Man_t *p, int Node, int Node0, int Node1, int fCompl0, int fCompl1, int fTriv, int TreeCode)
#define ABC_NAMESPACE_IMPL_START
static int Abc_AigNodeIsChoice(Abc_Obj_t *pNode)
#define Abc_NtkForEachCi(pNtk, pCi, i)
void Cut_OracleSetFanoutCounts(Cut_Oracle_t *p, Vec_Int_t *vFanCounts)
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
ABC_DLL Vec_Int_t * Abc_NtkFanoutCounts(Abc_Ntk_t *pNtk)
void Abc_NtkBalanceDetach(Abc_Ntk_t *pNtk)
static ABC_NAMESPACE_IMPL_START void Abc_NtkPrintCuts(void *p, Abc_Ntk_t *pNtk, int fSeq)
DECLARATIONS ///.
void * Abc_NodeGetCuts(void *p, Abc_Obj_t *pObj, int fDag, int fTree)
static int Abc_ObjFaninId1(Abc_Obj_t *pObj)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static void Vec_IntClear(Vec_Int_t *p)
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
static int Abc_NtkObjNum(Abc_Ntk_t *pNtk)
void Abc_NodeFreeCuts(void *p, Abc_Obj_t *pObj)
Cut_Cut_t * Cut_NodeReadCutsNew(Cut_Man_t *p, int Node)
MACRO DEFINITIONS ///.
Cut_Params_t * Cut_ManReadParams(Cut_Man_t *p)
Vec_Int_t * Abc_NtkGetNodeAttributes(Abc_Ntk_t *pNtk)
Vec_Int_t * Cut_ManReadNodeAttrs(Cut_Man_t *p)
static void Vec_PtrFree(Vec_Ptr_t *p)