105 static char rcsid[]
DD_UNUSED =
"$Id: cuddZddFuncs.c,v 1.16 2008/04/25 07:39:33 fabio Exp $";
386 DdNode *tmp, *term1, *term2, *term3;
387 DdNode *f0, *f1, *fd, *g0, *g1, *gd;
388 DdNode *R0, *R1, *Rd, *N0, *N1;
396 if (f == zero || g == zero)
623 DdNode *term1, *term2, *term3, *term4;
625 DdNode *f0, *f1, *g0, *g1;
632 if (f == zero || g == zero)
769 DdNode *f0, *f1, *fd, *g0, *g1, *gd;
777 if (f == zero || f == one)
927 int v, top_f, top_g, vf, vg;
930 DdNode *f0, *f1, *fd, *g0, *g1, *gd;
933 DdNode *term1, *term0, *termd;
940 if (f == zero || f == one)
954 v =
ddMin(top_f, top_g);
956 if (v == top_f && vf < vg) {
1167 DdNode *f0, *f1, *g0, *g1;
1174 if (f == zero || f == one)
1210 if (r != zero && g0 != zero) {
1267 DdNode *f0, *f1, *g0, *g1;
1274 if (f == zero || f == one)
1310 if (r != zero && g0 != zero) {
1370 int top, hv, ht, pv, nv;
1374 level = dd->
permZ[v];
1526 DdNode *b, *isop, *zdd_I;
1569 int pv = (index >> 1) << 1;
1590 int nv = index | 0x1;
1612 return(dd->
permZ[pv]);
1633 return(dd->
permZ[nv]);
DdNode * cuddCacheLookup2Zdd(DdManager *table, DD_CTFP op, DdNode *f, DdNode *g)
void Cudd_RecursiveDerefZdd(DdManager *table, DdNode *n)
DdNode * Cudd_zddComplement(DdManager *dd, DdNode *node)
void Cudd_RecursiveDeref(DdManager *table, DdNode *n)
DdNode * cuddZddDivide(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddZddGetNode(DdManager *zdd, int id, DdNode *T, DdNode *E)
void cuddCacheInsert2(DdManager *table, DD_CTFP op, DdNode *f, DdNode *g, DdNode *data)
DdNode * Cudd_zddProduct(DdManager *dd, DdNode *f, DdNode *g)
void Cudd_Deref(DdNode *node)
static ABC_NAMESPACE_IMPL_START char rcsid[] DD_UNUSED
int cuddZddGetCofactors2(DdManager *dd, DdNode *f, int v, DdNode **f1, DdNode **f0)
DdNode * Cudd_zddWeakDiv(DdManager *dd, DdNode *f, DdNode *g)
int cuddZddGetCofactors3(DdManager *dd, DdNode *f, int v, DdNode **f1, DdNode **f0, DdNode **fd)
int cuddZddGetPosVarLevel(DdManager *dd, int index)
DdNode * Cudd_MakeBddFromZddCover(DdManager *dd, DdNode *node)
DdNode * cuddZddUnateProduct(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddZddProduct(DdManager *dd, DdNode *f, DdNode *g)
int cuddZddGetNegVarIndex(DdManager *dd, int index)
DdNode * cuddZddIntersect(DdManager *zdd, DdNode *P, DdNode *Q)
DdNode * cuddZddWeakDiv(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddZddIsop(DdManager *dd, DdNode *L, DdNode *U, DdNode **zdd_I)
#define ABC_NAMESPACE_IMPL_END
DdNode * cuddMakeBddFromZddCover(DdManager *dd, DdNode *node)
DdNode * Cudd_zddIsop(DdManager *dd, DdNode *L, DdNode *U, DdNode **zdd_I)
DdNode * Cudd_zddDivideF(DdManager *dd, DdNode *f, DdNode *g)
int cuddZddGetPosVarIndex(DdManager *dd, int index)
DdNode * cuddZddWeakDivF(DdManager *dd, DdNode *f, DdNode *g)
DdNode * Cudd_zddWeakDivF(DdManager *dd, DdNode *f, DdNode *g)
DdNode * Cudd_zddDivide(DdManager *dd, DdNode *f, DdNode *g)
#define ABC_NAMESPACE_IMPL_START
DdNode * cuddZddSubset1(DdManager *dd, DdNode *P, int var)
DdNode * cuddZddUnion(DdManager *zdd, DdNode *P, DdNode *Q)
int cuddZddGetNegVarLevel(DdManager *dd, int index)
DdNode * Cudd_zddUnateProduct(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddZddSubset0(DdManager *dd, DdNode *P, int var)
DdNode * cuddZddDivideF(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddZddComplement(DdManager *dd, DdNode *node)
DdNode * cuddCacheLookup1Zdd(DdManager *table, DD_CTFP1 op, DdNode *f)
void cuddCacheInsert1(DdManager *table, DD_CTFP1 op, DdNode *f, DdNode *data)