86 static char rcsid[]
DD_UNUSED =
"$Id: cuddAddIte.c,v 1.16 2012/02/05 01:07:18 fabio Exp $";
166 DdNode *Fv,*Fnv,*Gv,*Gnv,*Hv,*Hnv,*r,*t,*e;
167 unsigned int topf,topg,toph,v;
171 if (f == (one =
DD_ONE(dd))) {
174 if (f == (zero =
DD_ZERO(dd))) {
192 v =
ddMin(topg,toph);
262 DdNode *Fv,*Fnv,*Gv,*Gnv,*r,*t,*e;
263 unsigned int topf,topg;
274 if (f == (zero =
DD_ZERO(dd))) {
377 DdNode *tmp, *fv, *fvn, *gv, *gvn;
378 unsigned int topf, topg, res;
381 if (f == g)
return(1);
395 return(tmp ==
DD_ONE(dd));
448 DdNode *r,*Fv,*Fnv,*Gv,*Gnv,*Hv,*Hnv,*t,*e;
449 unsigned int topf,topg,toph,v;
456 if (f == (one =
DD_ONE(dd))) {
459 if (f == (zero =
DD_ZERO(dd))) {
472 if (h == zero)
return(f);
478 v =
ddMin(topg,toph);
481 if (topf < v &&
cuddT(f) == one &&
cuddE(f) == zero) {
485 if (topf < v &&
cuddT(f) == zero &&
cuddE(f) == one) {
519 if (t == NULL)
return(NULL);
583 if (t == NULL)
return(NULL);
DdNode * Cudd_addIteConstant(DdManager *dd, DdNode *f, DdNode *g, DdNode *h)
DdNode * Cudd_addIte(DdManager *dd, DdNode *f, DdNode *g, DdNode *h)
void Cudd_RecursiveDeref(DdManager *table, DdNode *n)
DdNode * cuddCacheLookup1(DdManager *table, DdNode *(*)(DdManager *, DdNode *), DdNode *f)
static void addVarToConst(DdNode *f, DdNode **gp, DdNode **hp, DdNode *one, DdNode *zero)
DdNode * cuddCacheLookup2(DdManager *table, DdNode *(*)(DdManager *, DdNode *, DdNode *), DdNode *f, DdNode *g)
#define DD_ADD_ITE_CONSTANT_TAG
DdNode * Cudd_addCmpl(DdManager *dd, DdNode *f)
void cuddCacheInsert1(DdManager *table, DdNode *(*)(DdManager *, DdNode *), DdNode *f, DdNode *data)
DdNode * Cudd_addEvalConst(DdManager *dd, DdNode *f, DdNode *g)
#define DD_MINUS_INFINITY(dd)
#define Cudd_IsComplement(node)
DdNode *(* DD_CTFP)(DdManager *, DdNode *, DdNode *)
int Cudd_addLeq(DdManager *dd, DdNode *f, DdNode *g)
#define cuddIsConstant(node)
#define DD_ADD_EVAL_CONST_TAG
DdNode * cuddCacheLookup(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)
void cuddCacheInsert2(DdManager *table, DdNode *(*)(DdManager *, DdNode *, DdNode *), DdNode *f, DdNode *g, DdNode *data)
DdNode * cuddConstantLookup(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)
#define Cudd_NotCond(node, c)
#define DD_PLUS_INFINITY(dd)
void cuddCacheInsert(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h, DdNode *data)
DdNode * cuddAddIteRecur(DdManager *dd, DdNode *f, DdNode *g, DdNode *h)
DdNode * cuddUniqueInter(DdManager *unique, int index, DdNode *T, DdNode *E)
DdNode * cuddAddCmplRecur(DdManager *dd, DdNode *f)
static char rcsid [] DD_UNUSED