93 static char rcsid[]
DD_UNUSED =
"$Id: cuddBddAbs.c,v 1.26 2004/08/13 18:04:46 fabio Exp $";
138 (void) fprintf(manager->
err,
139 "Error: Can only abstract positive cubes\n");
178 (void) fprintf(manager->
err,
179 "Error: Can only abstract positive cubes\n");
215 (void) fprintf(manager->
err,
216 "Error: Can only abstract positive cubes\n");
225 if (res != NULL) res =
Cudd_Not(res);
257 var = manager->
vars[x];
290 unsigned topf, level;
357 DdNode *F, *T, *E, *res, *res1, *res2, *
one;
364 if (cube == one || F == one) {
372 if (cube == one)
return(f);
388 if (T == one || E == one || T ==
Cudd_Not(E)) {
392 if (res1 == NULL)
return(NULL);
421 if (res1 == NULL)
return(NULL);
470 DdNode *F, *fv, *fnv, *G, *gv, *gnv;
472 unsigned int topf, topg, topcube, top, index;
522 top =
ddMin(topf, topg);
554 if (topcube == top) {
561 if (t == NULL)
return(NULL);
566 if (t == one && topcube == top) {
579 if (topcube == top) {
641 DdNode *T, *E, *res, *res1, *res2;
669 if (res1 == NULL)
return(NULL);
713 if (cube ==
DD_ONE(manager))
return(1);
void Cudd_IterDerefBdd(DdManager *table, DdNode *n)
DdNode * cuddBddExistAbstractRecur(DdManager *manager, DdNode *f, DdNode *cube)
DdNode * Cudd_bddBooleanDiff(DdManager *manager, DdNode *f, int x)
void cuddCacheInsert2(DdManager *table, DD_CTFP op, DdNode *f, DdNode *g, DdNode *data)
static ABC_NAMESPACE_IMPL_START char rcsid[] DD_UNUSED
#define Cudd_IsConstant(node)
#define Cudd_Regular(node)
void cuddCacheInsert(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h, DdNode *data)
DdNode *(* DD_CTFP)(DdManager *, DdNode *, DdNode *)
DdNode * Cudd_bddUnivAbstract(DdManager *manager, DdNode *f, DdNode *cube)
DdNode * cuddCacheLookup2(DdManager *table, DD_CTFP op, DdNode *f, DdNode *g)
#define Cudd_IsComplement(node)
int Cudd_bddVarIsDependent(DdManager *dd, DdNode *f, DdNode *var)
#define DD_BDD_XOR_EXIST_ABSTRACT_TAG
#define ABC_NAMESPACE_IMPL_END
DdNode * cuddBddBooleanDiffRecur(DdManager *manager, DdNode *f, DdNode *var)
#define cuddIsConstant(node)
#define ABC_NAMESPACE_IMPL_START
int Cudd_bddLeq(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddBddXorExistAbstractRecur(DdManager *manager, DdNode *f, DdNode *g, DdNode *cube)
DdNode * Cudd_bddExistAbstract(DdManager *manager, DdNode *f, DdNode *cube)
DdNode * cuddBddXorRecur(DdManager *manager, DdNode *f, DdNode *g)
#define Cudd_NotCond(node, c)
static int bddCheckPositiveCube(DdManager *manager, DdNode *cube)
DdNode * cuddBddAndRecur(DdManager *manager, DdNode *f, DdNode *g)
DdNode * Cudd_bddXorExistAbstract(DdManager *manager, DdNode *f, DdNode *g, DdNode *cube)
DdNode * cuddUniqueInter(DdManager *unique, int index, DdNode *T, DdNode *E)
DdNode * cuddCacheLookup(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)
DdNode * cuddBddIteRecur(DdManager *dd, DdNode *f, DdNode *g, DdNode *h)