-
ddi.h
- External header file
-
ddiInt.h
- Internal header file
-
ddiDd.c
- Functions working on Boolean functions (Ddi_Dd_t)
-
ddiDdArray.c
- Functions to manage arrays of BDDs
-
ddiDdNode.c
- Functions to access DD nodes
-
ddiMgr.c
- Functions to deal with DD Managers
-
ddiNew.c
- Utility Functions
-
ddiUtil.c
- utility functions
-
ddiVar.c
- Functions to manipulate BDD variables
-
ddiVarArray.c
- Functions to manage arrays of variables
-
ddiVarSet.c
- Functions to manage sets of variables
ddi.h
External header file
By: Gianpiero Cabodi and Stefano Quer
ddiInt.h
Internal header file
By: Gianpiero Cabodi and Stefano Quer
ddiDd.c
Functions working on Boolean functions (Ddi_Dd_t)
By: Gianpiero Cabodi and Stefano Quer
This file includes the set of operators working on Boolean
functions represented by the Ddi_Dd_t type. Internally,
functions are implemented using handles (wrappers) pointing
to BDD roots. Externally, they are accessed only by pointers.
All the results of operations are implicitly
referenced, while explicit free-ing (dereferencing) is required.
External procedures in this module include
- Basic Boolean operations: And, Or, ..., ITE
- Specific BDD operators: Constrain, Restrict
- Quantification operators: Exist, And-Exist (relational product)
- Comparison operators: Equality, Inclusion, Tautology checks
- Manipulation of (disjunctively and/or conjunctively)
partitioned BDDs: create, add/remove partitions,
- translation from/to CUDD BDDs.
- Dumping on file, based on the DDDMP format, distributed
with CUDD.
-
DdiDdOp()
- Computes an operation on Boolean functions
-
Ddi_DdDenseSet()
- Computes the Dense Super or Subset of a Boolean functions
-
Ddi_DdReadCode()
- Reads the code.
-
Ddi_DdSetCode()
- Sets the code of the boolean function.
-
Ddi_DdReadMgr()
- Reads the DD Manager of the boolean function f.
-
Ddi_DdSetMgr()
- Sets the DD Manager of the boolean function f.
-
Ddi_DdReadPart()
- Reads the array of partitions of the boolean function f.
-
Ddi_DdSetPart()
- Sets the array of partitions of the boolean function f.
-
Ddi_DdReadPartNum()
- Reads the number of partitions of the boolean function f.
-
Ddi_DdReadIthPart()
- Reads the i-th partition of the boolean function f.
-
Ddi_DdCreateFromCU()
- Builds a Ddi_Dd_t from a given CUDD node.
-
Ddi_DdPrint()
- Prints a BDD
-
Ddi_DdSupportPrint()
- Prints the support of a BDD
-
Ddi_DdSize()
- Gets the size of a BDD
-
Ddi_DdPrintStats()
- Prints Statistics of a BDD
-
Ddi_DdFree()
- Frees a BDD by De-referencing it
-
Ddi_DdDup()
- Duplicates a BDD
-
Ddi_DdCopy()
- Copies a BDD to a destination dd manager
-
Ddi_DdCopyWithAuxMgr()
- Copies a BDD to a destination dd manager using a third manager
-
Ddi_DdSwapVariablesWithAuxMgr()
- Copies a BDD to a destination dd manager using a third manager
-
Ddi_DdEvalFree()
- Evaluates an expression and frees a function
-
Ddi_DdTopvarIndex()
- Returns the variable index
-
Ddi_DdLiteral()
- Returns a literal from a variable
-
Ddi_DdComplLiteral()
- Returns a complemented literal from a variable
-
Ddi_DdEqual()
- The function returns 1 if the two DDs are equal
-
Ddi_DdIsZero()
- The function returns 1 if the DD f is the zero constant.
-
Ddi_DdIsOne()
- The function returns 1 if the DD f is the one constant.
-
Ddi_DdNot()
- Returns the complement of a function
-
Ddi_DdAnd()
- Computes the AND of two BDDs
-
Ddi_DdOr()
- Computes the OR of two BDDs
-
Ddi_DdXor()
- Computes the XOR of two BDDs
-
Ddi_DdXnor()
- Computes the XNOR of two BDDs
-
Ddi_DdIte()
- ITE operator
-
Ddi_DdAndExist()
- Computes the AND-Abstract of two BDDs
-
Ddi_DdExist()
- Computes the existential abstraction of a BDD with respect to
a support
-
Ddi_DdConstrain()
- Computes the constrain cofactor between F and C
-
Ddi_DdRestrict()
- Computes the restrict cofactor between F and C
-
Ddi_DdSwapVariables()
- Swaps two sets of variables in a function
-
Ddi_DdSupport()
- Returns the support of BDD
-
Ddi_DdStore()
- Stores BDD on file
-
Ddi_DdLoad()
- Loads BDD from file
-
Ddi_DdAddCpart()
- Adds conjoined partition
-
Ddi_DdAddDpart()
- Adds disjoined partition
-
Ddi_DdReplaceIthPart()
- Replaces i-th partition with a new one
-
Ddi_DdRemPart()
- Removes a partition
-
Ddi_DdPart2Mono()
- Creates a monolithic BDD from a partitioned one
-
Ddi_DdPartFromArray()
- Builds a partitioned function
-
Ddi_ProfileInfoInit()
-
-
Ddi_ProfileInfoFree()
-
-
Ddi_ProfileInfoPrint()
-
-
Ddi_PruneProfiled()
-
-
Ddi_MulvarInterleave()
- generates a common ordering given 2 input BDDs
-
Ddi_DdToCU()
- Converts a DD into the correspondent Cudd Node
-
GenPartDdRoots()
- Generates root pointers for partitioned DDs
-
GenPartDdRootsRecur()
- Generates root pointers for partitioned DDs (recursive)
ddiDdArray.c
Functions to manage arrays of BDDs
By: Gianpiero Cabodi and Stefano Quer
The basic manipulation allowed for BDD arrays are:
- Alloc and free an array
- Insert, fetch, extract and
include a BDD into/from array
- Duplicate an array
- Join and append a new array
- Store and load to/from file
- Other features as resize, and size
For each element of array can be apply any boolean operator
as AND,OR,XOR,XNOR,Restrict and Constrain.
-
Ddi_DdArrayAlloc()
- Allocates a new array of BDDs
-
Ddi_DdArrayFree()
- Frees an array of BDDs
-
Ddi_DdArrayInsert()
- Inserts a BDD in the array
-
Ddi_DdArrayInsertLast()
- Inserts an element at the end of array
-
Ddi_DdArrayInclude()
- Includes a BDD into an array at the i-th position.
-
Ddi_DdArrayFetch()
- Returns an element of the array
-
Ddi_DdArrayExtract()
- Extracts an element of the array
-
Ddi_DdArray_n()
- Returns the number of elements of the array
-
Ddi_DdArrayFetchLast()
- Returns the last element of the array
-
Ddi_DdArrayDup()
- Duplicates a BDD array.
-
Ddi_DdArrayCopy()
- Copy a BDD array to a destination manager.
-
Ddi_DdArrayAppend()
- Appends array2 at the end of array1
-
Ddi_DdArrayJoin()
- Joins two arrays
-
Ddi_DdArrayReadData()
- Converts Ddi_DdArray_t * into an array of Ddi_Dd_t **
-
Ddi_DdArrayToCU()
- Converts Ddi_DdArray_t * into an array of Ddi_Dd_t **
-
Ddi_DdArrayFromCU()
- Converts Ddi_DdArray_t * into an array of Ddi_Dd_t **
-
Ddi_DdArrayConstrainIthToN()
- From the i0-th to last BDD in the array , take the constrain
-
Ddi_DdArrayConstrain()
- For each BDDs in the array takes the constrain
-
Ddi_DdArrayRestrictIthToN()
- From the i0-th to last BDD in the array , take the restrict
-
Ddi_DdArrayRestrict()
- For each BDDs in the array takes the restrict
-
Ddi_DdArrayPrint()
- prints the BDDs'array
-
Ddi_DdArraySize()
- Returns the numbers of nodes in a BDDs'array
-
Ddi_DdArrayPrintStats()
- Prints Statistics of a BDD
-
Ddi_DdArrayAndIthToN()
- From the i0-th to last BDD in the array , computes AND
-
Ddi_DdArrayAnd()
- For each BDD in the array , computes AND
-
Ddi_DdArrayExistIthToN()
- From the i0-th to last BDD in the array , applies Exist
-
Ddi_DdArrayExist()
- For each BDD in the array , applies Exist
-
Ddi_DdArrayOrDdArray()
- Computes OR among two BDDs
-
Ddi_DdArrayStore()
- Writes array of BDDs in a dump file
-
Ddi_DdArrayLoad()
- Reads array of BDDs from a dump file
-
Ddi_DdArraySupportIthToN()
- Returns the support of BDDs'array from i0-th to last element
-
Ddi_DdArraySupport()
- Returns the support of BDDs'array
-
Ddi_DdArraySupportArray()
- Returns a vector of supports of BDDs'array
-
DdArrayResize()
- Resize a BDD array
ddiDdNode.c
Functions to access DD nodes
By: Gianpiero Cabodi and Stefano Quer
-
Ddi_DdRootNode()
- Returns the root node of the BDD
-
Ddi_DdNodeReadIndex()
- Returns variable index of f
-
Ddi_DdNodeThen()
- Returns Then branch of f (complemented if f compl.
-
Ddi_DdNodeElse()
- Returns Else branch of f (complemented if f compl.
-
Ddi_DdNodeIsVisited()
- Returns true if node is visited
-
Ddi_DdNodeSetVisited()
- Marks a node as visited
-
Ddi_DdNodeClearVisited()
- Clears visited flag
-
Ddi_DdNodeToCU()
- Converts into a Cudd node
-
Ddi_DdNodeFromCU()
- Converts a Cudd node into a Dd node
ddiMgr.c
Functions to deal with DD Managers
By: Gianpiero Cabodi and Stefano Quer
-
Ddi_MgrOperation()
-
-
Ddi_MgrPrintStats()
- Prints on standard outputs statistics on a DD manager
-
DdiMgrCheckVarArraySize()
- make checks and resizes arrays if required
-
Ddi_MgrInit()
- Creates a DdManager.
-
Ddi_DdiMgrQuit()
- Closes a DdManager.
-
Ddi_MgrDup()
- Creates a copy of a DdManager.
-
Ddi_MgrShuffle()
- Reorders all DDs in a manager.
-
Ddi_MgrAlign()
- Aligns the order of two managers.
-
Ddi_MgrCreateGroups2()
- Create groups of 2 variables
-
Ddi_MgrWriteOrd()
- Stores the variable ordering
-
Ddi_MgrReadOrdNamesAuxids()
- Reads the variable ordering
-
Ddi_MgrAutodynSuspend()
- Suspend autodyn if active.
-
Ddi_MgrAutodynResume()
- Resume autodyn if suspended.
-
Ddi_MgrReadMgrCU()
- Reads the Cudd Manager
-
Ddi_MgrReadOne()
- Reads one constant
-
Ddi_MgrReadZero()
- Reads zero constant
-
Ddi_MgrReadVarnames()
- Reads the variable names
-
Ddi_MgrReadVarauxids()
- Reads the variable auxiliary ids
-
Ddi_MgrReadDdNum()
- Reads the counter of Dd Handles
-
Ddi_MgrReadDynordThresh()
- Returns the threshold for the next dynamic reordering.
-
Ddi_ReadDdiName()
- Returns the threshold for the next dynamic reordering.
-
Ddi_SetDdiName()
- Returns the threshold for the next dynamic reordering.
-
Ddi_MgrReadVerbosity()
- Read verbosity
-
Ddi_MgrSetVerbosity()
- Set verbosity
-
Ddi_MgrSetMgrCU()
- Sets the CUDD manager
-
Ddi_MgrSetOne()
- Sets the one constant
-
Ddi_MgrSetZero()
- Sets the zero constant
-
Ddi_MgrSetVarnames()
- Sets the names of variables
-
Ddi_MgrSetVarauxids()
- Sets the auxiliary variable ids
-
Ddi_MgrSetDynordThresh()
- Returns the threshold for the next dynamic reordering.
-
Ddi_ReadCacheSlots()
- Reads the number of slots in the cache.
-
Ddi_ReadCacheLookUps()
- Returns the number of cache look-ups.
-
Ddi_ReadCacheHits()
- Returns the number of cache hits.
-
Ddi_ReadMinHit()
- Reads the hit ratio that causes resizing of the computed
table.
-
Ddi_ReadMaxCacheHard()
- Reads the maxCacheHard parameter of the manager.
-
Ddi_ReadMaxCache()
- Returns the soft limit for the cache size.
ddiNew.c
Utility Functions
By: Gianpiero Cabodi and Stefano Quer
-
Ddi_BddOperation()
-
-
Ddi_BddArrayOperation()
-
-
Ddi_ReadCube()
- Reads a cube from stdin
-
Ddi_ReadVarSet()
- Reads a variable set from file
-
Ddi_VarSubst()
- The function does a substitution of variables of a BDD
-
Ddi_PrintVarArray()
- Prints the indices of a VarArray
-
Ddi_PrintDdArray()
- Prints the size of each function in a DdArray
ddiUtil.c
utility functions
By: Gianpiero Cabodi and Stefano Quer
-
Ddi_ProfileHeuristicString2Enum()
- Given a string it Returns an Enumerated type
-
Ddi_ProfileHeuristicEnum2String()
- Given an Enumerated type Returns a string
-
Ddi_ReorderingMethodString2Enum()
- Given a string it Returns an Enumerated type
-
Ddi_ReorderingMethodEnum2String()
- Given an Enumerated type Returns a string
-
Ddi_DenseMethodString2Enum()
- Given a string it Returns an Enumerated type
-
Ddi_DenseMethodEnum2String()
- Given an Enumerated type Returns a string
-
Ddi_PrintVersion()
- Returns the version of CUDD package
ddiVar.c
Functions to manipulate BDD variables
By: Gianpiero Cabodi and Stefano Quer
-
Ddi_VarIndex()
- Returns the variable index
-
Ddi_IthVar()
- Returns the variable of a given index
-
Ddi_DdNewVar()
- Returns a new variable
-
Ddi_DdNewVarAtLevel()
- Returns a new variable at a given level in the order
-
Ddi_VarCurrPos()
- Returns the current position of the variable in the order
-
Ddi_VarId2Name()
- Returns the variable name given the index
-
Ddi_VarName()
- Returns the variable name given the index
-
Ddi_VarSetName()
- Returns the variable name given the index
-
Ddi_VarId2Auxid()
- Returns the variable auxid given the index
-
Ddi_VarAuxid()
- Returns the variable auxid
-
Ddi_VarSetAuxid()
- Returns the variable name given the index
-
Ddi_VarName2Id()
- Returns the variable index given the name
-
Ddi_VarAuxid2Id()
- Returns the variable index given the auxid
-
Ddi_VarToCU()
- Converts a variable into a Cudd node
-
Ddi_VarFromCU()
- Converts a Cudd node into a variable
-
Ddi_VarCopy()
- Copies a variable to a destination dd manager
-
Ddi_VarMakeGroup()
- Create a variable group
ddiVarArray.c
Functions to manage arrays of variables
By: Gianpiero Cabodi and Stefano Quer
Array of variables is implemented as an array of BDD nodes
(called "projection funtions" in CUDD package).
The basic manipulation allowed for variable arrays are:
- Alloc and free an array
- Insert and fetch a variable
- Duplicate an array
- Join and append a new array
- Convert into array of integer
- Convert into a set of variables
-
Ddi_VarArrayFromCU()
- Generates a variable array from CU vars
-
Ddi_VarArrayToCU()
- Duplicates the data field of an array of variables
-
DdiVarArrayReadData()
- Returns the data field of an array of variables
-
Ddi_VarArrayAlloc()
- Allocates a new array of variables of length "size"
-
Ddi_VarArrayFree()
- Frees an array of variables
-
Ddi_VarArray_n()
- Returns the number of elements in a variable array
-
Ddi_VarArrayInsert()
- Inserts a variable into an array at a given position
-
Ddi_VarArrayFetch()
- Returns a variable of the array at the i-th position
-
Ddi_VarArrayDup()
- Duplicates an array of variables
-
Ddi_VarArrayCopy()
- Duplicates an array of variables
-
Ddi_VarArrayAppend()
- Appends the elements of array2 at the end of array1
-
Ddi_VarArrayJoin()
- Joins two arrays, returning a new array
-
Ddi_VarArrayToInt()
- Returns the indices of variables
-
Ddi_VarArrayToVarSet()
- Converts an array of variables into a set of variables
-
Ddi_VarArrayIndex()
- Returns the index of the i-th element of the array
-
VarArrayResize()
- Resizes an array
ddiVarSet.c
Functions to manage sets of variables
By: Gianpiero Cabodi and Stefano Quer
Sets of variables (var-set) are implemented as cubes.
The basic manipulation allowed on a var-set are:
- Create an empty var-set (New)
and destroy one (Free)
- Add a new variable or remove one
- Duplicate a var-set
- Union, intersect and difference
of two var-sets
- Other specific operations
-
Ddi_VarSetVoid()
- Returns an empty var-set
-
Ddi_VarSetFree()
- Frees a var-set, dereferencing all BDD nodes
-
Ddi_VarSetIsVoid()
- The function returns 1 if the var-set is empty
-
Ddi_VarSetNext()
- The function returns a var-set excluding the top variable
-
Ddi_VarSetAdd()
- Adds a variable to the var-set
-
Ddi_VarSetDup()
- Copies a var-set into another one
-
Ddi_VarSetCopy()
- Copies a var-set to another manager
-
Ddi_VarSetEvalFree()
- Evaluates an expression and frees first argument
-
Ddi_VarSet_n()
- Returns the number of variables in the varset
-
Ddi_VarSetPrint()
- Prints the varset
-
Ddi_VarSetUnion()
- Computes the union of two var-sets
-
Ddi_VarSetIntersect()
- Computes the intersection of two var-sets
-
Ddi_VarSetDifference()
- Computes the difference of two var-sets
-
Ddi_VarSetRemove()
- Removes a variable from the var-set
-
Ddi_VarSetEqual()
- The function returns 1 if the two var-sets are equal
-
Ddi_VarSetTop()
- Returns the top variable in the ordering
-
Ddi_VarSetBottom()
- Returns the bottom variable in the ordering
-
Ddi_VarSetToCU()
- Converts a varset into the correspondent Cudd Node
-
Ddi_VarSetSwapVariables()
- Swaps two sets of variables in a varset
Last updated on 990617 11h53