150 Aig_Obj_t * pObjMan, * pObjMiter, * pObjRepr;
163 pObjRepr = pObjRepr? pObjRepr : pObjMiter;
187 assert( ClassNumber != 0 );
188 if ( ClassNumber > 0 )
228 Vec_Int_t * vId2Lit1, * vId2Lit2, * vCounts0, * vCounts1, * vClassC, * vClass2Num;
307 pPars->nBTLimit = nConflictLimit;
308 pPars->fVerbose = fVerbose;
339 printf(
"Class %5d : ", i );
365 int NegAll[2] = {0}, PosAll[2] = {0}, PairsAll = 0, PairsOne = 0;
395 PairsAll +=
Abc_MinInt(Neg[0] + Pos[0], Neg[1] + Pos[1]);
398 printf(
"Total number of equiv classes = %7d.\n",
Vec_PtrSize(vRes) );
399 printf(
"Participating nodes from both networks = %7d.\n", NegAll[0]+PosAll[0]+NegAll[1]+PosAll[1] );
400 printf(
"Participating nodes from the first network = %7d. (%7.2f %% of nodes)\n", NegAll[0]+PosAll[0], 100.0*(NegAll[0]+PosAll[0])/(nNodes0+1) );
401 printf(
"Participating nodes from the second network = %7d. (%7.2f %% of nodes)\n", NegAll[1]+PosAll[1], 100.0*(NegAll[1]+PosAll[1])/(nNodes1+1) );
402 printf(
"Node pairs (any polarity) = %7d. (%7.2f %% of names can be moved)\n", PairsAll, 100.0*PairsAll/(nNodes0+1) );
403 printf(
"Node pairs (same polarity) = %7d. (%7.2f %% of names can be moved)\n", PairsOne, 100.0*PairsOne/(nNodes0+1) );
404 ABC_PRT(
"Total runtime", Time );
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
void Abc_NtkDressPrintStats(Vec_Ptr_t *vRes, int nNodes0, int nNodes1, abctime Time)
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
int Abc_ObjEquivId2NtkId(int EquivId)
static Aig_Obj_t * Aig_ObjRepr(Aig_Man_t *p, Aig_Obj_t *pObj)
static Aig_Type_t Aig_ObjType(Aig_Obj_t *pObj)
void Dch_ManSetDefaultParams(Dch_Pars_t *p)
DECLARATIONS ///.
static int Abc_NtkObjNumMax(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Aig_ManStop(Aig_Man_t *p)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
Vec_Int_t * Abc_ObjDressClass(Vec_Ptr_t *vRes, Vec_Int_t *vClass2Num, int Class)
typedefABC_NAMESPACE_HEADER_START struct Dch_Pars_t_ Dch_Pars_t
INCLUDES ///.
static abctime Abc_Clock()
static Abc_Obj_t * Abc_NtkObj(Abc_Ntk_t *pNtk, int i)
static int Vec_PtrSize(Vec_Ptr_t *p)
static void Vec_VecFree(Vec_Vec_t *p)
Vec_Int_t * Abc_NtkDressMapClasses(Aig_Man_t *pMiter, Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
static int Aig_ManCoNum(Aig_Man_t *p)
static int Abc_MinInt(int a, int b)
static Vec_Int_t * Vec_IntStart(int nSize)
#define Aig_ManForEachNode(p, pObj, i)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static void * Vec_PtrEntryLast(Vec_Ptr_t *p)
static void Vec_IntAddToEntry(Vec_Int_t *p, int i, int Addition)
static Aig_Obj_t * Aig_ManCi(Aig_Man_t *p, int i)
static unsigned Abc_ObjType(Abc_Obj_t *pObj)
static int Vec_IntEntry(Vec_Int_t *p, int i)
void Abc_NtkDressMapSetPolarity(Abc_Ntk_t *pNtk)
static int Aig_ManCiNum(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_END
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
static Aig_Obj_t * Aig_ObjChild1Copy(Aig_Obj_t *pObj)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
static Aig_Obj_t * Aig_ObjChild0Copy(Aig_Obj_t *pObj)
Vec_Ptr_t * Abc_NtkDressMapIds(Aig_Man_t *pMiter, Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2)
void Abc_NtkDressPrintEquivs(Vec_Ptr_t *vRes)
static int Aig_ManObjNumMax(Aig_Man_t *p)
#define Abc_NtkForEachNode(pNtk, pNode, i)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_START
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static Aig_Obj_t * Aig_ManCo(Aig_Man_t *p, int i)
static Abc_Obj_t * Abc_ObjRegular(Abc_Obj_t *p)
void Abc_NtkDress2(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nConflictLimit, int fVerbose)
static int Vec_IntSize(Vec_Int_t *p)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Aig_Man_t * Abc_NtkToDar(Abc_Ntk_t *pNtk, int fExors, int fRegisters)
DECLARATIONS ///.
Aig_Man_t * Aig_ManCreateDualOutputMiter(Aig_Man_t *p1, Aig_Man_t *p2)
FUNCTION DEFINITIONS ///.
static int Aig_ObjId(Aig_Obj_t *pObj)
int Abc_ObjDressMakeId(Abc_Ntk_t *pNtk, int ObjId, int iNtk)
void Dch_ComputeEquivalences(Aig_Man_t *pAig, Dch_Pars_t *pPars)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static int Abc_ObjIsComplement(Abc_Obj_t *p)
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
int Abc_ObjEquivId2Polar(int EquivId)
int Aig_ManCleanup(Aig_Man_t *p)
ABC_NAMESPACE_IMPL_START int Abc_ObjEquivId2ObjId(int EquivId)
Vec_Ptr_t * Abc_NtkDressComputeEquivs(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nConflictLimit, int fVerbose)