49 int i, k, iBox, iTerm1, nTerms;
59 printf(
"Node %d has fanin %d that is not in a topological order.\n", pObj->
Id, pNext->
Id );
65 printf(
"Node %d has fanin %d that is not in a topological order.\n", pObj->
Id, pNext->
Id );
74 printf(
"Node %d has fanin %d that is not in a topological order.\n", pObj->
Id, pNext->
Id );
87 for ( k = 0; k < nTerms; k++ )
93 printf(
"Box %d has input %d that is not in a topological order.\n", iBox, pNext->
Id );
345 for ( i = 0; i < nNodes; i++ )
408 assert( p->pEquivs != NULL );
512 int i, iBox, iTerm1, nTerms, LevelMax = 0;
525 for ( i = 0; i < nTerms; i++ )
787 printf(
"Nodes with small support %d (out of %d)\n", Counter,
Aig_ManNodeNum(p) );
860 for ( i = 0; i < nObjs; i++ )
909 if ( pSour == pDest )
945 pObj->
pData = pObj == pVar ? pFunc : pObj;
971 printf(
"Aig_Compose(): The PI variable %d is not defined.\n", iVar );
1053 int RetValue1, RetValue2, i;
1058 for ( i = 0; i < vSuper->nSize; i++ )
1059 if ( vSuper->pArray[i] == pObj )
1062 for ( i = 0; i < vSuper->nSize; i++ )
1063 if ( vSuper->pArray[i] ==
Aig_Not(pObj) )
1080 if ( RetValue1 == -1 || RetValue2 == -1 )
1083 return RetValue1 || RetValue2;
1111 if ( RetValue == -1 )
Aig_Obj_t * Aig_Transfer(Aig_Man_t *pSour, Aig_Man_t *pDest, Aig_Obj_t *pRoot, int nVars)
int Tim_ManBoxForCi(Tim_Man_t *p, int iCo)
static int Aig_ObjIsMarkA(Aig_Obj_t *pObj)
#define Aig_ObjForEachFanout(p, pObj, pFanout, iFan, i)
static int Aig_ObjSetLevel(Aig_Obj_t *pObj, int i)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
ABC_NAMESPACE_IMPL_START int Aig_ManVerifyTopoOrder(Aig_Man_t *p)
DECLARATIONS ///.
Vec_Ptr_t * Aig_ManDfsReverse(Aig_Man_t *p)
static void Vec_VecPush(Vec_Vec_t *p, int Level, void *Entry)
static Aig_Type_t Aig_ObjType(Aig_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
static Aig_Obj_t * Aig_ObjChild0(Aig_Obj_t *pObj)
static int Aig_ObjIsTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
Aig_Obj_t * Aig_ObjReal_rec(Aig_Obj_t *pObj)
static int Aig_ManObjNum(Aig_Man_t *p)
int Tim_ManBoxForCo(Tim_Man_t *p, int iCi)
int Aig_ObjCollectSuper(Aig_Obj_t *pObj, Vec_Ptr_t *vSuper)
void Aig_ManDfsChoices_rec(Aig_Man_t *p, Aig_Obj_t *pObj, Vec_Ptr_t *vNodes)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
static int Aig_IsComplement(Aig_Obj_t *p)
Vec_Ptr_t * Aig_ManDfsPreorder(Aig_Man_t *p, int fNodesOnly)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
#define Aig_ManForEachCo(p, pObj, i)
static Aig_Obj_t * Aig_Not(Aig_Obj_t *p)
static abctime Abc_Clock()
static int Abc_MaxInt(int a, int b)
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static int Vec_PtrSize(Vec_Ptr_t *p)
int Aig_ManChoiceLevel(Aig_Man_t *p)
static void Aig_ObjSetTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ManChoiceLevel_rec(Aig_Man_t *p, Aig_Obj_t *pObj)
static void Aig_ObjSetMarkA(Aig_Obj_t *pObj)
static int Aig_ManNodeNum(Aig_Man_t *p)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
Vec_Ptr_t * Aig_ManDfsChoices(Aig_Man_t *p)
static void Aig_ObjClearMarkA(Aig_Obj_t *pObj)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
static void Abc_PrintTime(int level, const char *pStr, abctime time)
static int Aig_ObjIsNode(Aig_Obj_t *pObj)
static int Aig_ObjIsBuf(Aig_Obj_t *pObj)
void Aig_ManDfsAll_rec(Aig_Man_t *p, Aig_Obj_t *pObj, Vec_Ptr_t *vNodes)
#define Aig_ManForEachNode(p, pObj, i)
Vec_Ptr_t * Aig_ManDfsNodes(Aig_Man_t *p, Aig_Obj_t **ppNodes, int nNodes)
Vec_Ptr_t * Aig_ManDfsAll(Aig_Man_t *p)
Aig_Obj_t * Aig_IthVar(Aig_Man_t *p, int i)
FUNCTION DEFINITIONS ///.
static Aig_Obj_t * Aig_ManCi(Aig_Man_t *p, int i)
Aig_Obj_t * Aig_Compose(Aig_Man_t *p, Aig_Obj_t *pRoot, Aig_Obj_t *pFunc, int iVar)
static int Aig_ManCiNum(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_END
static Aig_Obj_t * Aig_ObjChild1(Aig_Obj_t *pObj)
static int Aig_ObjIsConst1(Aig_Obj_t *pObj)
Vec_Ptr_t * Aig_Support(Aig_Man_t *p, Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjEquiv(Aig_Man_t *p, Aig_Obj_t *pObj)
int Aig_ConeCountAndMark_rec(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjChild1Copy(Aig_Obj_t *pObj)
void Aig_Support_rec(Aig_Man_t *p, Aig_Obj_t *pObj, Vec_Ptr_t *vSupp)
static Aig_Obj_t * Aig_ObjChild0Copy(Aig_Obj_t *pObj)
void Aig_ConeUnmark_rec(Aig_Obj_t *pObj)
static Vec_Vec_t * Vec_VecStart(int nSize)
void Aig_ManSetCioIds(Aig_Man_t *p)
void Aig_SupportSize_rec(Aig_Man_t *p, Aig_Obj_t *pObj, int *pCounter)
void Aig_ConeMark_rec(Aig_Obj_t *pObj)
int Aig_SupportSizeTest(Aig_Man_t *p)
int Tim_ManBoxInputNum(Tim_Man_t *p, int iBox)
static int Aig_ManObjNumMax(Aig_Man_t *p)
void Aig_ManDfsReverse_rec(Aig_Man_t *p, Aig_Obj_t *pObj, Vec_Ptr_t *vNodes)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
int Aig_ObjCollectSuper_rec(Aig_Obj_t *pRoot, Aig_Obj_t *pObj, Vec_Ptr_t *vSuper)
#define ABC_NAMESPACE_IMPL_START
static Aig_Obj_t * Aig_ManCo(Aig_Man_t *p, int i)
void Aig_ManDfsPreorder_rec(Aig_Man_t *p, Aig_Obj_t *pObj, Vec_Ptr_t *vNodes)
void Aig_Compose_rec(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pFunc, Aig_Obj_t *pVar)
#define Aig_ManForEachObj(p, pObj, i)
Vec_Ptr_t * Aig_ManDfs(Aig_Man_t *p, int fNodesOnly)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
void Aig_Transfer_rec(Aig_Man_t *pDest, Aig_Obj_t *pObj)
int Aig_SupportSize(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ConeCleanAndMark_rec(Aig_Obj_t *pObj)
static int Aig_ObjLevel(Aig_Obj_t *pObj)
void Aig_ManCleanCioIds(Aig_Man_t *p)
void Aig_ManDfs_rec(Aig_Man_t *p, Aig_Obj_t *pObj, Vec_Ptr_t *vNodes)
void Aig_ObjCollectCut(Aig_Obj_t *pRoot, Vec_Ptr_t *vLeaves, Vec_Ptr_t *vNodes)
static void Vec_PtrClear(Vec_Ptr_t *p)
void Aig_SupportNodes(Aig_Man_t *p, Aig_Obj_t **ppObjs, int nObjs, Vec_Ptr_t *vSupp)
typedefABC_NAMESPACE_HEADER_START struct Tim_Man_t_ Tim_Man_t
INCLUDES ///.
static int Aig_ObjRefs(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_NotCond(Aig_Obj_t *p, int c)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
int Tim_ManBoxInputFirst(Tim_Man_t *p, int iBox)
void Aig_ObjCollectCut_rec(Aig_Obj_t *pNode, Vec_Ptr_t *vNodes)
static int Aig_ObjIsCi(Aig_Obj_t *pObj)
int Aig_DagSize(Aig_Obj_t *pObj)
static int Aig_ObjIsCo(Aig_Obj_t *pObj)
int Aig_ManLevelNum(Aig_Man_t *p)
Vec_Vec_t * Aig_ManLevelize(Aig_Man_t *p)
static int Aig_ObjCioId(Aig_Obj_t *pObj)