218 static char rcsid[] 
DD_UNUSED = 
"$Id: cuddAPI.c,v 1.59 2009/02/19 16:14:14 fabio Exp $";
 
  477     for (j = dd->
permZ[i] - 1; j >= 0; j--) {
 
  528     if (multiplicity < 1) 
return(0);
 
  529     allnew = dd->
sizeZ == 0;
 
  530     if (dd->
size * multiplicity > dd->
sizeZ) {
 
  532         if (res == 0) 
return(0);
 
  536         for (i = 0; i < dd->
size; i++) {
 
  537             for (j = 0; j < multiplicity; j++) {
 
  538                 dd->
permZ[i * multiplicity + j] =
 
  539                     dd->
perm[i] * multiplicity + j;
 
  541                     i * multiplicity + j;
 
  544         for (i = 0; i < dd->
sizeZ; i++) {
 
  549         if (permutation == NULL) {
 
  553         for (i = 0; i < dd->
size; i++) {
 
  554             for (j = 0; j < multiplicity; j++) {
 
  555                 permutation[i * multiplicity + j] =
 
  556                     dd->
invperm[i] * multiplicity + j;
 
  559         for (i = dd->
size * multiplicity; i < dd->sizeZ; i++) {
 
  564         if (res == 0) 
return(0);
 
  567     if (dd->
treeZ != NULL) {
 
  570     if (dd->
tree != NULL) {
 
  572         if (dd->
treeZ == NULL) 
return(0);
 
  573     } 
else if (multiplicity > 1) {
 
  575         if (dd->
treeZ == NULL) 
return(0);
 
  580     if (multiplicity > 1) {
 
  593         for (i = 0; i < dd->
size; i++) {
 
  594             vmask[i] = lmask[i] = 0;
 
  599         if (res == 0) 
return(0);
 
  677 #ifndef DD_NO_DEATH_ROW 
 1016     return(i < dd->sizeZ ? dd->
univ[i] : 
DD_ONE(dd));
 
 1178     unsigned long used = 0;
 
 1183     for (i = 0; i < slots; i++) {
 
 1184         used += cache[i].
h != 0;
 
 1187     return((
double)used / (
double) dd->
cacheSlots);
 
 1250     return(dd->recursiveCalls);
 
 1277     return((
unsigned int) (0.5 + 100 * dd->
minHit / (1 + dd->
minHit)));
 
 1304     dd->
minHit = (double) hr / (100.0 - (
double) hr);
 
 1351         lut = (
unsigned int) (datalimit / (
sizeof(
DdNode) *
 
 1421         mc = (
unsigned int) (datalimit / (
sizeof(
DdCache) *
 
 1506     unsigned long used = 0;
 
 1515     for (i = 0; i < 
size; i++) {
 
 1518         for (j = 0; (unsigned) j < subtable->slots; j++) {
 
 1520             if (node != sentinel) {
 
 1529     for (i = 0; i < 
size; i++) {
 
 1532         for (j = 0; (unsigned) j < subtable->slots; j++) {
 
 1543     for (j = 0; (unsigned) j < subtable->slots; j++) {
 
 1550     return((
double)used / (double) dd->
slots);
 
 1588     for (i = 0; i < 
size; i++) {
 
 1590         empty += (double) subtable->
slots *
 
 1591             exp(-(
double) subtable->
keys / (double) subtable->
slots);
 
 1597     for (i = 0; i < 
size; i++) {
 
 1599         empty += (double) subtable->
slots *
 
 1600             exp(-(
double) subtable->
keys / (double) subtable->
slots);
 
 1605     empty += (double) subtable->
slots *
 
 1606         exp(-(
double) subtable->
keys / (double) subtable->
slots);
 
 1608     return(1.0 - empty / (
double) dd->
slots);
 
 1788     return(dd->nodesFreed);
 
 1814     return(dd->nodesDropped);
 
 1839 #ifdef DD_UNIQUE_PROFILE 
 1840     return(dd->uniqueLookUps);
 
 1868 #ifdef DD_UNIQUE_PROFILE 
 1869     return(dd->uniqueLinks);
 
 2156     if (dd->
tree != NULL) {
 
 2160     if (tree == NULL) 
return;
 
 2183     if (dd->
tree != NULL) {
 
 2228     if (dd->
treeZ != NULL) {
 
 2232     if (tree == NULL) 
return;
 
 2255     if (dd->
treeZ != NULL) {
 
 2306     if (i < 0 || i >= dd->
size) 
return(-1);
 
 2307     return(dd->
perm[i]);
 
 2333     if (i < 0 || i >= dd->
sizeZ) 
return(-1);
 
 2334     return(dd->
permZ[i]);
 
 2359     if (i < 0 || i >= dd->
size) 
return(-1);
 
 2385     if (i < 0 || i >= dd->
sizeZ) 
return(-1);
 
 2411     if (i < 0 || i > dd->
size) 
return(NULL);
 
 2412     return(dd->
vars[i]);
 
 2945     retval = fprintf(fp,
"**** CUDD modifiable parameters ****\n");
 
 2946     if (retval == EOF) 
return(0);
 
 2947     retval = fprintf(fp,
"Hard limit for cache size: %u\n",
 
 2949     if (retval == EOF) 
return(0);
 
 2950     retval = fprintf(fp,
"Cache hit threshold for resizing: %u%%\n",
 
 2952     if (retval == EOF) 
return(0);
 
 2953     retval = fprintf(fp,
"Garbage collection enabled: %s\n",
 
 2955     if (retval == EOF) 
return(0);
 
 2956     retval = fprintf(fp,
"Limit for fast unique table growth: %u\n",
 
 2958     if (retval == EOF) 
return(0);
 
 2959     retval = fprintf(fp,
 
 2960                      "Maximum number of variables sifted per reordering: %d\n",
 
 2962     if (retval == EOF) 
return(0);
 
 2963     retval = fprintf(fp,
 
 2964                      "Maximum number of variable swaps per reordering: %d\n",
 
 2966     if (retval == EOF) 
return(0);
 
 2967     retval = fprintf(fp,
"Maximum growth while sifting a variable: %g\n",
 
 2969     if (retval == EOF) 
return(0);
 
 2970     retval = fprintf(fp,
"Dynamic reordering of BDDs enabled: %s\n",
 
 2972     if (retval == EOF) 
return(0);
 
 2973     retval = fprintf(fp,
"Default BDD reordering method: %d\n",
 
 2975     if (retval == EOF) 
return(0);
 
 2976     retval = fprintf(fp,
"Dynamic reordering of ZDDs enabled: %s\n",
 
 2978     if (retval == EOF) 
return(0);
 
 2979     retval = fprintf(fp,
"Default ZDD reordering method: %d\n",
 
 2981     if (retval == EOF) 
return(0);
 
 2982     retval = fprintf(fp,
"Realignment of ZDDs to BDDs enabled: %s\n",
 
 2984     if (retval == EOF) 
return(0);
 
 2985     retval = fprintf(fp,
"Realignment of BDDs to ZDDs enabled: %s\n",
 
 2987     if (retval == EOF) 
return(0);
 
 2988     retval = fprintf(fp,
"Dead nodes counted in triggering reordering: %s\n",
 
 2990     if (retval == EOF) 
return(0);
 
 2991     retval = fprintf(fp,
"Group checking criterion: %d\n",
 
 2993     if (retval == EOF) 
return(0);
 
 2994     retval = fprintf(fp,
"Recombination threshold: %d\n", 
Cudd_ReadRecomb(dd));
 
 2995     if (retval == EOF) 
return(0);
 
 2996     retval = fprintf(fp,
"Symmetry violation threshold: %d\n",
 
 2998     if (retval == EOF) 
return(0);
 
 2999     retval = fprintf(fp,
"Arc violation threshold: %d\n",
 
 3001     if (retval == EOF) 
return(0);
 
 3002     retval = fprintf(fp,
"GA population size: %d\n",
 
 3004     if (retval == EOF) 
return(0);
 
 3005     retval = fprintf(fp,
"Number of crossovers for GA: %d\n",
 
 3007     if (retval == EOF) 
return(0);
 
 3008     retval = fprintf(fp,
"Next reordering threshold: %u\n",
 
 3010     if (retval == EOF) 
return(0);
 
 3013     retval = fprintf(fp,
"**** CUDD non-modifiable parameters ****\n");
 
 3014     if (retval == EOF) 
return(0);
 
 3016     if (retval == EOF) 
return(0);
 
 3017     retval = fprintf(fp,
"Peak number of nodes: %ld\n",
 
 3019     if (retval == EOF) 
return(0);
 
 3020     retval = fprintf(fp,
"Peak number of live nodes: %d\n",
 
 3022     if (retval == EOF) 
return(0);
 
 3023     retval = fprintf(fp,
"Number of BDD variables: %d\n", dd->
size);
 
 3024     if (retval == EOF) 
return(0);
 
 3025     retval = fprintf(fp,
"Number of ZDD variables: %d\n", dd->
sizeZ);
 
 3026     if (retval == EOF) 
return(0);
 
 3027     retval = fprintf(fp,
"Number of cache entries: %u\n", dd->
cacheSlots);
 
 3028     if (retval == EOF) 
return(0);
 
 3029     retval = fprintf(fp,
"Number of cache look-ups: %.0f\n",
 
 3031     if (retval == EOF) 
return(0);
 
 3032     retval = fprintf(fp,
"Number of cache hits: %.0f\n",
 
 3034     if (retval == EOF) 
return(0);
 
 3035     retval = fprintf(fp,
"Number of cache insertions: %.0f\n",
 
 3037     if (retval == EOF) 
return(0);
 
 3038     retval = fprintf(fp,
"Number of cache collisions: %.0f\n",
 
 3040     if (retval == EOF) 
return(0);
 
 3041     retval = fprintf(fp,
"Number of cache deletions: %.0f\n",
 
 3043     if (retval == EOF) 
return(0);
 
 3045     if (retval == 0) 
return(0);
 
 3046     retval = fprintf(fp,
"Soft limit for cache size: %u\n",
 
 3048     if (retval == EOF) 
return(0);
 
 3049     retval = fprintf(fp,
"Number of buckets in unique table: %u\n", dd->
slots);
 
 3050     if (retval == EOF) 
return(0);
 
 3051     retval = fprintf(fp,
"Used buckets in unique table: %.2f%% (expected %.2f%%)\n",
 
 3054     if (retval == EOF) 
return(0);
 
 3055 #ifdef DD_UNIQUE_PROFILE 
 3056     retval = fprintf(fp,
"Unique lookups: %.0f\n", dd->uniqueLookUps);
 
 3057     if (retval == EOF) 
return(0);
 
 3058     retval = fprintf(fp,
"Unique links: %.0f (%g per lookup)\n",
 
 3059             dd->uniqueLinks, dd->uniqueLinks / dd->uniqueLookUps);
 
 3060     if (retval == EOF) 
return(0);
 
 3062     retval = fprintf(fp,
"Number of BDD and ADD nodes: %u\n", dd->
keys);
 
 3063     if (retval == EOF) 
return(0);
 
 3064     retval = fprintf(fp,
"Number of ZDD nodes: %u\n", dd->
keysZ);
 
 3065     if (retval == EOF) 
return(0);
 
 3066     retval = fprintf(fp,
"Number of dead BDD and ADD nodes: %u\n", dd->
dead);
 
 3067     if (retval == EOF) 
return(0);
 
 3068     retval = fprintf(fp,
"Number of dead ZDD nodes: %u\n", dd->
deadZ);
 
 3069     if (retval == EOF) 
return(0);
 
 3070     retval = fprintf(fp,
"Total number of nodes allocated: %d\n", (
int)dd->
allocated);
 
 3071     if (retval == EOF) 
return(0);
 
 3072     retval = fprintf(fp,
"Total number of nodes reclaimed: %.0f\n",
 
 3074     if (retval == EOF) 
return(0);
 
 3076     retval = fprintf(fp,
"Nodes freed: %.0f\n", dd->nodesFreed);
 
 3077     if (retval == EOF) 
return(0);
 
 3078     retval = fprintf(fp,
"Nodes dropped: %.0f\n", dd->nodesDropped);
 
 3079     if (retval == EOF) 
return(0);
 
 3082     retval = fprintf(fp,
"Number of recursive calls: %.0f\n",
 
 3084     if (retval == EOF) 
return(0);
 
 3086     retval = fprintf(fp,
"Garbage collections so far: %d\n",
 
 3088     if (retval == EOF) 
return(0);
 
 3089     retval = fprintf(fp,
"Time for garbage collection: %.2f sec\n",
 
 3091     if (retval == EOF) 
return(0);
 
 3092     retval = fprintf(fp,
"Reorderings so far: %d\n", dd->
reorderings);
 
 3093     if (retval == EOF) 
return(0);
 
 3094     retval = fprintf(fp,
"Time for reordering: %.2f sec\n",
 
 3096     if (retval == EOF) 
return(0);
 
 3098     retval = fprintf(fp,
"Node swaps in reordering: %.0f\n",
 
 3100     if (retval == EOF) 
return(0);
 
 3128     while (scan != NULL) {
 
 3154     unsigned int live = dd->
keys - dd->
dead;
 
 3185 #ifndef DD_NO_DEATH_ROW 
 3189     count = (long) (dd->
keys - dd->
dead);
 
 3194     for (i=0; i < dd->
size; i++) {
 
 3195         if (dd->
vars[i]->
ref == 1) count--;
 
 3198     if (
DD_ZERO(dd)->ref == 1) count--;
 
 3249     DdHook **hook, *nextHook, *newHook;
 
 3270     while (nextHook != NULL) {
 
 3271         if (nextHook->
f == f) {
 
 3274         hook = &(nextHook->
next);
 
 3275         nextHook = nextHook->
next;
 
 3280     if (newHook == NULL) {
 
 3284     newHook->
next = NULL;
 
 3311     DdHook **hook, *nextHook;
 
 3330     while (nextHook != NULL) {
 
 3331         if (nextHook->
f == f) {
 
 3332             *hook = nextHook->
next;
 
 3336         hook = &(nextHook->
next);
 
 3337         nextHook = nextHook->
next;
 
 3383     while (hook != NULL) {
 
 3416     retval = fprintf(dd->
out,
"%s reordering with ", str);
 
 3417     if (retval == EOF) 
return(0);
 
 3426         retval = fprintf(dd->
out,
"converging ");
 
 3427         if (retval == EOF) 
return(0);
 
 3435         retval = fprintf(dd->
out,
"random");
 
 3439         retval = fprintf(dd->
out,
"sifting");
 
 3443         retval = fprintf(dd->
out,
"symmetric sifting");
 
 3446         retval = fprintf(dd->
out,
"lazy sifting");
 
 3450         retval = fprintf(dd->
out,
"group sifting");
 
 3458         retval = fprintf(dd->
out,
"window");
 
 3461         retval = fprintf(dd->
out,
"annealing");
 
 3464         retval = fprintf(dd->
out,
"genetic");
 
 3468         retval = fprintf(dd->
out,
"linear sifting");
 
 3471         retval = fprintf(dd->
out,
"exact");
 
 3476     if (retval == EOF) 
return(0);
 
 3478     retval = fprintf(dd->
out,
": from %ld to ... ", 
strcmp(str, 
"BDD") == 0 ?
 
 3480     if (retval == EOF) 
return(0);
 
 3506     long initialTime = (long) data;
 
 3509     double totalTimeSec = (double)(finalTime - initialTime) / 1000.0;
 
 3511     retval = fprintf(dd->
out,
"%ld nodes in %g sec\n", 
strcmp(str, 
"BDD") == 0 ?
 
 3514     if (retval == EOF) 
return(0);
 
 3515     retval = fflush(dd->
out);
 
 3516     if (retval == EOF) 
return(0);
 
 3791     return(dd->swapSteps);
 
 3835   unsigned int maxLive)
 
 3878   unsigned long maxMemory)
 
 3903     if (index >= dd->
size || index < 0) 
return(0);
 
 3931     if (index >= dd->
size || index < 0) 
return(0);
 
 3958     if (index >= dd->
size || index < 0) 
return(0);
 
 3981     if (index >= dd->
size || index < 0) 
return (0);
 
 4005     if (index >= dd->
size || index < 0) 
return (0);
 
 4029     if (index >= dd->
size || index < 0) 
return (0);
 
 4054     if (index >= dd->
size || index < 0) 
return -1;
 
 4078     if (index >= dd->
size || index < 0) 
return -1;
 
 4102     if (index >= dd->
size || index < 0) 
return -1;
 
 4127     if (index >= dd->
size || index < 0) 
return(0);
 
 4152     if (index >= dd->
size || index < 0) 
return -1;
 
 4175     if (index >= dd->
size || index < 0) 
return(0);
 
 4202     if (index >= dd->
size || index < 0) 
return(0);
 
 4226     if (index >= dd->
size || index < 0) 
return(0);
 
 4253     if (index >= dd->
size || index < 0) 
return(-1);
 
 4279     if (index >= dd->
size || index < 0) 
return(0);
 
 4305     if (index >= dd->
size || index < 0) 
return(-1);
 
 4330     if (index >= dd->
size || index < 0) 
return(-1);
 
 4365     treenode->
low = ((int) treenode->
index < size) ?
 
 4367     if (treenode->
child != NULL)
 
 4369     if (treenode->
younger != NULL)
 
 4409     int startV, stopV, startL;
 
 4413     while (auxnode != NULL) {
 
 4414         if (auxnode->
child != NULL) {
 
 4418         startV = dd->
permZ[auxnode->
index] / multiplicity;
 
 4419         startL = auxnode->
low / multiplicity;
 
 4420         stopV = startV + auxnode->
size / multiplicity;
 
 4422         for (i = startV, j = startL; i < stopV; i++) {
 
 4423             if (vmask[i] == 0) {
 
 4425                 while (lmask[j] == 1) j++;
 
 4426                 node = 
Mtr_MakeGroup(auxnode, j * multiplicity, multiplicity,
 
int Cudd_bddIsPiVar(DdManager *dd, int index)
long Cudd_ReadNodeCount(DdManager *dd)
int Cudd_bddResetVarToBeGrouped(DdManager *dd, int index)
DdNode * Cudd_bddNewVarAtLevel(DdManager *dd, int level)
Cudd_AggregationType groupcheck
MtrNode * Cudd_ReadZddTree(DdManager *dd)
void Cudd_RecursiveDerefZdd(DdManager *table, DdNode *n)
DdNode * Cudd_ReadZero(DdManager *dd)
unsigned int Cudd_ReadDead(DdManager *dd)
DdNode * Cudd_ReadZddOne(DdManager *dd, int i)
void Cudd_SetMinHit(DdManager *dd, unsigned int hr)
void Cudd_SetStdout(DdManager *dd, FILE *fp)
int(* DD_HFP)(DdManager *, const char *, void *)
void Cudd_SetMaxCacheHard(DdManager *dd, unsigned int mc)
int Cudd_StdPostReordHook(DdManager *dd, const char *str, void *data)
int Cudd_bddIsPsVar(DdManager *dd, int index)
Cudd_ReorderingType autoMethod
int Cudd_bddReadPairIndex(DdManager *dd, int index)
unsigned int peakLiveNodes
void Cudd_SetArcviolation(DdManager *dd, int arcviolation)
DdNode * Cudd_zddIthVar(DdManager *dd, int i)
int Cudd_bddUnbindVar(DdManager *dd, int index)
int Cudd_ReadSiftMaxSwap(DdManager *dd)
void Cudd_SetStderr(DdManager *dd, FILE *fp)
#define DD_MAX_CACHE_FRACTION
void Cudd_TurnOffCountDead(DdManager *dd)
DdNode * Cudd_ReadBackground(DdManager *dd)
void Cudd_SetMaxGrowth(DdManager *dd, double mg)
double Cudd_ExpectedUsedSlots(DdManager *dd)
void Cudd_SetBackground(DdManager *dd, DdNode *bck)
DdHook * preReorderingHook
void Cudd_SetTree(DdManager *dd, MtrNode *tree)
unsigned int Cudd_ReadMaxCache(DdManager *dd)
long Cudd_ReadPeakNodeCount(DdManager *dd)
DdNode * cuddUniqueConst(DdManager *unique, CUDD_VALUE_TYPE value)
int Cudd_ReorderingStatusZdd(DdManager *unique, Cudd_ReorderingType *method)
int Cudd_StdPreReordHook(DdManager *dd, const char *str, void *data)
#define ABC_REALLOC(type, obj, num)
int Cudd_ReadRecomb(DdManager *dd)
int Cudd_bddBindVar(DdManager *dd, int index)
int Cudd_bddSetPairIndex(DdManager *dd, int index, int pairIndex)
double Cudd_ReadSwapSteps(DdManager *dd)
#define Cudd_IsConstant(node)
unsigned int maxCacheHard
DdNode * Cudd_ReadLogicZero(DdManager *dd)
#define Cudd_Regular(node)
#define DD_MAX_LOOSE_FRACTION
int Cudd_bddSetNsVar(DdManager *dd, int index)
int Cudd_ReadZddSize(DdManager *dd)
void Cudd_SetZddTree(DdManager *dd, MtrNode *tree)
int Cudd_IsNonConstant(DdNode *f)
unsigned int Cudd_ReadCacheSlots(DdManager *dd)
int Cudd_AddHook(DdManager *dd, DD_HFP f, Cudd_HookType where)
Cudd_AggregationType Cudd_ReadGroupcheck(DdManager *dd)
unsigned int Cudd_ReadMaxCacheHard(DdManager *dd)
int Cudd_bddIsNsVar(DdManager *dd, int index)
static ABC_NAMESPACE_IMPL_START char rcsid[] DD_UNUSED
void Cudd_FreeZddTree(DdManager *dd)
double Cudd_ReadNodesDropped(DdManager *dd)
int Cudd_GarbageCollectionEnabled(DdManager *dd)
unsigned int Cudd_ReadMinHit(DdManager *dd)
int Cudd_DeadAreCounted(DdManager *dd)
void Mtr_FreeTree(MtrNode *node)
void Cudd_bddRealignEnable(DdManager *unique)
int Cudd_bddSetVarHardGroup(DdManager *dd, int index)
#define ABC_ALLOC(type, num)
unsigned int Cudd_ReadSlots(DdManager *dd)
unsigned long Cudd_ReadMemoryInUse(DdManager *dd)
void Cudd_AutodynDisable(DdManager *unique)
DdNode * Cudd_ReadVars(DdManager *dd, int i)
Cudd_ReorderingType autoMethodZ
void Cudd_bddRealignDisable(DdManager *unique)
void Cudd_ClearErrorCode(DdManager *dd)
DdNode * Cudd_addNewVar(DdManager *dd)
void Cudd_TurnOnCountDead(DdManager *dd)
int Cudd_IsInHook(DdManager *dd, DD_HFP f, Cudd_HookType where)
int Cudd_bddSetPsVar(DdManager *dd, int index)
Cudd_ErrorType Cudd_ReadErrorCode(DdManager *dd)
DdNode * Cudd_ReadMinusInfinity(DdManager *dd)
int Cudd_ReadArcviolation(DdManager *dd)
double Cudd_ReadUniqueLinks(DdManager *dd)
void Cudd_SetGroupcheck(DdManager *dd, Cudd_AggregationType gc)
#define DD_MINUS_INFINITY(dd)
DdNode * Cudd_bddIthVar(DdManager *dd, int i)
void Cudd_SetSiftMaxVar(DdManager *dd, int smv)
void Cudd_DisableGarbageCollection(DdManager *dd)
void Cudd_AutodynEnable(DdManager *unique, Cudd_ReorderingType method)
Cudd_VariableType varType
EXTERN long getSoftDataLimit()
unsigned int Cudd_ReadKeys(DdManager *dd)
void Cudd_AutodynEnableZdd(DdManager *unique, Cudd_ReorderingType method)
void Cudd_SetMaxMemory(DdManager *dd, unsigned long maxMemory)
int Cudd_zddShuffleHeap(DdManager *table, int *permutation)
DdHook * postReorderingHook
int Cudd_ReadReorderingCycle(DdManager *dd)
int cuddResizeTableZdd(DdManager *unique, int index)
int Cudd_ReadSymmviolation(DdManager *dd)
void Cudd_EnableGarbageCollection(DdManager *dd)
int Cudd_PrintInfo(DdManager *dd, FILE *fp)
DdNode * Cudd_addNewVarAtLevel(DdManager *dd, int level)
void Cudd_SetPopulationSize(DdManager *dd, int populationSize)
Cudd_LazyGroupType varToBeGrouped
int cuddInsertSubtables(DdManager *unique, int n, int level)
void Cudd_SetRecomb(DdManager *dd, int recomb)
static int addMultiplicityGroups(DdManager *dd, MtrNode *treenode, int multiplicity, char *vmask, char *lmask)
int Cudd_EnableReorderingReporting(DdManager *dd)
#define ABC_NAMESPACE_IMPL_END
DdNode * Cudd_bddNewVar(DdManager *dd)
unsigned int Cudd_ReadNextReordering(DdManager *dd)
void Cudd_SetSymmviolation(DdManager *dd, int symmviolation)
unsigned int Cudd_ReadMinDead(DdManager *dd)
double Cudd_ReadCacheLookUps(DdManager *dd)
void Cudd_SetMaxGrowthAlternate(DdManager *dd, double mg)
DdNode * Cudd_ReadPlusInfinity(DdManager *dd)
void Cudd_SetNumberXovers(DdManager *dd, int numberXovers)
int Cudd_ReadPopulationSize(DdManager *dd)
long Cudd_zddReadNodeCount(DdManager *dd)
double Cudd_ReadMaxGrowthAlternate(DdManager *dd)
int Cudd_bddRealignmentEnabled(DdManager *unique)
int Cudd_bddSetVarToBeUngrouped(DdManager *dd, int index)
DdNode * cuddUniqueInterZdd(DdManager *unique, int index, DdNode *T, DdNode *E)
int Cudd_ReadSize(DdManager *dd)
double Cudd_ReadCacheUsedSlots(DdManager *dd)
int Cudd_ReadPeakLiveNodeCount(DdManager *dd)
int Cudd_ReadPerm(DdManager *dd, int i)
void Cudd_SetReorderingCycle(DdManager *dd, int cycle)
void Cudd_SetMaxLive(DdManager *dd, unsigned int maxLive)
int Cudd_bddSetVarToBeGrouped(DdManager *dd, int index)
double Cudd_ReadUsedSlots(DdManager *dd)
void Cudd_SetNextReordering(DdManager *dd, unsigned int next)
int Cudd_bddVarIsBound(DdManager *dd, int index)
int Cudd_ReadReorderings(DdManager *dd)
#define ABC_NAMESPACE_IMPL_START
void Cudd_AutodynDisableZdd(DdManager *unique)
int Cudd_bddIsVarToBeGrouped(DdManager *dd, int index)
int Cudd_zddVarsFromBddVars(DdManager *dd, int multiplicity)
unsigned int Cudd_ReadMaxLive(DdManager *dd)
double Cudd_ReadCacheHits(DdManager *dd)
int Cudd_ReorderingReporting(DdManager *dd)
void Cudd_SetSiftMaxSwap(DdManager *dd, int sms)
int Cudd_zddRealignmentEnabled(DdManager *unique)
unsigned int Cudd_ReadLooseUpTo(DdManager *dd)
int cuddCacheProfile(DdManager *table, FILE *fp)
DdNode * Cudd_addIthVar(DdManager *dd, int i)
MtrNode * Mtr_InitGroupTree(int lower, int size)
int Cudd_ReadSiftMaxVar(DdManager *dd)
int Cudd_bddIsVarHardGroup(DdManager *dd, int index)
long Cudd_ReadReorderingTime(DdManager *dd)
double Cudd_ReadMaxGrowth(DdManager *dd)
int Cudd_ReadGarbageCollections(DdManager *dd)
int Cudd_ReadNumberXovers(DdManager *dd)
MtrNode * Cudd_ReadTree(DdManager *dd)
unsigned long Cudd_ReadMaxMemory(DdManager *dd)
void cuddClearDeathRow(DdManager *table)
int Cudd_ReadPermZdd(DdManager *dd, int i)
int Cudd_ReorderingStatus(DdManager *unique, Cudd_ReorderingType *method)
double Cudd_ReadUniqueLookUps(DdManager *dd)
int Cudd_ReadInvPermZdd(DdManager *dd, int i)
double Cudd_ReadNodesFreed(DdManager *dd)
void Cudd_SetLooseUpTo(DdManager *dd, unsigned int lut)
#define DD_PLUS_INFINITY(dd)
DdNode * Cudd_ReadOne(DdManager *dd)
DdNode * Cudd_addConst(DdManager *dd, CUDD_VALUE_TYPE c)
int Cudd_DisableReorderingReporting(DdManager *dd)
void Cudd_FreeTree(DdManager *dd)
void Cudd_zddRealignDisable(DdManager *unique)
int Cudd_bddSetPiVar(DdManager *dd, int index)
void Cudd_SetEpsilon(DdManager *dd, CUDD_VALUE_TYPE ep)
FILE * Cudd_ReadStdout(DdManager *dd)
MtrNode * Mtr_MakeGroup(MtrNode *root, unsigned int low, unsigned int high, unsigned int flags)
static void fixVarTree(MtrNode *treenode, int *perm, int size)
unsigned int Cudd_NodeReadIndex(DdNode *node)
MtrNode * Mtr_CopyTree(MtrNode *node, int expansion)
double Cudd_ReadRecursiveCalls(DdManager *dd)
long Cudd_ReadGarbageCollectionTime(DdManager *dd)
int Cudd_RemoveHook(DdManager *dd, DD_HFP f, Cudd_HookType where)
int Cudd_bddIsVarToBeUngrouped(DdManager *dd, int index)
DdNode * cuddUniqueInter(DdManager *unique, int index, DdNode *T, DdNode *E)
CUDD_VALUE_TYPE Cudd_ReadEpsilon(DdManager *dd)
void Cudd_zddRealignEnable(DdManager *unique)
int Cudd_ReadInvPerm(DdManager *dd, int i)
FILE * Cudd_ReadStderr(DdManager *dd)