49 Aig_Obj_t * pNode, * pNode0, * pNode1, * pNodeC;
51 if (
st__lookup( tBdd2Node, (
char *)bFunc, (
char **)&pNode ) )
60 pNode =
Aig_Mux( pNew, pNodeC, pNode1, pNode0 );
61 st__insert( tBdd2Node, (
char *)bFunc, (
char *)pNode );
120 printf(
"Aig_ManConvertBddsToAigs(): The check has failed.\n" );
138 if ( pObj->
pData != NULL )
163 DdNode * bCube, * bTemp, * bCof, ** pbVars;
167 for ( i = 0; i < (1 <<
Vec_PtrSize(vSubset)); i++ )
265 printf(
"Currently works only for one primary output.\n" );
270 printf(
"The number of cofactoring variables should be a positive number.\n" );
275 printf(
"The number of cofactoring variables should be less than 17.\n" );
281 printf(
"Property output function is a constant.\n" );
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
void st__free_table(st__table *table)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
ABC_DLL int Aig_ManCheck(Aig_Man_t *p)
FUNCTION DECLARATIONS ///.
#define CUDD_UNIQUE_SLOTS
void Cudd_RecursiveDeref(DdManager *table, DdNode *n)
static int Saig_ManPoNum(Aig_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
Aig_Man_t * Aig_ManConvertBddsToAigs(Aig_Man_t *p, DdManager *dd, Vec_Ptr_t *vCofs)
Aig_Man_t * Aig_ManSplit(Aig_Man_t *p, int nVars, int fVerbose)
int st__insert(st__table *table, const char *key, char *value)
static int Aig_ManObjNum(Aig_Man_t *p)
DdNode * Cudd_ReadLogicZero(DdManager *dd)
#define Cudd_Regular(node)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
int st__ptrcmp(const char *, const char *)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
#define Aig_ManForEachCo(p, pObj, i)
unsigned Aig_ManRandom(int fReset)
static Vec_Ptr_t * Vec_PtrDup(Vec_Ptr_t *pVec)
static abctime Abc_Clock()
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static int Vec_PtrSize(Vec_Ptr_t *p)
static void Vec_PtrRemove(Vec_Ptr_t *p, void *Entry)
ABC_NAMESPACE_IMPL_START Aig_Obj_t * Aig_NodeBddToMuxes_rec(DdManager *dd, DdNode *bFunc, Aig_Man_t *pNew, st__table *tBdd2Node)
DECLARATIONS ///.
st__table * st__init_table(st__compare_func_type compare, st__hash_func_type hash)
static void Abc_PrintTime(int level, const char *pStr, abctime time)
static int Aig_ObjIsNode(Aig_Obj_t *pObj)
#define Cudd_IsComplement(node)
DdNode * Cudd_Cofactor(DdManager *dd, DdNode *f, DdNode *g)
Vec_Ptr_t * Aig_Support(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ManSetRegNum(Aig_Man_t *p, int nRegs)
static int Aig_ManCiNum(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_END
DdManager * Cudd_Init(unsigned int numVars, unsigned int numVarsZ, unsigned int numSlots, unsigned int cacheSize, unsigned long maxMemory)
Aig_Obj_t * Aig_ManDupSimpleDfs_rec(Aig_Man_t *pNew, Aig_Man_t *p, Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjChild0Copy(Aig_Obj_t *pObj)
static int Aig_ObjFaninC0(Aig_Obj_t *pObj)
Vec_Ptr_t * Aig_ManCofactorBdds(Aig_Man_t *p, Vec_Ptr_t *vSubset, DdManager *dd, DdNode *bFunc)
static void Vec_PtrWriteEntry(Vec_Ptr_t *p, int i, void *Entry)
DdNode * Aig_ManBuildPoBdd_rec(Aig_Man_t *p, Aig_Obj_t *pObj, DdManager *dd)
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 int Aig_ManRegNum(Aig_Man_t *p)
DdNode * Cudd_ReadOne(DdManager *dd)
int st__lookup(st__table *table, const char *key, char **value)
Vec_Ptr_t * Aig_ManVecRandSubset(Vec_Ptr_t *vVec, int nVars)
DdManager * Aig_ManBuildPoBdd(Aig_Man_t *p, DdNode **pbFunc)
Aig_Obj_t * Aig_Mux(Aig_Man_t *p, Aig_Obj_t *pC, Aig_Obj_t *p1, Aig_Obj_t *p0)
#define Aig_ManForEachObj(p, pObj, i)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
DdNode * Cudd_bddIthVar(DdManager *dd, int i)
static int Aig_ObjFaninC1(Aig_Obj_t *pObj)
#define Cudd_NotCond(node, c)
DdNode * Cudd_bddAnd(DdManager *dd, DdNode *f, DdNode *g)
int Cudd_ReduceHeap(DdManager *table, Cudd_ReorderingType heuristic, int minsize)
void Cudd_AutodynEnable(DdManager *unique, Cudd_ReorderingType method)
static Aig_Obj_t * Aig_NotCond(Aig_Obj_t *p, int c)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
char * Abc_UtilStrsav(char *s)
void Aig_ManCleanData(Aig_Man_t *p)
static void ** Vec_PtrArray(Vec_Ptr_t *p)
int Aig_ManCleanup(Aig_Man_t *p)
int st__ptrhash(const char *, int)
int Cudd_DagSize(DdNode *node)
static void Vec_PtrFree(Vec_Ptr_t *p)