28 #define CHECK_FACTOR 10
189 DdNode *F, *fv, *fnv, *G, *gv, *gnv;
191 unsigned int topf, topg, index;
200 if (f == g)
return(f);
204 if (f == one)
return(g);
208 if (g == one)
return(f);
222 if (F->
ref != 1 || G->
ref != 1) {
224 if (r != NULL)
return(r);
263 if (t == NULL)
return(NULL);
295 if (F->
ref != 1 || G->
ref != 1)
325 DdNode *F, *ft, *fe, *G, *gt, *ge;
327 unsigned int topf, topg, topcube, top, index;
334 if (f == zero || g == zero || f ==
Cudd_Not(g))
return(zero);
335 if (f == one && g == one)
return(one);
340 if (f == one || f == g) {
361 top =
ddMin(topf, topg);
364 while (topcube < top) {
374 if (F->
ref != 1 || G->
ref != 1) {
409 if (topcube == top) {
412 if (t == NULL)
return(NULL);
418 if (t == one || t == fe || t == ge) {
419 if (F->
ref != 1 || G->
ref != 1)
456 if (t == NULL)
return(NULL);
490 if (F->
ref != 1 || G->
ref != 1)
533 while (
st__gen( gen, (
const char ** ) &key, (
char ** ) &value ) )
596 if (
st__lookup( table, (
char * ) f, (
char ** ) &res ) )
604 index = Permute[f->
index];
void Cudd_IterDerefBdd(DdManager *table, DdNode *n)
DdNode * cuddBddExistAbstractRecur(DdManager *manager, DdNode *f, DdNode *cube)
void st__free_table(st__table *table)
void Cudd_RecursiveDeref(DdManager *table, DdNode *n)
void cuddCacheInsert2(DdManager *table, DD_CTFP op, DdNode *f, DdNode *g, DdNode *data)
void st__free_gen(st__generator *gen)
#define Cudd_IsConstant(node)
#define Cudd_Regular(node)
void cuddCacheInsert(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h, DdNode *data)
int st__ptrcmp(const char *, const char *)
static abctime Abc_Clock()
DdNode * cuddCacheLookup2(DdManager *table, DD_CTFP op, DdNode *f, DdNode *g)
st__table * st__init_table(st__compare_func_type compare, st__hash_func_type hash)
#define Cudd_IsComplement(node)
#define ABC_NAMESPACE_IMPL_END
st__generator * st__init_gen(st__table *table)
#define ABC_NAMESPACE_IMPL_START
int st__lookup(st__table *table, const char *key, char **value)
#define DD_BDD_AND_ABSTRACT_TAG
int st__add_direct(st__table *table, char *key, char *value)
#define Cudd_NotCond(node, c)
DdNode * Cudd_bddAnd(DdManager *dd, DdNode *f, DdNode *g)
void Cudd_DelayedDerefBdd(DdManager *table, DdNode *n)
int st__ptrhash(const char *, int)
DdNode * cuddUniqueInter(DdManager *unique, int index, DdNode *T, DdNode *E)
DdNode * cuddCacheLookup(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)
int st__gen(st__generator *gen, const char **key_p, char **value_p)
DdNode * cuddBddIteRecur(DdManager *dd, DdNode *f, DdNode *g, DdNode *h)