Keywords: cuddIntro

Next: Setting Parameters Up: User's Manual Previous: Basic Data Structures

## Initializing and Shutting Down a DdManager

To use the functions in the CUDD package, one has first to initialize the package itself by calling Cudd_Init . This function takes four parameters:

- numVars : It is the initial number of variables for BDDs and ADDs. If the total number of variables needed by the application is known, then it is slightly more efficient to create a manager with that number of variables. If the number is unknown, it can be set to 0, or to any other lower bound on the number of variables. Requesting more variables than are actually needed is not incorrect, but is not efficient.
- numVarsZ : It is the initial number of variables for ZDDs. See Sections 3.9 and 3.11 for a discussion of the value of this argument.
- numSlots : Determines the initial size of each subtable of the unique table. There is a subtable for each variable. The size of each subtable is dynamically adjusted to reflect the number of nodes. It is normally O.K. to use the default value for this parameter, which is CUDD_UNIQUE_SLOTS .
- cacheSize : It is the initial size (number of entries) of the cache . Its default value is CUDD_CACHE_SLOTS .
- maxMemory : It is the target value for the maximum memory occupation (in bytes). The package uses this value to decide two parameters.
  - the maximum size to which the cache will grow, regardless of the hit rate or the size of the unique table.
  - the maximum size to which growth of the unique table will be preferred to garbage collection.
  If maxMemory is set to 0, CUDD tries to guess a good value based on the available memory.

A typical call to Cudd_Init may look like this:

      manager = Cudd_Init(0,0,CUDD_UNIQUE_SLOTS,CUDD_CACHE_SLOTS,0);

To reclaim all the memory associated with a manager, an application must call Cudd_Quit . This is normally done before exiting.

Next: Setting Parameters Up: User's Manual Previous: Basic Data Structures