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)