21 #ifndef ABC__aig__ivy__ivy_h
22 #define ABC__aig__ivy__ivy_h
152 #define IVY_CUT_LIMIT 256
153 #define IVY_CUT_INPUT 6
175 #define IVY_LEAF_MASK 255
176 #define IVY_LEAF_BITS 8
182 #define IVY_MIN(a,b) (((a) < (b))? (a) : (b))
183 #define IVY_MAX(a,b) (((a) > (b))? (a) : (b))
187 static inline int Ivy_BitWordNum(
int nBits ) {
return (nBits>>5) + ((nBits&31) > 0); }
188 static inline int Ivy_TruthWordNum(
int nVars ) {
return nVars <= 5 ? 1 : (1 << (nVars - 5)); }
189 static inline int Ivy_InfoHasBit(
unsigned *
p,
int i ) {
return (p[(i)>>5] & (1<<((i) & 31))) > 0; }
190 static inline void Ivy_InfoSetBit(
unsigned *
p,
int i ) { p[(i)>>5] |= (1<<((i) & 31)); }
191 static inline void Ivy_InfoXorBit(
unsigned *
p,
int i ) { p[(i)>>5] ^= (1<<((i) & 31)); }
284 int IdSaved = pObj->
Id;
290 int IdSaved = pBase->
Id;
367 if ( p->pListFree == NULL )
369 pTemp = p->pListFree;
378 p->pListFree = pEntry;
387 #define Ivy_ManForEachPi( p, pObj, i ) \
388 Vec_PtrForEachEntry( Ivy_Obj_t *, p->vPis, pObj, i )
390 #define Ivy_ManForEachPo( p, pObj, i ) \
391 Vec_PtrForEachEntry( Ivy_Obj_t *, p->vPos, pObj, i )
393 #define Ivy_ManForEachObj( p, pObj, i ) \
394 Vec_PtrForEachEntry( Ivy_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL ) {} else
396 #define Ivy_ManForEachCi( p, pObj, i ) \
397 Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsCi(pObj) ) {} else
399 #define Ivy_ManForEachCo( p, pObj, i ) \
400 Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsCo(pObj) ) {} else
402 #define Ivy_ManForEachNode( p, pObj, i ) \
403 Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsNode(pObj) ) {} else
405 #define Ivy_ManForEachLatch( p, pObj, i ) \
406 Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsLatch(pObj) ) {} else
408 #define Ivy_ManForEachNodeVec( p, vIds, pObj, i ) \
409 for ( i = 0; i < Vec_IntSize(vIds) && ((pObj) = Ivy_ManObj(p, Vec_IntEntry(vIds,i))); i++ )
411 #define Ivy_ObjForEachFanout( p, pObj, vArray, pFanout, i ) \
412 for ( i = 0, Ivy_ObjCollectFanouts(p, pObj, vArray); \
413 i < Vec_PtrSize(vArray) && ((pFanout) = (Ivy_Obj_t *)Vec_PtrEntry(vArray,i)); i++ )
static int Ivy_ObjIsHash(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_Latch(Ivy_Man_t *p, Ivy_Obj_t *pObj, Ivy_Init_t Init)
static int Ivy_IsComplement(Ivy_Obj_t *p)
static Ivy_Obj_t * Ivy_EdgeToNode(Ivy_Man_t *p, Ivy_Edge_t Edge)
Ivy_Obj_t * Ivy_Multi_rec(Ivy_Man_t *p, Ivy_Obj_t **ppObjs, int nObjs, Ivy_Type_t Type)
void Ivy_ManHaigSimulate(Ivy_Man_t *p)
static int Ivy_ObjExorFanout(Ivy_Obj_t *pObj)
static int Ivy_ObjTravId(Ivy_Obj_t *pObj)
static int Ivy_BitWordNum(int nBits)
static Ivy_Edge_t Ivy_EdgeFromNode(Ivy_Obj_t *pNode)
int Ivy_ManIsAcyclic(Ivy_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static Ivy_Edge_t Ivy_EdgeNot(Ivy_Edge_t Edge)
static int Ivy_InfoHasBit(unsigned *p, int i)
void Ivy_ObjReplace(Ivy_Man_t *p, Ivy_Obj_t *pObjOld, Ivy_Obj_t *pObjNew, int fDeleteOld, int fFreeTop, int fUpdateLevel)
static Ivy_Obj_t * Ivy_ManConst1(Ivy_Man_t *p)
int Ivy_ManSetLevels(Ivy_Man_t *p, int fHaig)
static Ivy_Obj_t * Ivy_ManPi(Ivy_Man_t *p, int i)
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
void Ivy_ManPrintVerbose(Ivy_Man_t *p, int fHaig)
Vec_Int_t * Ivy_ManLatches(Ivy_Man_t *p)
static int Ivy_ObjLevelNew(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_CanonExor(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1)
static int Ivy_TruthWordNum(int nVars)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Ivy_Obj_t * Ivy_Mux(Ivy_Man_t *p, Ivy_Obj_t *pC, Ivy_Obj_t *p1, Ivy_Obj_t *p0)
static int Ivy_ObjIsTerm(Ivy_Obj_t *pObj)
void Ivy_ManStopFanout(Ivy_Man_t *p)
int Ivy_ObjIsMuxType(Ivy_Obj_t *pObj)
static int Ivy_ObjFaninId1(Ivy_Obj_t *pObj)
static Ivy_Obj_t * Ivy_ManConst0(Ivy_Man_t *p)
int Ivy_TableCountEntries(Ivy_Man_t *p)
static int Ivy_ObjIsPi(Ivy_Obj_t *pObj)
Ivy_Cut_t pCuts[IVY_CUT_LIMIT]
static void Ivy_ObjOverwrite(Ivy_Obj_t *pBase, Ivy_Obj_t *pData)
static int Ivy_ManBufNum(Ivy_Man_t *p)
Vec_Int_t * Ivy_ManDfs(Ivy_Man_t *p)
void Ivy_FraigParamsDefault(Ivy_FraigParams_t *pParams)
FUNCTION DEFINITIONS ///.
Ivy_Obj_t * Ivy_ObjCreate(Ivy_Man_t *p, Ivy_Obj_t *pGhost)
static int Ivy_ManAssertNum(Ivy_Man_t *p)
void Ivy_TruthDsdPrint(FILE *pFile, Vec_Int_t *vTree)
Ivy_Obj_t * Ivy_Exor(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1)
int Ivy_ObjMffcLabel(Ivy_Man_t *p, Ivy_Obj_t *pObj)
static int Ivy_LeafId(int Leaf)
static int Ivy_ManExorNum(Ivy_Man_t *p)
static int Ivy_ObjIsNone(Ivy_Obj_t *pObj)
static int Ivy_ManLatchNum(Ivy_Man_t *p)
void Ivy_ManHaigPostprocess(Ivy_Man_t *p, int fVerbose)
void Ivy_ManMakeSeq(Ivy_Man_t *p, int nLatches, int *pInits)
Ivy_Man_t * Ivy_ManDup(Ivy_Man_t *p)
Ivy_Obj_t * Ivy_Oper(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1, Ivy_Type_t Type)
FUNCTION DEFINITIONS ///.
static int Ivy_ManPoNum(Ivy_Man_t *p)
static int Ivy_ObjIsMarkA(Ivy_Obj_t *pObj)
Ivy_Store_t * Ivy_NodeFindCutsAll(Ivy_Man_t *p, Ivy_Obj_t *pObj, int nLeaves)
void Ivy_TableDelete(Ivy_Man_t *p, Ivy_Obj_t *pObj)
static void Ivy_ObjRefsInc(Ivy_Obj_t *pObj)
int Ivy_ManCheckFanouts(Ivy_Man_t *p)
static int Vec_PtrSize(Vec_Ptr_t *p)
int Ivy_FraigProve(Ivy_Man_t **ppManAig, void *pPars)
Ivy_Man_t * Ivy_FraigMiter(Ivy_Man_t *pManAig, Ivy_FraigParams_t *pParams)
static Ivy_Init_t Ivy_InitNotCond(Ivy_Init_t Init, int fCompl)
static int Ivy_ObjIsLatch(Ivy_Obj_t *pObj)
Ivy_Man_t * Ivy_ManStart()
DECLARATIONS ///.
void Ivy_ManStop(Ivy_Man_t *p)
static int Ivy_ObjPhase(Ivy_Obj_t *pObj)
void Ivy_ObjUpdateLevel_rec(Ivy_Man_t *p, Ivy_Obj_t *pObj)
void Ivy_ManShow(Ivy_Man_t *pMan, int fHaig, Vec_Ptr_t *vBold)
FUNCTION DEFINITIONS ///.
static int Ivy_LeafCreate(int Id, int Lat)
Ivy_Obj_t * Ivy_ObjRecognizeMux(Ivy_Obj_t *pObj, Ivy_Obj_t **ppObjT, Ivy_Obj_t **ppObjE)
static Ivy_Obj_t * Ivy_ObjFanin1(Ivy_Obj_t *pObj)
static Ivy_Obj_t * Ivy_ObjChild1Equiv(Ivy_Obj_t *pObj)
static void Ivy_ObjSetTravId(Ivy_Obj_t *pObj, int TravId)
static int Ivy_ObjLevel(Ivy_Obj_t *pObj)
void Ivy_TableProfile(Ivy_Man_t *p)
Ivy_Obj_t * Ivy_Or(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1)
void Ivy_ManStopMemory(Ivy_Man_t *p)
int Ivy_ManPropagateBuffers(Ivy_Man_t *p, int fUpdateLevel)
void Ivy_ObjAddFanout(Ivy_Man_t *p, Ivy_Obj_t *pObj, Ivy_Obj_t *pFanout)
Vec_Int_t * Ivy_ManDfsSeq(Ivy_Man_t *p, Vec_Int_t **pvLatches)
void Ivy_ManResetLevels(Ivy_Man_t *p)
void Ivy_ObjDelete(Ivy_Man_t *p, Ivy_Obj_t *pObj, int fFreeTop)
void Ivy_ObjDeleteFanout(Ivy_Man_t *p, Ivy_Obj_t *pObj, Ivy_Obj_t *pFanout)
void Ivy_TableInsert(Ivy_Man_t *p, Ivy_Obj_t *pObj)
static Ivy_Obj_t * Ivy_ObjFanin0(Ivy_Obj_t *pObj)
static int Ivy_ObjIsTravIdPrevious(Ivy_Man_t *p, Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_ObjReal(Ivy_Obj_t *pObj)
int Ivy_ManLevels(Ivy_Man_t *p)
static int Ivy_ManObjIdMax(Ivy_Man_t *p)
static int Ivy_ObjFaninId0(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_TableLookup(Ivy_Man_t *p, Ivy_Obj_t *pObj)
FUNCTION DEFINITIONS ///.
void Ivy_ObjConnect(Ivy_Man_t *p, Ivy_Obj_t *pObj, Ivy_Obj_t *pFan0, Ivy_Obj_t *pFan1)
int Ivy_ManCheckFanoutNums(Ivy_Man_t *p)
Ivy_Obj_t * Ivy_ManDsdConstruct(Ivy_Man_t *p, Vec_Int_t *vFront, Vec_Int_t *vTree)
void Ivy_FastMapStop(Ivy_Man_t *pAig)
void Ivy_NodeFixBufferFanins(Ivy_Man_t *p, Ivy_Obj_t *pNode, int fUpdateLevel)
int Ivy_MultiPlus(Ivy_Man_t *p, Vec_Ptr_t *vLeaves, Vec_Ptr_t *vCone, Ivy_Type_t Type, int nLimit, Vec_Ptr_t *vSol)
FUNCTION DEFINITIONS ///.
Ivy_Obj_t * Ivy_ObjCreatePo(Ivy_Man_t *p, Ivy_Obj_t *pDriver)
void Ivy_ManIncrementTravId(Ivy_Man_t *p)
DECLARATIONS ///.
Ivy_Man_t * Ivy_ManResyn(Ivy_Man_t *p, int fUpdateLevel, int fVerbose)
void Ivy_ManHaigTrasfer(Ivy_Man_t *p, Ivy_Man_t *pNew)
static void Ivy_ObjSetTravIdPrevious(Ivy_Man_t *p, Ivy_Obj_t *pObj)
static void Ivy_ObjSetMarkA(Ivy_Obj_t *pObj)
static int Ivy_ObjFaninC1(Ivy_Obj_t *pObj)
static Ivy_Obj_t * Ivy_ManObj(Ivy_Man_t *p, int i)
static void Ivy_ObjClearMarkA(Ivy_Obj_t *pObj)
static Ivy_Obj_t * Ivy_ObjChild0Equiv(Ivy_Obj_t *pObj)
static int Ivy_ObjRefs(Ivy_Obj_t *pObj)
void Ivy_ManHaigCreateChoice(Ivy_Man_t *p, Ivy_Obj_t *pObjOld, Ivy_Obj_t *pObjNew)
void Ivy_FastMapPerform(Ivy_Man_t *pAig, int nLimit, int fRecovery, int fVerbose)
FUNCTION DEFINITIONS ///.
static void Ivy_ObjRefsDec(Ivy_Obj_t *pObj)
int Ivy_ManRewriteSeq(Ivy_Man_t *p, int fUseZeroCost, int fVerbose)
FUNCTION DEFINITIONS ///.
Ivy_Obj_t * Ivy_Multi(Ivy_Man_t *p, Ivy_Obj_t **pArgs, int nArgs, Ivy_Type_t Type)
int Ivy_TruthDsd(unsigned uTruth, Vec_Int_t *vTree)
FUNCTION DEFINITIONS ///.
Ivy_Man_t * Ivy_ManRwsat(Ivy_Man_t *pMan, int fVerbose)
int pArray[IVY_CUT_INPUT]
static Ivy_Edge_t Ivy_EdgeNotCond(Ivy_Edge_t Edge, int fCond)
static int Ivy_ObjIsOneFanin(Ivy_Obj_t *pObj)
static Ivy_Obj_t * Ivy_Regular(Ivy_Obj_t *p)
static int Ivy_ObjIsCo(Ivy_Obj_t *pObj)
static Ivy_Type_t Ivy_ObjType(Ivy_Obj_t *pObj)
static int Ivy_EdgeIsComplement(Ivy_Edge_t Edge)
void Ivy_ObjPatchFanout(Ivy_Man_t *p, Ivy_Obj_t *pObj, Ivy_Obj_t *pFanoutOld, Ivy_Obj_t *pFanoutNew)
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
static int Ivy_ObjIsTravIdCurrent(Ivy_Man_t *p, Ivy_Obj_t *pObj)
static int Ivy_ObjIsNode(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_CanonAnd(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1)
static Ivy_Obj_t * Ivy_ObjChild0(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_CanonLatch(Ivy_Man_t *p, Ivy_Obj_t *pObj, Ivy_Init_t Init)
Ivy_Obj_t * Ivy_NodeBalanceBuildSuper(Ivy_Man_t *p, Vec_Ptr_t *vSuper, Ivy_Type_t Type, int fUpdateLevel)
void Ivy_ManCollectCut(Ivy_Man_t *p, Ivy_Obj_t *pRoot, Vec_Int_t *vLeaves, Vec_Int_t *vNodes)
void Ivy_ManPrintStats(Ivy_Man_t *p)
static void Ivy_InfoSetBit(unsigned *p, int i)
#define ABC_NAMESPACE_HEADER_END
void Ivy_TruthDsdComputePrint(unsigned uTruth)
int Ivy_ManCheckChoices(Ivy_Man_t *p)
static void Ivy_ObjClean(Ivy_Obj_t *pObj)
void Ivy_ManStartFanout(Ivy_Man_t *p)
FUNCTION DEFINITIONS ///.
int Ivy_ManRewriteAlg(Ivy_Man_t *p, int fUpdateLevel, int fUseZeroCost)
FUNCTION DEFINITIONS ///.
static Ivy_Init_t Ivy_InitAnd(Ivy_Init_t InitA, Ivy_Init_t InitB)
Ivy_Man_t * Ivy_ManFrames(Ivy_Man_t *pMan, int nLatches, int nFrames, int fInit, Vec_Ptr_t **pvMapping)
Vec_Int_t * Ivy_ManRequiredLevels(Ivy_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Ivy_Man_t_ Ivy_Man_t
INCLUDES ///.
static int Ivy_ManPiNum(Ivy_Man_t *p)
void Ivy_ManHaigStart(Ivy_Man_t *p, int fVerbose)
FUNCTION DEFINITIONS ///.
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
void Ivy_ObjDelete_rec(Ivy_Man_t *p, Ivy_Obj_t *pObj, int fFreeTop)
unsigned Ivy_TruthDsdCompute(Vec_Int_t *vTree)
static Ivy_Obj_t * Ivy_ObjCreateGhost(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1, Ivy_Type_t Type, Ivy_Init_t Init)
void Ivy_ManAddMemory(Ivy_Man_t *p)
void Ivy_ManHaigStop(Ivy_Man_t *p)
static int Ivy_ObjIsAnd(Ivy_Obj_t *pObj)
static Ivy_Edge_t Ivy_EdgeCreate(int Id, int fCompl)
void Ivy_ManCleanTravId(Ivy_Man_t *p)
int Ivy_ObjFanoutNum(Ivy_Man_t *p, Ivy_Obj_t *pObj)
static int Ivy_ObjIsExor(Ivy_Obj_t *pObj)
void Ivy_ObjDisconnect(Ivy_Man_t *p, Ivy_Obj_t *pObj)
static int Ivy_ObjIsConst1(Ivy_Obj_t *pObj)
static void Ivy_InfoXorBit(unsigned *p, int i)
static int Ivy_ObjWhatFanin(Ivy_Obj_t *pObj, Ivy_Obj_t *pFanin)
Ivy_Man_t * Ivy_ManStartFrom(Ivy_Man_t *p)
static Ivy_Obj_t * Ivy_ManGhost(Ivy_Man_t *p)
static void Ivy_ManRecycleMemory(Ivy_Man_t *p, Ivy_Obj_t *pEntry)
static int Ivy_ManHashObjNum(Ivy_Man_t *p)
static Ivy_Obj_t * Ivy_Not(Ivy_Obj_t *p)
static int Ivy_ObjIsGhost(Ivy_Obj_t *pObj)
static Ivy_Obj_t * Ivy_NotCond(Ivy_Obj_t *p, int c)
void Ivy_ManSeqFindCut(Ivy_Man_t *p, Ivy_Obj_t *pNode, Vec_Int_t *vFront, Vec_Int_t *vInside, int nSize)
static int Ivy_ObjIsBuf(Ivy_Obj_t *pObj)
static int Ivy_ManObjNum(Ivy_Man_t *p)
static Ivy_Init_t Ivy_InitExor(Ivy_Init_t InitA, Ivy_Init_t InitB)
static Ivy_Obj_t * Ivy_ObjChild1(Ivy_Obj_t *pObj)
Ivy_Man_t * Ivy_FraigPerform(Ivy_Man_t *pManAig, Ivy_FraigParams_t *pParams)
static int Ivy_ObjFaninPhase(Ivy_Obj_t *pObj)
void Ivy_FastMapReverseLevel(Ivy_Man_t *pAig)
static int Ivy_ObjIsPo(Ivy_Obj_t *pObj)
void Ivy_ObjUpdateLevelR_rec(Ivy_Man_t *p, Ivy_Obj_t *pObj, int ReqNew)
void Ivy_TableUpdate(Ivy_Man_t *p, Ivy_Obj_t *pObj, int ObjIdNew)
static int Ivy_ManAndNum(Ivy_Man_t *p)
Ivy_Obj_t * Ivy_Miter(Ivy_Man_t *p, Vec_Ptr_t *vPairs)
static int Ivy_ObjIsAssert(Ivy_Obj_t *pObj)
Ivy_Man_t * Ivy_ManResyn0(Ivy_Man_t *p, int fUpdateLevel, int fVerbose)
DECLARATIONS ///.
static Ivy_Edge_t Ivy_EdgeRegular(Ivy_Edge_t Edge)
static int Ivy_EdgeId(Ivy_Edge_t Edge)
Ivy_Obj_t * Ivy_ObjCreatePi(Ivy_Man_t *p)
DECLARATIONS ///.
static int Ivy_ObjIsCi(Ivy_Obj_t *pObj)
int Ivy_ManSeqRewrite(Ivy_Man_t *p, int fUpdateLevel, int fUseZeroCost)
Ivy_Man_t * Ivy_ManBalance(Ivy_Man_t *p, int fUpdateLevel)
FUNCTION DECLARATIONS ///.
Ivy_Obj_t * Ivy_Maj(Ivy_Man_t *p, Ivy_Obj_t *pA, Ivy_Obj_t *pB, Ivy_Obj_t *pC)
static int Ivy_ManNodeNum(Ivy_Man_t *p)
int Ivy_ManRewritePre(Ivy_Man_t *p, int fUpdateLevel, int fUseZeroCost, int fVerbose)
FUNCTION DEFINITIONS ///.
static Ivy_Obj_t * Ivy_ManPo(Ivy_Man_t *p, int i)
void Ivy_ObjPrintVerbose(Ivy_Man_t *p, Ivy_Obj_t *pObj, int fHaig)
static Ivy_Obj_t * Ivy_ObjEquiv(Ivy_Obj_t *pObj)
int Ivy_CutTruthPrint(Ivy_Man_t *p, Ivy_Cut_t *pCut, unsigned uTruth)
Ivy_Obj_t * Ivy_MultiBalance_rec(Ivy_Man_t *p, Ivy_Obj_t **pArgs, int nArgs, Ivy_Type_t Type)
void Ivy_FastMapReadSupp(Ivy_Man_t *pAig, Ivy_Obj_t *pObj, Vec_Int_t *vLeaves)
Vec_Vec_t * Ivy_ManLevelize(Ivy_Man_t *p)
static Ivy_Obj_t * Ivy_ManFetchMemory(Ivy_Man_t *p)
Ivy_Obj_t * Ivy_Multi1(Ivy_Man_t *p, Ivy_Obj_t **pArgs, int nArgs, Ivy_Type_t Type)
void Ivy_ManStartMemory(Ivy_Man_t *p)
FUNCTION DEFINITIONS ///.
static int Ivy_LeafLat(int Leaf)
static int Ivy_ObjFaninC0(Ivy_Obj_t *pObj)
void Ivy_ObjCollectFanouts(Ivy_Man_t *p, Ivy_Obj_t *pObj, Vec_Ptr_t *vArray)
static Ivy_Init_t Ivy_ObjInit(Ivy_Obj_t *pObj)
Ivy_Obj_t * Ivy_And(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1)
int Ivy_ManCheck(Ivy_Man_t *p)
DECLARATIONS ///.
static int Ivy_ObjFanoutC(Ivy_Obj_t *pObj, Ivy_Obj_t *pFanout)
int Ivy_ManCleanup(Ivy_Man_t *p)
static int Ivy_ObjId(Ivy_Obj_t *pObj)
static void Ivy_ObjSetTravIdCurrent(Ivy_Man_t *p, Ivy_Obj_t *pObj)
static int Ivy_ManGetCost(Ivy_Man_t *p)
Ivy_Obj_t * Ivy_ObjReadFirstFanout(Ivy_Man_t *p, Ivy_Obj_t *pObj)
void Ivy_ManCollectCone(Ivy_Obj_t *pObj, Vec_Ptr_t *vFront, Vec_Ptr_t *vCone)
unsigned * Ivy_ManCutTruth(Ivy_Man_t *p, Ivy_Obj_t *pRoot, Vec_Int_t *vLeaves, Vec_Int_t *vNodes, Vec_Int_t *vTruth)
void Ivy_ObjPatchFanin0(Ivy_Man_t *p, Ivy_Obj_t *pObj, Ivy_Obj_t *pFaninNew)
void Ivy_ManHaigCreateObj(Ivy_Man_t *p, Ivy_Obj_t *pObj)