Lines Matching defs:DdManager

342 struct DdManager {      /* specialized DD symbol table */  struct
344 DdNode sentinel; /* for collision lists */
345 DdNode *one; /* constant 1 */
346 DdNode *zero; /* constant 0 */
347 DdNode *plusinfinity; /* plus infinity */
348 DdNode *minusinfinity; /* minus infinity */
349 DdNode *background; /* background value */
351 DdCache *acache; /* address of allocated memory for cache */
352 DdCache *cache; /* the cache-based computed table */
353 unsigned int cacheSlots; /* total number of cache entries */
354 int cacheShift; /* shift value for cache hash function */
355 double cacheMisses; /* number of cache misses (since resizing) */
356 double cacheHits; /* number of cache hits (since resizing) */
357 double minHit; /* hit percentage above which to resize */
358 int cacheSlack; /* slots still available for resizing */
359 unsigned int maxCacheHard; /* hard limit for cache size */
361 int size; /* number of unique subtables */
362 int sizeZ; /* for ZDD */
363 int maxSize; /* max number of subtables before resizing */
364 int maxSizeZ; /* for ZDD */
365 DdSubtable *subtables; /* array of unique subtables */
366 DdSubtable *subtableZ; /* for ZDD */
367 DdSubtable constants; /* unique subtable for the constants */
368 unsigned int slots; /* total number of hash buckets */
369 unsigned int keys; /* total number of BDD and ADD nodes */
370 unsigned int keysZ; /* total number of ZDD nodes */
371 unsigned int dead; /* total number of dead BDD and ADD nodes */
372 unsigned int deadZ; /* total number of dead ZDD nodes */
373 unsigned int maxLive; /* maximum number of live nodes */
374 unsigned int minDead; /* do not GC if fewer than these dead */
375 double gcFrac; /* gc when this fraction is dead */
376 int gcEnabled; /* gc is enabled */
377 unsigned int looseUpTo; /* slow growth beyond this limit */
379 unsigned int initSlots; /* initial size of a subtable */
380 DdNode **stack; /* stack for iterative procedures */
382 ABC_INT64_T allocated; /* number of nodes allocated */
384 double reclaimed; /* number of nodes brought back from the dead */
385 int isolated; /* isolated projection functions */
386 int *perm; /* current variable perm. (index to level) */
387 int *permZ; /* for ZDD */
388 int *invperm; /* current inv. var. perm. (level to index) */
389 int *invpermZ; /* for ZDD */
390 DdNode **vars; /* projection functions */
391 int *map; /* variable map for fast swap */
392 DdNode **univ; /* ZDD 1 for each variable */
393 int linearSize; /* number of rows and columns of linear */
394 long *interact; /* interacting variable matrix */
395 long *linear; /* linear transform matrix */
397 DdNode **memoryList; /* memory manager for symbol table */
398 DdNode *nextFree; /* list of free nodes */
399 char *stash; /* memory reserve */
401 DdNode **deathRow; /* queue for dereferencing */
402 int deathRowDepth; /* number of slots in the queue */
403 int nextDead; /* index in the queue */
404 unsigned deadMask; /* mask for circular index update */
407 CUDD_VALUE_TYPE epsilon; /* tolerance on comparisons */
409 int reordered; /* flag set at the end of reordering */
410 int reorderings; /* number of calls to Cudd_ReduceHeap */
411 int siftMaxVar; /* maximum number of vars sifted */
412 int siftMaxSwap; /* maximum number of swaps per sifting */
413 double maxGrowth; /* maximum growth during reordering */
414 double maxGrowthAlt; /* alternate maximum growth for reordering */
415 int reordCycle; /* how often to apply alternate threshold */
416 int autoDyn; /* automatic dynamic reordering flag (BDD) */
417 int autoDynZ; /* automatic dynamic reordering flag (ZDD) */
418 Cudd_ReorderingType autoMethod; /* default reordering method */
419 Cudd_ReorderingType autoMethodZ; /* default reordering method (ZDD) */
420 int realign; /* realign ZDD order after BDD reordering */
421 int realignZ; /* realign BDD order after ZDD reordering */
422 unsigned int nextDyn; /* reorder if this size is reached */
423 unsigned int countDead; /* if 0, count deads to trigger reordering */
424 MtrNode *tree; /* Variable group tree (BDD) */
425 MtrNode *treeZ; /* Variable group tree (ZDD) */
426 Cudd_AggregationType groupcheck; /* Used during group sifting */
427 int recomb; /* Used during group sifting */
428 int symmviolation; /* Used during group sifting */
429 int arcviolation; /* Used during group sifting */
430 int populationSize; /* population size for GA */
431 int numberXovers; /* number of crossovers for GA */
432 DdLocalCache *localCaches; /* local caches currently in existence */
436 char *hooks; /* application-specific field (used by vis) */
437 DdHook *preGCHook; /* hooks to be called before GC */
438 DdHook *postGCHook; /* hooks to be called after GC */
439 DdHook *preReorderingHook; /* hooks to be called before reordering */
440 DdHook *postReorderingHook; /* hooks to be called after reordering */
441 FILE *out; /* stdout for this manager */
442 FILE *err; /* stderr for this manager */
447 Cudd_ErrorType errorCode; /* info on last error */
449 unsigned long memused; /* total memory allocated for the manager */
450 unsigned long maxmem; /* target maximum memory */
451 unsigned long maxmemhard; /* hard limit for maximum memory */
452 int garbageCollections; /* number of garbage collections */
453 long GCTime; /* total time spent in garbage collection */
454 long reordTime; /* total time spent in reordering */
455 double totCachehits; /* total number of cache hits */
456 double totCacheMisses; /* total number of cache misses */
457 double cachecollisions; /* number of cache collisions */
458 double cacheinserts; /* number of cache insertions */
459 double cacheLastInserts; /* insertions at the last cache resizing */
460 double cachedeletions; /* number of deletions during garbage coll. */
462 double nodesFreed; /* number of nodes returned to the free list */
463 double nodesDropped; /* number of nodes killed by dereferencing */
465 unsigned int peakLiveNodes; /* maximum number of live nodes */
467 double uniqueLookUps; /* number of unique table lookups */
468 double uniqueLinks; /* total distance traveled in coll. chains */
471 double recursiveCalls; /* number of recursive calls */
473 double nextSample; /* when to write next line of stats */
475 double swapSteps; /* number of elementary reordering steps */
479 array_t *iton; /* maps ids in ddNode to node_t */
480 array_t *order; /* copy of order_list */
481 lsHandle handle; /* where it is in network BDD list */
482 network_t *network;
483 st__table *local_order; /* for local BDDs */
484 int nvars; /* variables used so far */
485 int threshold; /* for pseudo var threshold value*/
487 DdNode * bFunc;
488 DdNode * bFunc2;
489 abctime TimeStop; /* timeout for reordering */