ddi.h
External header file
ddiInt.h
Internal header file
ddiArray.c
Internal Functions for array manipulations
ddiBdd.c
Functions working on Boolean functions (Ddi_Bdd_t)
ddiBddarray.c
Functions to manage arrays of BDDs
ddiExpr.c
Functions working on Expressions (Ddi_Expr_t)
ddiGeneric.c
Functions working on generic DDI type Ddi_Generic_t
ddiMeta.c
Functions working on Meta BDDs
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
ddiVarsetarray.c
Functions to manage arrays of Varsetss

ddi.h

External header file

By: Gianpiero Cabodi and Stefano Quer

()
Read handle code.
()
Read the DDI Manager field.
()
Read the name field.
()
Compute Operation generating a BDD (Ddi_Bdd_t).
()
Compute Operation on all entries of an Array of BDDs.
()
Free DDI node.
()
Lock DDI node.
()
Unlock DDI node.
()
Set name field of DDI node
()
Read name field of DDI node

ddiInt.h

Internal header file

By: Gianpiero Cabodi and Stefano Quer


ddiArray.c

Internal Functions for array manipulations

By: Gianpiero Cabodi and Stefano Quer

Arrays of ddi objects (Boolean functions, variables, ...) are implemented using the generic ddi

DdiArrayAlloc()
Allocate a new array
DdiArrayFree()
Frees a DDI array
DdiArrayToCU()
Generate an array of pointers to CUDD nodes
DdiArrayWrite()
Write in array at i-th position
DdiArrayInsert()
Insert in array at i-th position
DdiArrayRead()
Reads i-th element array
DdiArrayExtract()
Extracts i-th element array
DdiArrayNum()
Returns the number of elements of the array
DdiArrayDup()
Duplicate an array.
DdiArrayCopy()
Copy a BDD array to a destination manager.
DdiArrayAppend()
Append array2 at the end of array1
DdiArrayStore()
Writes array of BDDs in a dump file
ArrayResize()
Resize a DDI array

ddiBdd.c

Functions working on Boolean functions (Ddi_Bdd_t)

By: Gianpiero Cabodi and Stefano Quer

Functions working on Boolean functions represented by the Ddi_Bdd_t type. Type Ddi_Bdd_t is used for BDDs in monolitic, partitioned (conjunctive/disjunctive) and metaBDD formats. Internally, functions are implemented using handles (wrappers) pointing to BDD roots. Externally, they are accessed only by pointers. Type Ddi_Bdd_t is cast to Ddi_Generic_t (generic DDI node) for internal operations. All the results obtained by operations are implicitly allocated or referenced (CUDD nodes), so explicit freeing is required.
External procedures in this module include

Ddi_BddMakeFromCU()
Build a Ddi_Bdd_t from a given CUDD node.
Ddi_BddToCU()
Convert a DDI function to the corresponding Cudd Node
Ddi_BddMakeLiteral()
Generate a literal from a variable
Ddi_BddMakeConst()
Generate a Ddi_Bdd_t constant node (BDD zero or one)
Ddi_BddMakePartConjFromMono()
Build a conjunctively partitioned BDD from a monolithic BDD
Ddi_BddMakePartConjVoid()
Build a conjunctively partitioned BDD with 0 partitions
Ddi_BddMakePartDisjVoid()
Build a disjunctively partitioned BDD with 0 partitions
Ddi_BddMakePartDisjFromMono()
Build a disjunctively partitioned BDD from a monolithic BDD
Ddi_BddMakePartConjFromArray()
Build a conjunctively partitioned BDD from array of partitions
Ddi_BddMakePartDisjFromArray()
Build a disjunctively partitioned BDD from array of BDDs
Ddi_BddSetPartConj()
Convert a BDD to conjunctively partitioned (if required). Result accumulated
Ddi_BddSetPartDisj()
Convert a BDD to disjunctively partitioned (if required). Result accumulated
Ddi_BddRelMakeFromArray()
Generate a Ddi_Bdd_t relation from array of functions
Ddi_BddDup()
Duplicate a Ddi_Bdd_t
Ddi_BddCopy()
Copy a Ddi_Bdd_t to a destination DDI manager
Ddi_BddCopyRemapVars()
Copy a Ddi_Bdd_t to a destination DDI manager
Ddi_BddSize()
Return BDD size (total amount of BDD nodes) of f
Ddi_BddTopVar()
Return the top BDD variable of f
Ddi_BddEvalFree()
Evaluate expression and free BDD node
Ddi_BddEqual()
Return true (non 0) if the two DDs are equal (f==g).
Ddi_BddIsZero()
Return true (non 0) if f is the zero constant.
Ddi_BddIsOne()
Return true (non 0) if f is the one constant.
Ddi_CountMinterm()
Check for inclusion (f in g). Return non 0 if true
Ddi_BddIncluded()
Check for inclusion (f in g). Return non 0 if true
Ddi_BddNot()
Boolean NOT. New result is generated
Ddi_BddNotAcc()
Boolean NOT. Result is accumulated
Ddi_BddAnd()
Boolean AND. New result is generated
Ddi_BddAndAcc()
Boolean AND. Result is accumulated
Ddi_BddDiff()
Boolean difference (f & !g). New result is generated
Ddi_BddDiffAcc()
Boolean difference (f & !g). Result is accumulated
Ddi_BddNand()
Boolean NAND (!(f&g)). New result is generated
Ddi_BddNandAcc()
Boolean NAND (!(f&g)). New result is accumulated
Ddi_BddOr()
Boolean OR (f|g). New result is generated
Ddi_BddOrAcc()
Boolean OR (f|g). New result is accumulated
Ddi_BddNor()
Boolean NOR (!(f|g)). New result is generated
Ddi_BddNorAcc()
Boolean NOR (!(f|g)). New result is accumulated
Ddi_BddXor()
Boolean XOR (f^g). New result is generated
Ddi_BddXorAcc()
Boolean XOR (f^g). New result is accumulated
Ddi_BddXnor()
Boolean XNOR (!(f^g)). New result is generated
Ddi_BddXnorAcc()
Boolean XNOR (!(f^g)). New result is accumulated
Ddi_BddIte()
If-Then-Else (ITE(f,g,h)). New result is generated
Ddi_BddIteAcc()
If-Then-Else (ITE(f,g,h)). New result is accumulated
Ddi_BddExist()
Existential abstraction. New result is generated
Ddi_BddExistAcc()
Existential abstraction. New result is accumulated
Ddi_BddForall()
Universal abstraction. New result is generated
Ddi_BddForallAcc()
Universal abstraction. New result is accumulated
Ddi_BddAndExist()
Relational product (Exist(f&g,vars)). New result is generated
Ddi_BddAndExistAcc()
Relational product (Exist(f&g,vars)). New result is accumulated
Ddi_BddCofactor()
Cofactor with variable. New result is generated
Ddi_BddCofactorAcc()
Cofactor with variable. New result is accumulated
Ddi_BddConstrain()
Constrain cofactor. New result is generated
Ddi_BddConstrainAcc()
Constrain cofactor. New result is accumulated
Ddi_BddRestrict()
Restrict cofactor. New result is generated
Ddi_BddRestrictAcc()
Restrict cofactor. New result is accumulated
Ddi_BddCofexist()
Cofexist cofactor. New result is generated
Ddi_BddCproject()
Compatible projector. New result is generated
Ddi_BddCprojectAcc()
Compatible projector. New result is accumulated
Ddi_BddSwapVars()
Swap x and y variables in f. New result is generated
Ddi_BddSwapVarsAcc()
Swap x and y variables in f. Result is accumulated
Ddi_BddSubstVars()
Variable substitution x <- y in f. New result is generated
Ddi_BddSubstVarsAcc()
Variable substitution x <- y in f. New result is accumulated
Ddi_BddCompose()
Function composition x <- g in f. New result is generated
Ddi_BddComposeAcc()
Function composition x <- g in f. New result is accumulated
Ddi_BddIsCube()
Return true (non 0) if f is a cube.
Ddi_BddPickOneCube()
Pick one random on-set cube. Result is generated
Ddi_BddPickOneCubeAcc()
Pick one random on-set cube. Result is accumulated
Ddi_BddPickOneMinterm()
Pick one random on-set minterm. Result is generated
Ddi_BddPickOneMintermAcc()
Pick one random on-set minterm. Result is accumulated
Ddi_BddSupp()
Support of f. New result is generated
Ddi_BddSuppAttach()
Attach support of f to f. Return pointer to f
Ddi_BddSuppRead()
Read the support attached to a Bdd.
Ddi_BddSuppDetach()
Detach (and free) support attached to f. Return pointer to f
Ddi_BddIsMono()
Return true (non 0) if f is a monolithic BDD.
Ddi_BddIsMeta()
Return true (non 0) if f is a meta BDD.
Ddi_BddIsPartConj()
Return true (non 0) if f is a conjunctively partitioned BDD.
Ddi_BddIsPartDisj()
Return true (non 0) if f is a disjunctively partitioned BDD.
Ddi_BddPartNum()
Read the number of partitions (conj/disj).
Ddi_BddPartRead()
Read the i-th partition (conj/disj) of f.
Ddi_BddPartWrite()
Write i-th partition. Result accumulated
Ddi_BddPartExtract()
Return the i-th partition (conj/disj), and remove it from f.
Ddi_BddPartInsert()
Add i-th partition. Result accumulated
Ddi_BddPartInsertLast()
Add last partition. Result accumulated
Ddi_BddMakeMono()
Create a monolithic BDD from a partitioned one
Ddi_BddSetMono()
Convert a BDD to monolitic (if required). Result accumulated
Ddi_BddMakeClustered()
Create a clustered BDD from a partitioned one
Ddi_BddSetClustered()
Create a clustered BDD from a partitioned one
Ddi_BddPrint()
Prints a BDD
Ddi_BddPrintStats()
Prints Statistics of a BDD
Ddi_BddPrintCubeToString()
Output a cube to string. Return true if succesful.
Ddi_BddPrintCubes()
Outputs the cubes of a BDD on file
Ddi_BddStore()
Stores BDD on file
Ddi_BddLoad()
Loads BDD from file
Ddi_BddDenseSet()
Compute the Dense Super or Subset of a Boolean functions

ddiBddarray.c

Functions to manage arrays of BDDs

By: Gianpiero Cabodi and Stefano Quer

The basic manipulation allowed for BDD arrays are:

  1. alloc, make, free arrays
  2. write, read, clear, insert, extract, remove array entries
  3. duplicate, copy, append
  4. store and load to/from file
For each element of array can be apply any boolean operator as AND,OR,XOR,XNOR,Restrict and Constrain.

Ddi_BddarrayAlloc()
Allocate a new array of BDDs
Ddi_BddarrayMakeFromCU()
Generate a BDD array from CUDD BDDs
Ddi_BddarrayToCU()
Generate an array of pointers to CUDD nodes
Ddi_BddarrayMakeFromBddPart()
Generate a BDD array from partitions of partitioned BDD
Ddi_BddarrayNum()
Return the number of BDDs (entries) in array
Ddi_BddarrayWrite()
Write a BDD in array at given position
Ddi_BddarrayRead()
Read the BDD at i-th position in array
Ddi_BddarrayClear()
clear array at given position (BDD freed and replaced by NULL)
Ddi_BddarrayInsert()
Insert a BDD in array at given position
Ddi_BddarrayInsertLast()
Insert a BDD in array at last (new) position
Ddi_BddarrayExtract()
Extract the BDD at i-th position in array
Ddi_BddarrayRemove()
Remove array entry at given position
Ddi_BddarrayDup()
Duplicate an array of BDDs
Ddi_BddarrayCopy()
Copy an array of BDDs to a destination manager
Ddi_BddarrayAppend()
Append the elements of array2 at the end of array1
Ddi_BddarraySize()
Return the number of BDD nodes in a BDD array
Ddi_BddarrayStore()
Writes array of BDDs in a dump file
Ddi_BddarrayLoad()
Reads array of BDDs from a dump file
Ddi_BddarraySupp()
Return the support of a BDD array
Ddi_BddarraySuppArray()
OLD(pdt-1). Return a vector of supports of BDD array elements

ddiExpr.c

Functions working on Expressions (Ddi_Expr_t)

By: Gianpiero Cabodi and Stefano Quer

Functions working on Expressions (Ddi_Expr_t)

Ddi_ExprMakeFromBdd()
Build a Ddi_Expr_t from a given BDD.
Ddi_ExprToBdd()
Retrieve the Bdd associated to the expression
Ddi_ExprMakeFromString()
Build a Ddi_Expr_t from a given string.
Ddi_ExprToString()
Retrieve the string associated to the expression
Ddi_ExprCtlMake()
Build a Ctl Ddi_Expr_t from given sub-expressions.
Ddi_ExprBoolMake()
Build a Boolean Ddi_Expr_t from given sub-expressions.
Ddi_ExprWriteSub()
Write operand sub-expression to expression at given position.
Ddi_ExprSubNum()
Read the number of sub-expressions.
Ddi_ExprReadSub()
Rear sub-expression at given position
Ddi_ExprReadOpcode()
Read expression opcode
Ddi_ExprIsTerminal()
Return true (non 0) if expression is terminal (Bdd or string).
Ddi_ExprLoad()
Load EXPRESSION from file
Ddi_ExprDup()
Duplicate a Ddi_Expr_t
Ddi_ExprPrint()
Print a Ddi_Expr_t

ddiGeneric.c

Functions working on generic DDI type Ddi_Generic_t

By: Gianpiero Cabodi and Stefano Quer

Ddi_GenericOp()
Compute generic operation. Result generated
Ddi_GenericOpAcc()
Compute generic operation. Result accumulated
Ddi_GenericDup()
Generic dup
Ddi_GenericLock()
Lock DDI node.
Ddi_GenericUnlock()
Unlock DDI node.
Ddi_GenericFree()
Free the content of a generic DDI node
Ddi_GenericSetName()
Set name field of DDI node
Ddi_GenericReadCode()
called through Ddi_ReadCode.
Ddi_GenericReadMgr()
called through Ddi_ReadMgr.
Ddi_GenericReadName()
called through Ddi_ReadName.
DdiGenericAlloc()
Allocate and initialize a new DDI block
DdiTraceNodeAlloc()
Trace allocation of DDI node
DdiGenericFree()
Free the content of a generic DDI node
DdiDeferredFree()
Schedule free of a generic block
DdiGenericDup()
Duplicate a DDI node
DdiGenericCopy()
Copy a DDI node to a destination manager
DdiGenericDataCopy()
Copy the content of a DDI node to another one
DdiGenericOp()
Compute operation
DdiGenericBddSize()
Compute BDD size
GenericFreeIntern()
Frees a generic block
GenericDupIntern()
Duplicate a DDI node
ArraySupp()
Iterate operation on array entries (accumulate mode used)
ArrayOpIterate()
Iterate operation on array entries (accumulate mode used)
GenBddRoots()
Generate root pointers of leave BDDs for partitioned DDs
GenBddRootsRecur()
Recursive step of root pointers generation

ddiMeta.c

Functions working on Meta BDDs

By: Gianpiero Cabodi and Stefano Quer

Functions working on Meta BDDs

DdiMetaFree()
Free meta struct and pointed arrays: one, zero and dc.
DdiMetaDup()
Duplicate meta struct
DdiMetaSupp()
Return support of Meta BDD
DdiMetaDoCompl()
Complement (not) meta BDD. Result accumulated
DdiMetaIsConst()
Return true if meta BDD is constant
DdiMetaAndExistAcc()
Operate And-Exist between Meta BDD and monolithic BDD
DdiMetaComposeAcc()
Operate compose
DdiMetaSwapVarsAcc()
Operate variable swap
DdiMetaSubstVarsAcc()
Operate variable substitution
DdiMetaAndAcc()
Operate And between two Meta BDDs
DdiMetaOrAcc()
Operate Or between two Meta BDDs
Ddi_MetaActive()
Return true if Meta handling active (Ddi_MetaInit done)
Ddi_MetaInit()
Initialize Meta BDD handling in DDI manager
Ddi_MetaQuit()
Close Meta BDD handling in DDI manager
Ddi_BddMakeMeta()
Transform a BDD to Meta BDD. Result generated
Ddi_BddSetMeta()
Transform a BDD to Meta BDD. Result accumulated
Ddi_BddarrayMakeMeta()
Transform a BDD array to Meta BDD. Result generated
Ddi_BddArraySetMeta()
Transform a BDD array to Meta BDD. Result accumulated
Ddi_BddMakeFromMeta()
Transform a BDD to Meta BDD. Result generated
Ddi_BddFromMeta()
Transform a BDD to Meta BDD. Result accumulated
MetaConvert()
Transform between generic DDI node and Meta BDD. Result accumulated
MetaConvertBdd()
Conversion between BDD and Meta BDD
MetaFromMono()
Transform a BDD to Meta BDD
MetaReduce()
Apply bottom-up reduction process to meta BDD
MetaSimplify()
Apply top-down cofactor based simplification
MetaSetConj()
Apply top-down reduction of ones to bottom layer
MetaToMono()
Transform a Meta BDD to monolitic BDD
MetaUpdate()
Update Meta handling by calling Init
MetaLinearAndExistAcc()
Operate And-Exist between Meta BDD and conj. part. BDD
MetaConstrainOpt()
Optimized constrain cofactor.

ddiMgr.c

Functions to deal with DD Managers

By: Gianpiero Cabodi and Stefano Quer

DdiMgrCheckVararraySize()
make checks and resizes arrays if required
DdiMgrGarbageCollect()
Garbage collect freed nodes (handles) in manager node list
DdiMgrReadIntRef()
Read the counter of internal references
DdiMgrMakeVarGroup()
Create a variable group
Ddi_MgrInit()
Creates a DdManager.
Ddi_MgrConsistencyCheck()
make checks on DDI manager. Return 0 for failure
Ddi_MgrCheckExtRef()
Check number of externally referenced DDI handles
Ddi_MgrPrintExtRef()
print ids of external refs
Ddi_MgrUpdate()
update DDI manager after directly working on CUDD manager
Ddi_MgrQuit()
Close 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_MgrOrdWrite()
Stores the variable ordering
Ddi_MgrReadOrdNamesAuxids()
Reads the variable ordering
Ddi_MgrAutodynSuspend()
Suspend autodyn if active.
Ddi_MgrAutodynResume()
Resume autodyn if suspended.
Ddi_MgrAbortOnSiftEnable()
Enable Abort on sift.
Ddi_MgrAbortOnSiftDisable()
Disable Abort on sift.
Ddi_MgrOperation()
Ddi_MgrPrintStats()
Prints on standard outputs statistics on a DD manager
Ddi_MgrReadMgrCU()
Reads the Cudd Manager
Ddi_MgrReadOne()
Reads one constant
Ddi_MgrReadZero()
Reads zero constant
Ddi_MgrReadCurrNodeId()
Read current node id field
Ddi_MgrSetTracedId()
Set traced node id field
Ddi_MgrSetExistClustThresh()
Set part clustering threshold
Ddi_MgrReadExistClustThresh()
Read part clustering threshold
Ddi_MgrReadVarnames()
Reads the variable names
Ddi_MgrReadVarauxids()
Reads the variable auxiliary ids
Ddi_MgrReadExtRef()
Read the counter of external references
Ddi_MgrReadExtBddRef()
Read the counter of external references to BDDs
Ddi_MgrReadExtBddarrayRef()
Read the counter of external references to BDD arrays
Ddi_MgrReadExtVarsetRef()
Read the counter of external references to varsets
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_MgrReadPeakProdLocal()
Read peak product local
Ddi_MgrReadPeakProdGlobal()
Read peak product global
Ddi_MgrPeakProdLocalReset()
Reset peak product local
Ddi_MgrPeakProdUpdate()
Update peak product stats
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.
Ddi_MgrPrintAllocStats()
Print DDI manager allocation statistics

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_PrintCuddVersion()
Returns the version of CUDD package
Ddi_BddPrintSupportAndCubes()
Ddi_BddarrayPrintSupportAndCubes()

ddiVar.c

Functions to manipulate BDD variables

By: Gianpiero Cabodi and Stefano Quer

DdiVarNewFromCU()
Create a variable
Ddi_VarIndex()
Return the variable index (CUDD variable index)
Ddi_IthVar()
Return the variable of a given index
Ddi_VarAtLevel()
Return variable at a given level in the order
Ddi_VarNewBeforeVar()
Create a new variable before (in the variable order) the given variable.
Ddi_VarNewAfterVar()
Create a new variable after (in the variable order) the given variable.
Ddi_VarNew()
Create a new variable (generated within a CUDD manager)
Ddi_VarNewAtLevel()
Returns a new variable at a given level in the order
Ddi_VarCurrPos()
Return current position of var in variable order
Ddi_VarName()
Return the name of a variable
Ddi_VarAttachName()
Attach a given name to the variable
Ddi_VarDetachName()
Clear the name of a variable
Ddi_VarAuxid()
Return the variable auxid (-1 if auxids not defined)
Ddi_VarAttachAuxid()
Set the variable auxid of a variable
Ddi_VarFromName()
Search a variable given the name
Ddi_VarFromAuxid()
Search a variable given the auxid
Ddi_VarToCU()
Return the CUDD bdd node of a variable
Ddi_VarFromCU()
Convert a CUDD variable to a DDI variable
Ddi_VarCopy()
Copy a variable to a destination dd manager
Ddi_VarMakeGroup()
Create a variable group
Ddi_VarMakeGroupFixed()
Create a variable group with fixed inner order
Ddi_VarReadGroup()
Return variable group including v. NULL if v is not in a group
Ddi_VarIsGrouped()
Return true (non 0) if variable is in 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:

  1. Alloc and free an array
  2. Insert and fetch a variable
  3. Duplicate an array
  4. Join and append a new array
  5. Convert into array of integer
  6. Convert into a set of variables

Ddi_VararrayMakeFromCU()
Generate a variable array from CU vars (BDD nodes)
Ddi_VararrayToCU()
Generate an array of pointers to CUDD variables
Ddi_VararrayMakeFromInt()
Generate a variable array from array of integer indexes
Ddi_VararrayToInt()
Generate an array of integer variable indexes
Ddi_VararrayAlloc()
Allocate a new array of variables of given length
Ddi_VararrayNum()
Return the number of variables (entries) in array
Ddi_VararrayWrite()
Write a variable in array at given position
Ddi_VararrayRead()
Return the variable at i-th position in array
Ddi_VararrayClear()
clear array at given position (variable is replaced by NULL)
Ddi_VararrayInsert()
Insert a variable in array at given position
Ddi_VararrayInsertLast()
Insert a variable in array at last (new) position
Ddi_VararrayExtract()
Extract the variable at i-th position in array
Ddi_VararrayRemove()
Remove array entry at given position
Ddi_VararrayDup()
Duplicate an array of variables
Ddi_VararrayCopy()
Copy an array of variables to a destination maneger
Ddi_VararrayAppend()
Append the elements of array2 at the end of array1

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:

  1. Create an empty var-set (New) and destroy one (Free)
  2. Add a new variable or remove one
  3. Duplicate a var-set
  4. Union, intersect and difference of two var-sets
  5. Other specific operations

Ddi_VarsetVoid()
Return an empty var-set
Ddi_VarsetIsVoid()
Return true (non 0) if var-set is empty
Ddi_VarsetNext()
Remove top variable from var-set. Result generated
Ddi_VarsetNextAcc()
Remove top variable from var-set. Result accumulated
Ddi_VarsetAdd()
Add variable to var-set. Result is generated
Ddi_VarsetAddAcc()
Add variable to var-set. Result is accumulated
Ddi_VarsetRemove()
Remove variable from var-set. Result is generated
Ddi_VarsetRemoveAcc()
Remove variable from var-set. Result is accumulated
Ddi_VarsetUnion()
Return union of two var-sets. Result generated
Ddi_VarsetUnionAcc()
Return union of two var-sets. Result accumulated
Ddi_VarsetIntersect()
Return intersection of two var-sets. Result generated
Ddi_VarsetIntersectAcc()
Return intersection of two var-sets. Result accumulated
Ddi_VarsetDiff()
Return difference of two var-sets. Result generated
Ddi_VarsetDiffAcc()
Return difference of two var-sets. Result accumulated
Ddi_VarsetDup()
Duplicate a var-set
Ddi_VarsetCopy()
Copy a var-set to another manager
Ddi_VarsetEvalFree()
Evaluates an expression and frees first argument
Ddi_VarsetNum()
Return the number of variables in varset
Ddi_VarsetPrint()
Print the varset variables sorted by id
Ddi_VarInVarset()
Return true (non 0) if var is in varset
Ddi_VarsetEqual()
Return true (non 0) if the two var-sets are equal
Ddi_VarsetTop()
Return the top variable (in the ordering) in varset
Ddi_VarsetBottom()
Return the bottom variable in the ordering
Ddi_VarsetToCU()
Convert a varset to a Cudd cube
Ddi_VarsetMakeFromCU()
Build a Ddi_Varset_t from a given CUDD cube.
Ddi_VarsetMakeFromVar()
Build a Ddi_Varset_t from a given variable.
Ddi_VarsetMakeFromArray()
Build a Ddi_Varset_t from a given variable array.
Ddi_VarsetSwapVars()
Swap two sets of variables in varset. Result generated
Ddi_VarsetSwapVarsAcc()
Swap two sets of variables in varset. Result accumulated
Ddi_VarsetSubstVars()
Variable substitution in varset. Result generated
Ddi_VarsetSubstVarsAcc()
Variable substitution in varset. Result accumulated
Ddi_VarsetWalkStart()
Start Varset walk process
Ddi_VarsetWalkStep()
Varset walk process step
Ddi_VarsetWalkEnd()
test for varset walk end
Ddi_VarsetWalkCurr()
Return curr var in varset walk

ddiVarsetarray.c

Functions to manage arrays of Varsetss

By: Gianpiero Cabodi and Stefano Quer

Ddi_VarsetarrayAlloc()
Allocate a new array of varsets
Ddi_VarsetarrayNum()
Return the number of entries in array
Ddi_VarsetarrayWrite()
Write varset in array at given position
Ddi_VarsetarrayInsert()
Insert varset in array at given position
Ddi_VarsetarrayInsertLast()
Insert varset in array at last position
Ddi_VarsetarrayRead()
Read varset at i-th position in array
Ddi_VarsetarrayClear()
clear array at given position (BDD freed and replaced by NULL)
Ddi_VarsetarrayDup()
Duplicate an array of Varsets
Ddi_VarsetarrayCopy()
Copy an array of varsets to a destination manager

Last updated on 1010515 11h48