120 int i, LevelsMax, Level0, Level1;
303 return (
int)(pObj == pPivot);
358 if ( pSour == pDest )
394 pObj->
pData = pObj == pVar ? pFunc : pObj;
420 printf(
"Hop_Compose(): The PI variable %d is not defined.\n", iVar );
474 printf(
"Hop_Complement(): The PI variable %d is not defined.\n", iVar );
525 printf(
"Hop_Remap(): The number of variables (%d) is more than the manager size (%d).\n", nVars,
Hop_ManPiNum(p) );
539 if ( uSupp & (1 << i) )
544 assert( k > 0 && k < nVars );
573 if ( i == nRootVars )
int Hop_ObjFanoutCount_rec(Hop_Obj_t *pObj, Hop_Obj_t *pPivot)
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
Hop_Obj_t * Hop_Remap(Hop_Man_t *p, Hop_Obj_t *pRoot, unsigned uSupp, int nVars)
static Hop_Obj_t * Hop_ManConst1(Hop_Man_t *p)
Hop_Obj_t * Hop_And(Hop_Man_t *p, Hop_Obj_t *p0, Hop_Obj_t *p1)
static int Hop_ObjIsPi(Hop_Obj_t *pObj)
#define Hop_ManForEachNode(p, pObj, i)
Vec_Ptr_t * Hop_ManDfs(Hop_Man_t *p)
void Hop_Complement_rec(Hop_Man_t *p, Hop_Obj_t *pObj, Hop_Obj_t *pVar)
static int Hop_ObjIsNode(Hop_Obj_t *pObj)
#define Hop_ManForEachPi(p, pObj, i)
ITERATORS ///.
#define Hop_ManForEachPo(p, pObj, i)
int Hop_DagSize(Hop_Obj_t *pObj)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
void Hop_Remap_rec(Hop_Man_t *p, Hop_Obj_t *pObj)
static int Abc_MaxInt(int a, int b)
static Hop_Obj_t * Hop_Not(Hop_Obj_t *p)
void Hop_Transfer_rec(Hop_Man_t *pDest, Hop_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START void Hop_ManDfs_rec(Hop_Obj_t *pObj, Vec_Ptr_t *vNodes)
DECLARATIONS ///.
static Hop_Obj_t * Hop_ManPi(Hop_Man_t *p, int i)
void Hop_ManCreateRefs(Hop_Man_t *p)
int Hop_ObjFanoutCount(Hop_Obj_t *pObj, Hop_Obj_t *pPivot)
static int Hop_ObjPhaseCompl(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjChild1Copy(Hop_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_END
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjChild0Copy(Hop_Obj_t *pObj)
static void Hop_ObjClearMarkA(Hop_Obj_t *pObj)
static int Hop_ObjIsExor(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
void Hop_ConeMark_rec(Hop_Obj_t *pObj)
Vec_Ptr_t * Hop_ManDfsNode(Hop_Man_t *p, Hop_Obj_t *pNode)
static int Hop_ObjIsConst1(Hop_Obj_t *pObj)
static void Hop_ObjClearRef(Hop_Obj_t *pObj)
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_START
void Hop_ConeCleanAndMark_rec(Hop_Obj_t *pObj)
Hop_Obj_t * Hop_Transfer(Hop_Man_t *pSour, Hop_Man_t *pDest, Hop_Obj_t *pRoot, int nVars)
int Hop_ManCountLevels(Hop_Man_t *p)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static Hop_Obj_t * Hop_NotCond(Hop_Obj_t *p, int c)
Hop_Obj_t * Hop_Permute(Hop_Man_t *p, Hop_Obj_t *pRoot, int nRootVars, int *pPermute)
static void Hop_ObjRef(Hop_Obj_t *pObj)
void Hop_Compose_rec(Hop_Man_t *p, Hop_Obj_t *pObj, Hop_Obj_t *pFunc, Hop_Obj_t *pVar)
Hop_Obj_t * Hop_Compose(Hop_Man_t *p, Hop_Obj_t *pRoot, Hop_Obj_t *pFunc, int iVar)
static Hop_Obj_t * Hop_ManConst0(Hop_Man_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static Hop_Obj_t * Hop_Regular(Hop_Obj_t *p)
int Hop_ConeCountAndMark_rec(Hop_Obj_t *pObj)
static int Hop_ManNodeNum(Hop_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Hop_Man_t_ Hop_Man_t
INCLUDES ///.
Hop_Obj_t * Hop_IthVar(Hop_Man_t *p, int i)
FUNCTION DEFINITIONS ///.
Hop_Obj_t * Hop_Complement(Hop_Man_t *p, Hop_Obj_t *pRoot, int iVar)
static void Vec_PtrFree(Vec_Ptr_t *p)
static int Hop_ManPiNum(Hop_Man_t *p)