81 # define DD_INLINE __inline__ 82 # if (__GNUC__ >2 || __GNUC_MINOR__ >=7) 83 # define DD_UNUSED __attribute__ ((__unused__)) 88 # if defined(__cplusplus) 89 # define DD_INLINE inline 101 #define DD_MAXREF ((DdHalfWord) ~0) 103 #define DD_DEFAULT_RESIZE 10 105 #define DD_MEM_CHUNK 1022 108 #define DD_ONE_VAL (1.0) 109 #define DD_ZERO_VAL (0.0) 110 #define DD_EPSILON (1.0e-12) 116 # define DD_PLUS_INF_VAL (HUGE_VAL) 118 # define DD_PLUS_INF_VAL (10e301) 119 # define DD_CRI_HI_MARK (10e150) 120 # define DD_CRI_LO_MARK (-(DD_CRI_HI_MARK)) 122 #define DD_MINUS_INF_VAL (-(DD_PLUS_INF_VAL)) 124 #define DD_NON_CONSTANT ((DdNode *) 1) 127 #define DD_MAX_SUBTABLE_DENSITY 4 134 #define DD_GC_FRAC_LO DD_MAX_SUBTABLE_DENSITY * 0.25 135 #define DD_GC_FRAC_HI DD_MAX_SUBTABLE_DENSITY * 1.0 136 #define DD_GC_FRAC_MIN 0.2 137 #define DD_MIN_HIT 30 139 #define DD_MAX_LOOSE_FRACTION 5 141 #define DD_MAX_CACHE_FRACTION 3 143 #define DD_STASH_FRACTION 64 145 #define DD_MAX_CACHE_TO_SLOTS_RATIO 4 148 #define DD_SIFT_MAX_VAR 1000 149 #define DD_SIFT_MAX_SWAPS 2000000 150 #define DD_DEFAULT_RECOMB 0 151 #define DD_MAX_REORDER_GROWTH 1.2 152 #define DD_FIRST_REORDER 4004 153 #define DD_DYN_RATIO 2 156 #define DD_P1 12582917 157 #define DD_P2 4256249 159 #define DD_P4 1618033999 173 #define DD_ADD_ITE_TAG 0x02 174 #define DD_BDD_AND_ABSTRACT_TAG 0x06 175 #define DD_BDD_XOR_EXIST_ABSTRACT_TAG 0x0a 176 #define DD_BDD_ITE_TAG 0x0e 177 #define DD_ADD_BDD_DO_INTERVAL_TAG 0x22 178 #define DD_BDD_CLIPPING_AND_ABSTRACT_UP_TAG 0x26 179 #define DD_BDD_CLIPPING_AND_ABSTRACT_DOWN_TAG 0x2a 180 #define DD_BDD_COMPOSE_RECUR_TAG 0x2e 181 #define DD_ADD_COMPOSE_RECUR_TAG 0x42 182 #define DD_ADD_NON_SIM_COMPOSE_TAG 0x46 183 #define DD_EQUIV_DC_TAG 0x4a 184 #define DD_ZDD_ITE_TAG 0x4e 185 #define DD_ADD_ITE_CONSTANT_TAG 0x62 186 #define DD_ADD_EVAL_CONST_TAG 0x66 187 #define DD_BDD_ITE_CONSTANT_TAG 0x6a 188 #define DD_ADD_OUT_SUM_TAG 0x6e 189 #define DD_BDD_LEQ_UNLESS_TAG 0x82 190 #define DD_ADD_TRIANGLE_TAG 0x86 191 #define DD_BDD_MAX_EXP_TAG 0x8a 194 #define CUDD_GEN_CUBES 0 195 #define CUDD_GEN_PRIMES 1 196 #define CUDD_GEN_NODES 2 197 #define CUDD_GEN_ZDD_PATHS 3 198 #define CUDD_GEN_EMPTY 0 199 #define CUDD_GEN_NONEMPTY 1 245 #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 258 #ifdef DD_CACHE_PROFILE 305 #ifdef DD_CACHE_PROFILE 383 #ifndef DD_NO_DEATH_ROW 446 #ifdef DD_UNIQUE_PROFILE 447 double uniqueLookUps;
451 double recursiveCalls;
520 #define cuddDeallocNode(unique,node) \ 521 (node)->next = (unique)->nextFree; \ 522 (unique)->nextFree = node; 537 #define cuddDeallocMove(unique,node) \ 538 ((DdNode *)(node))->ref = 0; \ 539 ((DdNode *)(node))->next = (unique)->nextFree; \ 540 (unique)->nextFree = (DdNode *)(node); 557 #define cuddRef(n) cuddSatInc(Cudd_Regular(n)->ref) 577 #define cuddDeref(n) cuddSatDec(Cudd_Regular(n)->ref) 593 #define cuddIsConstant(node) ((node)->index == CUDD_CONST_INDEX) 609 #define cuddT(node) ((node)->type.kids.T) 625 #define cuddE(node) ((node)->type.kids.E) 641 #define cuddV(node) ((node)->type.value) 659 #define cuddI(dd,index) (((index)==CUDD_CONST_INDEX)?(int)(index):(dd)->perm[(index)]) 677 #define cuddIZ(dd,index) (((index)==CUDD_CONST_INDEX)?(int)(index):(dd)->permZ[(index)]) 691 #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 692 #define ddHash(f,g,s) \ 693 ((((unsigned)(ptruint)(f) * DD_P1 + \ 694 (unsigned)(ptruint)(g)) * DD_P2) >> (s)) 696 #define ddHash(f,g,s) \ 697 ((((unsigned)(f) * DD_P1 + (unsigned)(g)) * DD_P2) >> (s)) 712 #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 713 #define ddCHash(o,f,g,h,s) \ 714 ((((((unsigned)(ptruint)(f) + (unsigned)(ptruint)(o)) * DD_P1 + \ 715 (unsigned)(ptruint)(g)) * DD_P2 + \ 716 (unsigned)(ptruint)(h)) * DD_P3) >> (s)) 718 #define ddCHash(o,f,g,h,s) \ 719 ((((((unsigned)(f) + (unsigned)(o)) * DD_P1 + (unsigned)(g)) * DD_P2 + \ 720 (unsigned)(h)) * DD_P3) >> (s)) 736 #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 737 #define ddCHash2(o,f,g,s) \ 738 (((((unsigned)(ptruint)(f) + (unsigned)(ptruint)(o)) * DD_P1 + \ 739 (unsigned)(ptruint)(g)) * DD_P2) >> (s)) 741 #define ddCHash2(o,f,g,s) \ 742 (((((unsigned)(f) + (unsigned)(o)) * DD_P1 + (unsigned)(g)) * DD_P2) >> (s)) 757 #define cuddClean(p) ((DdNode *)((ptruint)(p) & ~0xf)) 771 #define ddMin(x,y) (((y) < (x)) ? (y) : (x)) 785 #define ddMax(x,y) (((y) > (x)) ? (y) : (x)) 799 #define ddAbs(x) (((x)<0) ? -(x) : (x)) 814 #define ddEqualVal(x,y,e) (ddAbs((x)-(y))<(e)) 828 #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 829 #define cuddSatInc(x) ((x)++) 831 #define cuddSatInc(x) ((x) += (x) != (DdHalfWord)DD_MAXREF) 846 #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 847 #define cuddSatDec(x) ((x)--) 849 #define cuddSatDec(x) ((x) -= (x) != (DdHalfWord)DD_MAXREF) 864 #define DD_ONE(dd) ((dd)->one) 880 #define DD_ZERO(dd) ((dd)->zero) 894 #define DD_PLUS_INFINITY(dd) ((dd)->plusinfinity) 908 #define DD_MINUS_INFINITY(dd) ((dd)->minusinfinity) 930 #define cuddAdjust(x) 932 #define cuddAdjust(x) ((x) = ((x) >= DD_CRI_HI_MARK) ? DD_PLUS_INF_VAL : (((x) <= DD_CRI_LO_MARK) ? DD_MINUS_INF_VAL : (x))) 948 #define DD_LSDIGIT(x) ((x) & DD_APA_MASK) 963 #define DD_MSDIGIT(x) ((x) >> DD_APA_BITS) 981 #define statLine(dd) dd->recursiveCalls++; \ 982 if (dd->recursiveCalls == dd->nextSample) {(void) fprintf(dd->err, \ 983 "@%.0f: %u nodes %u live %.0f dropped %.0f reclaimed\n", dd->recursiveCalls, \ 984 dd->keys, dd->keys - dd->dead, dd->nodesDropped, dd->reclaimed); \ 985 dd->nextSample += 250000;} 987 #define statLine(dd) dd->recursiveCalls++; 1070 #ifdef DD_CACHE_PROFILE 1071 extern int cuddLocalCacheProfile (
DdLocalCache *cache);
1122 extern DdManager *
cuddInitTable (
unsigned int numVars,
unsigned int numVarsZ,
unsigned int numSlots,
unsigned int looseUpTo);
DdNode * cuddZddGetNodeIVO(DdManager *dd, int index, DdNode *g, DdNode *h)
void cuddShrinkSubtable(DdManager *unique, int i)
Cudd_AggregationType groupcheck
void cuddLevelQueueDequeue(DdLevelQueue *queue, int level)
DdNode * cuddSubsetShortPaths(DdManager *dd, DdNode *f, int numVars, int threshold, int hardlimit)
DdNode * cuddAddCmplRecur(DdManager *dd, DdNode *f)
void cuddZddFreeUniv(DdManager *zdd)
unsigned short DdHalfWord
DdNode * cuddCacheLookup1Zdd(DdManager *table, DdNode *(*)(DdManager *, DdNode *), DdNode *f)
DdNode * cuddBddLICompaction(DdManager *dd, DdNode *f, DdNode *c)
DdNode * cuddBddExistAbstractRecur(DdManager *manager, DdNode *f, DdNode *cube)
DdNode * cuddBddBooleanDiffRecur(DdManager *manager, DdNode *f, DdNode *var)
Cudd_ReorderingType autoMethod
void cuddRehash(DdManager *unique, int i)
unsigned int peakLiveNodes
DdNode * cuddBddXorExistAbstractRecur(DdManager *manager, DdNode *f, DdNode *g, DdNode *cube)
int cuddInitLinear(DdManager *table)
DdNode * cuddZddGetNode(DdManager *zdd, int id, DdNode *T, DdNode *E)
DdNode * cuddBddComposeRecur(DdManager *dd, DdNode *f, DdNode *g, DdNode *proj)
DdNode * cuddVerifySol(DdManager *bdd, DdNode *F, DdNode **G, int *yIndex, int n)
DdNode * cuddSubsetHeavyBranch(DdManager *dd, DdNode *f, int numVars, int threshold)
int cuddAnnealing(DdManager *table, int lower, int upper)
DdHook * preReorderingHook
DdNode * cuddUniqueConst(DdManager *unique, CUDD_VALUE_TYPE value)
DdNode * cuddCacheLookup1(DdManager *table, DdNode *(*)(DdManager *, DdNode *), DdNode *f)
DdNode * cuddCacheLookup2(DdManager *table, DdNode *(*)(DdManager *, DdNode *, DdNode *), DdNode *f, DdNode *g)
DdNode * cuddZddWeakDivF(DdManager *dd, DdNode *f, DdNode *g)
unsigned int maxCacheHard
int cuddZddGetNegVarLevel(DdManager *dd, int index)
int cuddResizeLinear(DdManager *table)
struct DdGen::@1::@5 nodes
void cuddSetInteract(DdManager *table, int x, int y)
int cuddCollectNodes(DdNode *f, st_table *visited)
int cuddInitInteract(DdManager *table)
void cuddReclaim(DdManager *table, DdNode *n)
int cuddNextLow(DdManager *table, int x)
int cuddZddGetNegVarIndex(DdManager *dd, int index)
int cuddSifting(DdManager *table, int lower, int upper)
DdNode * cuddCProjectionRecur(DdManager *dd, DdNode *R, DdNode *Y, DdNode *Ysupp)
DdNode * cuddBddClippingAndAbstract(DdManager *dd, DdNode *f, DdNode *g, DdNode *cube, int maxDepth, int direction)
int cuddTimesInDeathRow(DdManager *dd, DdNode *f)
DdNode * cuddLocalCacheLookup(DdLocalCache *cache, DdNodePtr *key)
void cuddCacheInsert1(DdManager *table, DdNode *(*)(DdManager *, DdNode *), DdNode *f, DdNode *data)
struct DdLocalCacheItem DdLocalCacheItem
DdNode * cuddZddWeakDiv(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddBddClippingAnd(DdManager *dd, DdNode *f, DdNode *g, int maxDepth, int direction)
int cuddCacheProfile(DdManager *table, FILE *fp)
int cuddZddSwapInPlace(DdManager *table, int x, int y)
DdNode * cuddCofactorRecur(DdManager *dd, DdNode *f, DdNode *g)
Cudd_ReorderingType autoMethodZ
void cuddLevelQueueQuit(DdLevelQueue *queue)
DdNode * cuddAddNegateRecur(DdManager *dd, DdNode *f)
DdNode * cuddZddChange(DdManager *dd, DdNode *P, int var)
DdNode * cuddAddMonadicApplyRecur(DdManager *dd, DdNode *(*op)(DdManager *, DdNode *), DdNode *f)
void cuddPrintVarGroups(DdManager *dd, MtrNode *root, int zdd, int silent)
struct DdHashTable DdHashTable
struct DdSubtable DdSubtable
int cuddTreeSifting(DdManager *table, Cudd_ReorderingType method)
int cuddZddGetPosVarIndex(DdManager *dd, int index)
DdNode * cuddAddRoundOffRecur(DdManager *dd, DdNode *f, double trunc)
DdNode * cuddHashTableLookup1(DdHashTable *hash, DdNode *f)
int cuddSymmCheck(DdManager *table, int x, int y)
int cuddZddGetPosVarLevel(DdManager *dd, int index)
int cuddExact(DdManager *table, int lower, int upper)
struct DdQueueItem * next
struct DdLocalCache * next
void cuddCacheResize(DdManager *table)
int cuddSymmSiftingConv(DdManager *table, int lower, int upper)
int cuddHeapProfile(DdManager *dd)
DdNode * cuddHashTableLookup3(DdHashTable *hash, DdNode *f, DdNode *g, DdNode *h)
int cuddGarbageCollect(DdManager *unique, int clearCache)
void cuddLocalCacheInsert(DdLocalCache *cache, DdNodePtr *key, DdNode *value)
void * cuddHashTableGenericLookup(DdHashTable *hash, DdNode *f)
void * cuddLevelQueueFirst(DdLevelQueue *queue, void *key, int level)
int cuddZddSymmSiftingConv(DdManager *table, int lower, int upper)
unsigned int randomizeOrder
void * cuddLevelQueueEnqueue(DdLevelQueue *queue, void *key, int level)
Cudd_VariableType varType
DdLocalCache * cuddLocalCacheInit(DdManager *manager, unsigned int keySize, unsigned int cacheSize, unsigned int maxCacheSize)
int cuddZddLinearSifting(DdManager *table, int lower, int upper)
struct DdQueueItem DdQueueItem
DdNode * cuddAddUnivAbstractRecur(DdManager *manager, DdNode *f, DdNode *cube)
DdLevelQueue * cuddLevelQueueInit(int levels, int itemSize, int numBuckets)
DdNode * cuddAddBddDoPattern(DdManager *dd, DdNode *f)
DdNode * cuddBddIsop(DdManager *dd, DdNode *L, DdNode *U)
DdNode * cuddBddRestrictRecur(DdManager *dd, DdNode *f, DdNode *c)
void cuddLocalCacheClearAll(DdManager *manager)
DdNode * cuddZddProduct(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddZddDiff(DdManager *zdd, DdNode *P, DdNode *Q)
DdNode * cuddBddTransfer(DdManager *ddS, DdManager *ddD, DdNode *f)
DdNode * cuddAddComposeRecur(DdManager *dd, DdNode *f, DdNode *g, DdNode *proj)
DdNode * cuddBddLiteralSetIntersectionRecur(DdManager *dd, DdNode *f, DdNode *g)
DdHook * postReorderingHook
int cuddResizeTableZdd(DdManager *unique, int index)
DdNode * cuddZddIntersect(DdManager *zdd, DdNode *P, DdNode *Q)
int cuddZddGetCofactors2(DdManager *dd, DdNode *f, int v, DdNode **f1, DdNode **f0)
DdNode * cuddAddExistAbstractRecur(DdManager *manager, DdNode *f, DdNode *cube)
void cuddSlowTableGrowth(DdManager *unique)
DdNode * cuddZddDivide(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddUniqueInterIVO(DdManager *unique, int index, DdNode *T, DdNode *E)
Cudd_LazyGroupType varToBeGrouped
DdNode * cuddCacheLookupZdd(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)
struct DdGen::@1::@4 primes
int cuddInsertSubtables(DdManager *unique, int n, int level)
void cuddLocalCacheQuit(DdLocalCache *cache)
DdNode * cuddZddIsop(DdManager *dd, DdNode *L, DdNode *U, DdNode **zdd_I)
int(* DD_HFP)(DdManager *, const char *, void *)
DdNode * cuddZddIte(DdManager *dd, DdNode *f, DdNode *g, DdNode *h)
DdNode * cuddAddApplyRecur(DdManager *dd, DdNode *(*)(DdManager *, DdNode **, DdNode **), DdNode *f, DdNode *g)
DdNode * cuddMakeBddFromZddCover(DdManager *dd, DdNode *node)
struct DdHashItem DdHashItem
DdNode * cuddBiasedUnderApprox(DdManager *dd, DdNode *f, DdNode *b, int numVars, int threshold, double quality1, double quality0)
DdNode * cuddSolveEqnRecur(DdManager *bdd, DdNode *F, DdNode *Y, DdNode **G, int n, int *yIndex, int i)
DdNode * cuddAddScalarInverseRecur(DdManager *dd, DdNode *f, DdNode *epsilon)
int cuddHashTableInsert(DdHashTable *hash, DdNodePtr *key, DdNode *value, ptrint count)
int cuddZddSifting(DdManager *table, int lower, int upper)
DdNode * cuddAddConstrainRecur(DdManager *dd, DdNode *f, DdNode *c)
DdNode * cuddUniqueInterZdd(DdManager *unique, int index, DdNode *T, DdNode *E)
int cuddZddSymmCheck(DdManager *table, int x, int y)
int cuddZddNextHigh(DdManager *table, int x)
DdNode * cuddAddRestrictRecur(DdManager *dd, DdNode *f, DdNode *c)
DdLocalCache * localCaches
DdNode * cuddBddIteRecur(DdManager *dd, DdNode *f, DdNode *g, DdNode *h)
void cuddHashTableQuit(DdHashTable *hash)
int cuddHashTableGenericInsert(DdHashTable *hash, DdNode *f, void *value)
DdNode * cuddAddOrAbstractRecur(DdManager *manager, DdNode *f, DdNode *cube)
int cuddZddGetCofactors3(DdManager *dd, DdNode *f, int v, DdNode **f1, DdNode **f0, DdNode **fd)
int cuddWindowReorder(DdManager *table, int low, int high, Cudd_ReorderingType submethod)
DdNode * cuddDynamicAllocNode(DdManager *table)
void cuddLocalCacheClearDead(DdManager *manager)
void cuddReclaimZdd(DdManager *table, DdNode *n)
DdManager * cuddInitTable(unsigned int numVars, unsigned int numVarsZ, unsigned int numSlots, unsigned int looseUpTo)
DdNode * cuddCacheLookup2Zdd(DdManager *table, DdNode *(*)(DdManager *, DdNode *, DdNode *), DdNode *f, DdNode *g)
int cuddHashTableInsert2(DdHashTable *hash, DdNode *f, DdNode *g, DdNode *value, ptrint count)
int cuddSwapping(DdManager *table, int lower, int upper, Cudd_ReorderingType heuristic)
int cuddIsInDeathRow(DdManager *dd, DdNode *f)
int cuddLinearInPlace(DdManager *table, int x, int y)
DdNode * cuddBddConstrainRecur(DdManager *dd, DdNode *f, DdNode *c)
int cuddZddInitUniv(DdManager *zdd)
int cuddNextHigh(DdManager *table, int x)
DdNode * cuddZddUnateProduct(DdManager *dd, DdNode *f, DdNode *g)
unsigned int maxReorderings
DdNode * cuddRemapUnderApprox(DdManager *dd, DdNode *f, int numVars, int threshold, double quality)
int cuddGa(DdManager *table, int lower, int upper)
DdNode * cuddBddAndRecur(DdManager *manager, DdNode *f, DdNode *g)
DdNode * cuddZddSubset1(DdManager *dd, DdNode *P, int var)
int cuddZddSymmSifting(DdManager *table, int lower, int upper)
struct DdLevelQueue DdLevelQueue
DdNode * cuddZddUnion(DdManager *zdd, DdNode *P, DdNode *Q)
DdNode * cuddCacheLookup(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)
int cuddSwapInPlace(DdManager *table, int x, int y)
DdNode * cuddBddClosestCube(DdManager *dd, DdNode *f, DdNode *g, CUDD_VALUE_TYPE bound)
void cuddCacheFlush(DdManager *table)
int cuddHashTableInsert1(DdHashTable *hash, DdNode *f, DdNode *value, ptrint count)
enum st_retval cuddStCountfree(char *key, char *value, char *arg)
DdNode * cuddBddNPAndRecur(DdManager *dd, DdNode *f, DdNode *c)
DdNode * cuddBddMakePrime(DdManager *dd, DdNode *cube, DdNode *f)
void cuddGetBranches(DdNode *g, DdNode **g1, DdNode **g0)
struct DdGen::@1::@3 cubes
DdNode * cuddUnderApprox(DdManager *dd, DdNode *f, int numVars, int threshold, int safe, double quality)
void cuddClearDeathRow(DdManager *table)
DdNode * cuddAddIteRecur(DdManager *dd, DdNode *f, DdNode *g, DdNode *h)
void cuddCacheInsert2(DdManager *table, DdNode *(*)(DdManager *, DdNode *, DdNode *), DdNode *f, DdNode *g, DdNode *data)
DdNodePtr * cuddNodeArray(DdNode *f, int *n)
DdNode * cuddHashTableLookup2(DdHashTable *hash, DdNode *f, DdNode *g)
DdNode * cuddConstantLookup(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h)
DdNode * cuddZddChangeAux(DdManager *zdd, DdNode *P, DdNode *zvar)
int cuddZddSwapping(DdManager *table, int lower, int upper, Cudd_ReorderingType heuristic)
int cuddZddTreeSifting(DdManager *table, Cudd_ReorderingType method)
int cuddP(DdManager *dd, DdNode *f)
DdNode * cuddHashTableLookup(DdHashTable *hash, DdNodePtr *key)
DdNode * cuddBddXorRecur(DdManager *manager, DdNode *f, DdNode *g)
void cuddPrintNode(DdNode *f, FILE *fp)
DdNode * cuddAllocNode(DdManager *unique)
int cuddZddAlignToBdd(DdManager *table)
struct DdLocalCache DdLocalCache
DdHashTable * cuddHashTableInit(DdManager *manager, unsigned int keySize, unsigned int initSize)
void cuddUpdateInteractionMatrix(DdManager *table, int xindex, int yindex)
DdNode * cuddZddSubset0(DdManager *dd, DdNode *P, int var)
DdNode * cuddZddDivideF(DdManager *dd, DdNode *f, DdNode *g)
DdNode * cuddBddIntersectRecur(DdManager *dd, DdNode *f, DdNode *g)
int cuddComputeFloorLog2(unsigned int value)
void cuddCacheInsert(DdManager *table, ptruint op, DdNode *f, DdNode *g, DdNode *h, DdNode *data)
int cuddLinearAndSifting(DdManager *table, int lower, int upper)
void cuddFreeTable(DdManager *unique)
int cuddTestInteract(DdManager *table, int x, int y)
int cuddBddAlignToZdd(DdManager *table)
DdNode * cuddBddAndAbstractRecur(DdManager *manager, DdNode *f, DdNode *g, DdNode *cube)
void cuddShrinkDeathRow(DdManager *table)
int cuddInitCache(DdManager *unique, unsigned int cacheSize, unsigned int maxCacheSize)
struct DdQueueItem * cnext
void cuddHashTableGenericQuit(DdHashTable *hash)
int cuddSymmSifting(DdManager *table, int lower, int upper)
DdNode * cuddSplitSetRecur(DdManager *manager, st_table *mtable, int *varSeen, DdNode *p, double n, double max, int index)
int cuddZddUniqueCompare(int *ptr_x, int *ptr_y)
int cuddZddNextLow(DdManager *table, int x)
DdNode * cuddUniqueInter(DdManager *unique, int index, DdNode *T, DdNode *E)
int cuddDestroySubtables(DdManager *unique, int n)
int cuddZddP(DdManager *zdd, DdNode *f)
DdNode * cuddZddComplement(DdManager *dd, DdNode *node)
int cuddHashTableInsert3(DdHashTable *hash, DdNode *f, DdNode *g, DdNode *h, DdNode *value, ptrint count)