Lines Matching defs:DdManager

399 struct DdManager {  struct
401 DdNode sentinel; /**< for collision lists */
402 DdNode *one; /**< constant 1 */
403 DdNode *zero; /**< constant 0 */
404 DdNode *plusinfinity; /**< plus infinity */
405 DdNode *minusinfinity; /**< minus infinity */
406 DdNode *background; /**< background value */
408 DdCache *acache; /**< address of allocated memory for cache */
409 DdCache *cache; /**< the cache-based computed table */
410 unsigned int cacheSlots; /**< total number of cache entries */
411 int cacheShift; /**< shift value for cache hash function */
412 double cacheMisses; /**< number of cache misses (since resizing) */
413 double cacheHits; /**< number of cache hits (since resizing) */
414 double minHit; /**< hit percentage above which to resize */
415 int cacheSlack; /**< slots still available for resizing */
416 unsigned int maxCacheHard; /**< hard limit for cache size */
418 int size; /**< number of unique subtables */
419 int sizeZ; /**< for %ZDD */
420 int maxSize; /**< max number of subtables before resizing */
421 int maxSizeZ; /**< for %ZDD */
422 DdSubtable *subtables; /**< array of unique subtables */
423 DdSubtable *subtableZ; /**< for %ZDD */
424 DdSubtable constants; /**< unique subtable for the constants */
425 unsigned int slots; /**< total number of hash buckets */
426 unsigned int keys; /**< total number of %BDD and %ADD nodes */
427 unsigned int keysZ; /**< total number of %ZDD nodes */
428 unsigned int dead; /**< total number of dead %BDD and %ADD nodes */
429 unsigned int deadZ; /**< total number of dead %ZDD nodes */
430 unsigned int maxLive; /**< maximum number of live nodes */
431 unsigned int minDead; /**< do not GC if fewer than these dead */
432 int gcEnabled; /**< gc is enabled */
433 double gcFrac; /**< gc when this fraction is dead */
434 unsigned int looseUpTo; /**< slow growth beyond this limit */
436 unsigned int initSlots; /**< initial size of a subtable */
437 DdNode **stack; /**< stack for iterative procedures */
438 double allocated; /**< number of nodes allocated */
440 double reclaimed; /**< number of nodes brought back from the dead */
441 int *perm; /**< current variable perm. (index to level) */
442 int *permZ; /**< for %ZDD */
443 int *invperm; /**< current inv. var. perm. (level to index) */
444 int *invpermZ; /**< for %ZDD */
445 DdNode **vars; /**< projection functions */
446 int *map; /**< variable map for fast swap */
447 DdNode **univ; /**< %ZDD 1 for each variable */
448 unsigned int isolated; /**< isolated projection functions */
449 unsigned int originalSize; /**< used by lazy sifting */
450 int linearSize; /**< number of rows and columns of linear */
451 ptruint *interact; /**< interacting variable matrix */
452 ptruint *linear; /**< linear transform matrix */
454 DdNode **memoryList; /**< memory manager for symbol table */
455 DdNode *nextFree; /**< list of free nodes */
456 char *stash; /**< memory reserve */
458 DdNode **deathRow; /**< queue for dereferencing */
459 int deathRowDepth; /**< number of slots in the queue */
460 int nextDead; /**< index in the queue */
461 unsigned deadMask; /**< mask for circular index update */
464 CUDD_VALUE_TYPE epsilon; /**< tolerance on comparisons */
466 int reordered; /**< flag set at the end of reordering */
467 unsigned int reorderings; /**< number of calls to Cudd_ReduceHeap */
468 unsigned int maxReorderings;/**< maximum number of calls to Cudd_ReduceHeap */
469 int siftMaxVar; /**< maximum number of vars sifted */
470 int siftMaxSwap; /**< maximum number of swaps per sifting */
471 int ddTotalNumberSwapping; /**< number of %BDD/%ADD swaps completed */
472 int zddTotalNumberSwapping; /**< number of %ZDD swaps completed */
473 int reordCycle; /**< how often to apply alternate threshold */
474 double maxGrowth; /**< maximum growth during reordering */
475 double maxGrowthAlt; /**< alternate maximum growth for reordering */
476 int autoDyn; /**< automatic dynamic reordering flag (BDD) */
477 int autoDynZ; /**< automatic dynamic reordering flag (ZDD) */
478 Cudd_ReorderingType autoMethod; /**< default reordering method */
479 Cudd_ReorderingType autoMethodZ; /**< default reordering method (ZDD) */
480 int realign; /**< realign %ZDD order after %BDD reordering */
481 int realignZ; /**< realign %BDD order after %ZDD reordering */
482 unsigned int nextDyn; /**< reorder if this size is reached */
483 unsigned int countDead; /**< if 0, count deads to trigger reordering */
484 MtrNode *tree; /**< variable group tree (BDD) */
485 MtrNode *treeZ; /**< variable group tree (ZDD) */
486 Cudd_AggregationType groupcheck; /**< used during group sifting */
487 int recomb; /**< used during group sifting */
488 int symmviolation; /**< used during group sifting */
489 int arcviolation; /**< used during group sifting */
490 int populationSize; /**< population size for GA */
491 int numberXovers; /**< number of crossovers for GA */
492 unsigned int randomizeOrder; /**< perturb the next reordering threshold */
493 DdLocalCache *localCaches; /**< local caches currently in existence */
494 void *hooks; /**< application-specific field (used by vis) */
495 DdHook *preGCHook; /**< hooks to be called before GC */
496 DdHook *postGCHook; /**< hooks to be called after GC */
497 DdHook *preReorderingHook; /**< hooks to be called before reordering */
498 DdHook *postReorderingHook; /**< hooks to be called after reordering */
499 FILE *out; /**< stdout for this manager */
500 FILE *err; /**< stderr for this manager */
501 Cudd_ErrorType errorCode; /**< info on last error */
502 unsigned long startTime; /**< start time in milliseconds */
503 unsigned long timeLimit; /**< CPU time limit */
504 DD_THFP terminationCallback; /**< termination callback */
505 void * tcbArg; /**< second argument passed to termination handler */
506 DD_OOMFP outOfMemCallback; /**< out-of-memory callback */
507 DD_TOHFP timeoutHandler; /**< timeout handler */
508 void * tohArg; /**< second argument passed to timeout handler */
510 size_t memused; /**< total memory allocated for the manager */
511 size_t maxmem; /**< target maximum memory */
512 size_t maxmemhard; /**< hard limit for maximum memory */
513 int garbageCollections; /**< number of garbage collections */
514 unsigned long GCTime; /**< total time spent in garbage collection */
515 unsigned long reordTime; /**< total time spent in reordering */
516 double totCachehits; /**< total number of cache hits */
517 double totCacheMisses; /**< total number of cache misses */
518 double cachecollisions; /**< number of cache collisions */
519 double cacheinserts; /**< number of cache insertions */
520 double cacheLastInserts; /**< insertions at the last cache resizing */
521 double cachedeletions; /**< number of deletions during garbage coll. */
522 unsigned int peakLiveNodes; /**< maximum number of live nodes */
524 int32_t cuddRand; /**< state of the random number generator */
525 int32_t cuddRand2; /**< state of the random number generator */
526 int32_t shuffleSelect; /**< state of the random number generator */
527 int32_t shuffleTable[STAB_SIZE]; /**< state of the random number generator */
529 double nodesFreed; /**< number of nodes returned to the free list */
530 double nodesDropped; /**< number of nodes killed by dereferencing */
531 int totalNISwaps; /**< number of non-interacting (cheap) swaps */
532 int extsymmcalls; /**< number of calls to symmetry check fn */
533 int extsymm; /**< number of successful symmetry checks */
534 int secdiffcalls; /**< number of calls to second difference fn */
535 int secdiff; /**< number of successful second diff. checks */
536 int secdiffmisfire; /**< number of misfired second diff. checks */
537 int tosses; /**< number of coin tosses in annealing */
538 int acceptances; /**< number of acceptances in annealing */
539 int totalShuffles; /**< number of shuffles in exact reordering */
540 int totalNumberLinearTr; /**< number of linear transformations */
541 int num_calls; /**< should equal 2n-1 (n is the # of nodes) */
544 double uniqueLookUps; /**< number of unique table lookups */
545 double uniqueLinks; /**< total distance traveled in coll. chains */
548 double recursiveCalls; /**< number of recursive calls */
550 double nextSample; /**< when to write next line of stats */
552 double swapSteps; /**< number of elementary reordering steps */
555 int addPermuteRecurHits; /**< debug variable for variable permutation */
556 int bddPermuteRecurHits; /**< debug variable for variable permutation */
557 int bddVectorComposeHits; /**< debug variable for vector composition */
558 int addVectorComposeHits; /**< debug variable for vector composition */
559 int addGeneralVectorComposeHits; /**< debug var. for vector composition */
560 int enableExtraDebug; /**< deposit a 1 here to enable more debugging */