90 static char rcsid[]
DD_UNUSED =
"$Id: cuddBddAbs.c,v 1.28 2012/02/05 01:07:18 fabio Exp $";
135 (void) fprintf(manager->
err,
136 "Error: Can only abstract positive cubes\n");
173 unsigned int saveLimit = manager->
maxLive;
176 (void) fprintf(manager->
err,
177 "Error: Can only abstract positive cubes\n");
219 (void) fprintf(manager->
err,
220 "Error: Can only abstract positive cubes\n");
256 (void) fprintf(manager->
err,
257 "Error: Can only abstract positive cubes\n");
266 if (res != NULL) res =
Cudd_Not(res);
298 var = manager->
vars[x];
331 unsigned topf, level;
398 DdNode *F, *T, *E, *res, *res1, *res2, *
one;
405 if (cube == one || F == one) {
413 if (cube == one)
return(f);
429 if (T == one || E == one || T ==
Cudd_Not(E)) {
433 if (res1 == NULL)
return(NULL);
462 if (res1 == NULL)
return(NULL);
509 DdNode *F, *fv, *fnv, *G, *gv, *gnv;
511 unsigned int topf, topg, topcube, top, index;
561 top =
ddMin(topf, topg);
593 if (topcube == top) {
600 if (t == NULL)
return(NULL);
605 if (t == one && topcube == top) {
618 if (topcube == top) {
680 DdNode *T, *E, *res, *res1, *res2;
708 if (res1 == NULL)
return(NULL);
752 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)
DdNode * Cudd_bddExistAbstractLimit(DdManager *manager, DdNode *f, DdNode *cube, unsigned int limit)
DdNode * cuddCacheLookup2(DdManager *table, DdNode *(*)(DdManager *, DdNode *, DdNode *), DdNode *f, DdNode *g)
#define Cudd_IsConstant(node)
#define Cudd_Regular(node)
DdNode * Cudd_bddUnivAbstract(DdManager *manager, DdNode *f, DdNode *cube)
#define Cudd_IsComplement(node)
int Cudd_bddVarIsDependent(DdManager *dd, DdNode *f, DdNode *var)
DdNode *(* DD_CTFP)(DdManager *, DdNode *, DdNode *)
#define DD_BDD_XOR_EXIST_ABSTRACT_TAG
DdNode * cuddBddBooleanDiffRecur(DdManager *manager, DdNode *f, DdNode *var)
#define cuddIsConstant(node)
DdNode * cuddBddIteRecur(DdManager *dd, DdNode *f, DdNode *g, DdNode *h)
DdNode * cuddBddAndRecur(DdManager *manager, DdNode *f, DdNode *g)
int Cudd_bddLeq(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddCacheLookup(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)
DdNode * cuddBddXorExistAbstractRecur(DdManager *manager, DdNode *f, DdNode *g, DdNode *cube)
DdNode * Cudd_bddExistAbstract(DdManager *manager, DdNode *f, DdNode *cube)
void cuddCacheInsert2(DdManager *table, DdNode *(*)(DdManager *, DdNode *, DdNode *), DdNode *f, DdNode *g, DdNode *data)
#define Cudd_NotCond(node, c)
DdNode * cuddBddXorRecur(DdManager *manager, DdNode *f, DdNode *g)
static int bddCheckPositiveCube(DdManager *manager, DdNode *cube)
void cuddCacheInsert(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h, DdNode *data)
DdNode * Cudd_bddXorExistAbstract(DdManager *manager, DdNode *f, DdNode *g, DdNode *cube)
DdNode * cuddUniqueInter(DdManager *unique, int index, DdNode *T, DdNode *E)
static char rcsid [] DD_UNUSED