37 static inline int *
Gia_FanoutObj(
int * pData,
int ObjId ) {
return pData + 5*ObjId; }
38 static inline int *
Gia_FanoutPrev(
int * pData,
int iFan ) {
return pData + 5*(iFan >> 1) + 1 + (iFan & 1); }
39 static inline int *
Gia_FanoutNext(
int * pData,
int iFan ) {
return pData + 5*(iFan >> 1) + 3 + (iFan & 1); }
46 #define Gia_ObjForEachFanout( p, pObj, pFanout, iFan, i ) \
47 for ( assert(p->pFanData), i = 0; (i < (int)(pObj)->nRefs) && \
48 (((iFan) = i? Gia_ObjFanoutNext(p, iFan) : Gia_ObjFanout0Int(p, Gia_ObjId(p, pObj))), 1) && \
49 (((pFanout) = Gia_ManObj(p, iFan>>1)), 1); i++ )
118 int iFan, * pFirst, * pPrevC, * pNextC, * pPrev, * pNext;
144 assert( *pNext == *pFirst );
165 int iFan, * pFirst, * pPrevC, * pNextC, * pPrev, * pNext;
178 if ( *pFirst == iFan )
180 if ( *pNextC == iFan )
316 printf(
" Fanouts : " );
void Gia_ManCreateRefs(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjChild0(Gia_Obj_t *pObj)
static int Gia_ObjFanoutNext(Gia_Man_t *p, int iFan)
static int * Gia_FanoutNext(int *pData, int iFan)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
#define ABC_REALLOC(type, obj, num)
static Vec_Int_t * Vec_IntAllocArray(int *pArray, int nSize)
static int * Gia_FanoutPrev(int *pData, int iFan)
#define ABC_ALLOC(type, num)
static int * Gia_FanoutObj(int *pData, int ObjId)
static int Abc_MaxInt(int a, int b)
void Gia_ManStaticFanoutTest(Gia_Man_t *p)
Vec_Int_t * Gia_ManStartFanoutMap(Gia_Man_t *p, Vec_Int_t *vFanoutNums)
void Gia_ManFanoutStop(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjChild1(Gia_Obj_t *pObj)
static int Gia_ObjWhatFanin(Gia_Obj_t *pObj, Gia_Obj_t *pFanin)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
static int Gia_ManAndNum(Gia_Man_t *p)
static Vec_Int_t * Vec_IntStart(int nSize)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
void Gia_ManFanoutStart(Gia_Man_t *p)
FUNCTION DEFINITIONS ///.
static void Vec_IntAddToEntry(Vec_Int_t *p, int i, int Addition)
static void Gia_ObjSetFanout(Gia_Man_t *p, Gia_Obj_t *pObj, int i, Gia_Obj_t *pFan)
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
static int Gia_ObjFanoutNum(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ObjPrint(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjFanout0Int(Gia_Man_t *p, int ObjId)
static void Vec_IntFreeP(Vec_Int_t **p)
void Gia_ObjAddFanout(Gia_Man_t *p, Gia_Obj_t *pObj, Gia_Obj_t *pFanout)
#define Gia_ObjForEachFanoutStatic(p, pObj, pFanout, i)
static int Gia_ObjIsCo(Gia_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_START
void Gia_ManStaticFanoutStop(Gia_Man_t *p)
static int Vec_IntSize(Vec_Int_t *p)
static int Gia_IsComplement(Gia_Obj_t *p)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
#define Gia_ManForEachObj(p, pObj, i)
MACRO DEFINITIONS ///.
void Gia_ManStaticFanoutStart(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
void Gia_ObjRemoveFanout(Gia_Man_t *p, Gia_Obj_t *pObj, Gia_Obj_t *pFanout)
static ABC_NAMESPACE_IMPL_START int Gia_FanoutCreate(int FanId, int Num)
DECLARATIONS ///.
static void Vec_IntFree(Vec_Int_t *p)
static int Gia_ManObjNum(Gia_Man_t *p)
static int Gia_ManCoNum(Gia_Man_t *p)