Ddi_DdArray_t * 
Part_DdArrayMultiwayLinearAndExist(
  Ddi_DdArray_t * Fa, Array of BDDs
  Ddi_VarSet_t * smoothV, Var Set
  int  threshold, Size threshold for result factor
  int  verbosity Level of verbosity
)
The function computes the following operation:

Exist (smoothV) ( f1*f2*f2* ... *fn )

where f1,f2,..fn are elements of a array's function (DdArray), and smoothV are variables that must be abstracted.
Although existential abstraction does not distribute over conjunction, function can be moved out of the scope of an existential quantification if they do not depend on any of the variables being quantified.
This method is called early quantification or early smooth.

Side Effects none

Defined in partConj.c

Ddi_Dd_t * 
Part_DdDisjSuppPart(
  Ddi_Dd_t * f, a BDD
  Ddi_Dd_t * TR, a Clustered Transition Relation
  Ddi_VarArray_t * psv, array of present state variables
  Ddi_VarArray_t * nsv, array of next state variables
  int  verbosity level of verbosity
)

Side Effects none

Defined in partConj.c

Ddi_Dd_t * 
Part_DdMultiwayLinearAndExist(
  Ddi_Dd_t * FPart, Input partitioned function
  Ddi_VarSet_t * smoothV, Var Set
  int  threshold, Size threshold for result factor
  int  verbosity, Level of verbosity
  int * sizeMaxP Pointer to Size Max
)
Compute the multiway and-exist over a conjunctively partitioned function

Side Effects none

Defined in partConj.c

int 
Part_EstimateCofactorComplex(
  Ddi_Dd_t * f, Input BDD
  Ddi_Dd_t * topVar Top Variable
)
Counts the number of nodes of the cofactors: Fabio Somenzi Private Commnunication Solution.

Side Effects none

See Also partEstimateCofactor
Defined in partCuPlus.c

int 
Part_EstimateCofactorFast(
  Ddi_Dd_t * f, 
  int  LeftRight, 
  Ddi_VarSet_t * supp, 
  int  suppSize, 
  int * totalArray, 
  int * thenArray, 
  int * elseArray 
)
Count the number of nodes of the cofactors using the fast heuristic (TCAD'99)

Side Effects None

Defined in partCuPlus.c

int 
Part_EstimateCofactorFreeOrder(
  Ddi_Dd_t * f, Input BDD
  Ddi_Dd_t * topVar, Top Variable
  Ddi_VarSet_t * supp, 
  int * vet 
)
Count the number of nodes of the cofactors using the Free Order heuristic (TCAD'99).

Side Effects None

Defined in partCuPlus.c

int 
Part_EstimateCofactor(
  Ddi_Dd_t * f, Input BDD
  Ddi_Dd_t * topVar Top Variable
)
Counts the number of nodes of the cofactors: Stefano Quer solution.

Side Effects None

See Also partEstimateCofactor
Defined in partCuPlus.c

char * 
Part_MethodEnum2String(
  Part_Method_e  enumType 
)
Given an Enumerated type Returns a string.

Side Effects none

See Also Part_MethodString2Enum
Defined in partUtil.c

Part_Method_e 
Part_MethodString2Enum(
  char * string String to Analyze
)
It receives a string; to facilitate the user that string can be an easy-to-remember predefined code or an integer number (interpreted as a string). It returns the verbosity enumerated type.

Side Effects none

See Also Part_MethodEnum2String
Defined in partUtil.c

Ddi_Dd_t * 
Part_PartitionDisjSet(
  Ddi_Dd_t * f, Input BDD
  Ddi_VarSet_t * careVars, Set of Vars
  Part_Method_e  partitionMethod, Partition Method
  int  threshold, Threshold Size
  Pdtutil_VerbLevel_e  verbosity Verbosity Level
)
Partition a state set

Side Effects none

See Also Trav_Traversal partPartitionDisjSet
Defined in partDisj.c

Ddi_Dd_t * 
Part_PartitionSetCudd(
  Ddi_Dd_t * f, Input BDD
  Part_Method_e  partitionMethod, Partition Method
  int  threshold, Threshold Size
  Pdtutil_VerbLevel_e  verbosity Verbosity Level
)
This function derives from the Part_PartitionDisjSet function. It is rewritten here for two reasons:

Side Effects none

Defined in partCudd.c

Ddi_Dd_t * 
Part_PartitionSetInterface(
  Ddi_Dd_t * f, Input BDD
  Ddi_VarSet_t * careVars, Set of Vars
  Part_Method_e  partitionMethod, Partition Method
  int  threshold, Threshold Size
  Pdtutil_VerbLevel_e  verbosity Verbosity Level
)
It calls Part_PartitionDisjSet (to partition a BDD using "internal" routines) or Part_PartitionSetCudd (to partition a BDD using the CUDD routines.

Side Effects none

See Also Trav_Traversal partPartitionDisjSet
Defined in partDisj.c

static void 
comparisonRoutine(
  Ddi_Dd_t * f, input BDD
  Ddi_Var_t * topVar, top variable
  int * thenSize, number nodes cofactors
  int * elseSize number nodes cofactors
)
Comparison between cofactor, stq, fs solution

Side Effects none

See Also varSelection exactCofactor estimateCofactor estimateCofactor
Defined in partDisj.c

static void 
ddFlagClear(
  Ddi_DdNode * f input BDD
)
Static function copied from cudd_Util.c

Side Effects None

See Also Part_EstimateCofactor Part_EstimateCofactor
Defined in partCuPlus.c

static void 
estimateCofactorComplex(
  Ddi_Dd_t * f, input BDD
  Ddi_Var_t * topVar, top variable
  int * thenSize, number nodes cofactors
  int * elseSize number nodes cofactors
)
Calls function for to count the number of nodes of the cofactors: Fabio Somenzi Private Communication Solution

Side Effects none

See Also varSelection Part_EstimateCofactor
Defined in partDisj.c

static void 
estimateCofactorFreeOrder(
  Ddi_Dd_t * f, input BDD
  Ddi_Var_t * topVar, top variable
  int * thenSize, number nodes cofactors
  int * elseSize, number nodes cofactors
  int * thenArray, thenArray
  int * elseArray elseArray
)
Calls function for to count the number of nodes of the cofactors: Free BDD Solution

Side Effects none

See Also varSelection Part_EstimateCofactor
Defined in partDisj.c

static void 
estimateCofactor(
  Ddi_Dd_t * f, input BDD
  Ddi_Var_t * topVar, top variable
  int * thenSize, number nodes cofactors
  int * elseSize number nodes cofactors
)
Calls function for to count the number of nodes of the cofactors: ICCAD'96 original solution

Side Effects none

See Also varSelection Part_EstimateCofactor
Defined in partDisj.c

static float 
estimateCostFreeOrder(
  int  size, total size
  int  thenSize, left child size
  int  elseSize, right child size
  int * thenArray, left statistics
  int * elseArray, right statistics
  int  varPos, Variable Position
  int  suppSize Number of Variables
)
Select the best splitting variable

Side Effects done

See Also partitionSetInt cofactorBased fsBased stqBased comparisonRoutine
Defined in partDisj.c

static float 
estimateCost(
  int  size, Total Size
  int  thenSize, Left Child Size
  int  elseSize, Right Child Size
  int  varPos, Variable Position
  int  suppSize Variable Number
)
Evaluating estimateCost of splitting choice

Side Effects none

See Also partPartitionDisjSet
Defined in partDisj.c

static void 
exactCofactor(
  Ddi_Dd_t * f, Input BDD
  Ddi_Var_t * topVar, Top variable
  int * thenSize, Number nodes cofactors
  int * elseSize Number nodes cofactors
)
Counts the number of nodes of the cofactors

Side Effects None

See Also varSelection
Defined in partDisj.c

static struct fs_struct 
partEstimateCofactorComplex(
  Ddi_DdNode * f, Input BDD
  Ddi_Dd_t * topVar Top Variable
)
Performs the recursive step of Part_EstimateCofactor

Side Effects none

See Also Part_EstimateCofactor
Defined in partCuPlus.c

static int 
partEstimateCofactorFast(
  Ddi_DdNode * f, input BDD
  int  LeftRight, 
  Ddi_VarSet_t * supp, 
  int  suppSize, 
  int * totalArray, 
  int * thenArray, 
  int * elseArray 
)
Performs the recursive step of fsCntNodesVar

Side Effects none

See Also fsCntNodesVar
Defined in partCuPlus.c

static int 
partEstimateCofactorFreeOrder(
  Ddi_DdNode * f, Input BDD
  Ddi_Dd_t * topVar, Top Variable
  Ddi_VarSet_t * supp, 
  int * vet 
)
Performs the recursive step of fsCntNodesVar

Side Effects none

Defined in partCuPlus.c

static int 
partEstimateCofactor(
  Ddi_DdNode * f, Input BDD
  Ddi_Dd_t * topVar Top Variable
)
Performs the recursive step of Part_EstimateCofactor

Side Effects None

See Also Part_EstimateCofactor
Defined in partCuPlus.c

static void 
partPartitionCudd(
  Ddi_Dd_t * function, Function to Partition
  Part_Method_e  partitionMethod, Partition Method
  int  threshold, Threshold Size
  Ddi_DdArray_t * partition, Partition Array
  Pdtutil_VerbLevel_e  verbosity Verbosity Level
)
Direct call to cudd partitioning functions. It transforms ddi objects to cudd ones before the call and reverse the process after it.

Side Effects none

Defined in partCudd.c

static void 
partPartitionDisjSet(
  Ddi_Dd_t * f, Input BDD
  Ddi_Dd_t * c, Constraining Cube
  Ddi_VarSet_t * careVars, Set of Vars
  Part_Method_e  partitionMethod, Partition Method
  int  threshold, Threshold Size
  Ddi_DdArray_t * ddVet, Partition Array
  Pdtutil_VerbLevel_e  verbosity Verbosity Level
)
Splitting a set

Side Effects None

See Also Part_PartitionSet varSelectionManual varSelection varSelectionFreeOrder
Defined in partDisj.c

static Ddi_Var_t * 
varSelectionFast(
  Ddi_Dd_t * f, Input BDD
  Ddi_VarSet_t * careVars Set of Variables
)
Call function for to count the number of nodes of the cofactors: TCAD'99 fast solution

Side Effects none

See Also selectBestVar stqCntNodesVar
Defined in partDisj.c

static Ddi_Var_t * 
varSelectionManual(
  Ddi_Dd_t * f input BDD
)
Manual selection of best splitting variable

Side Effects none

See Also partPartitionDisjSet
Defined in partDisj.c

static Ddi_Var_t * 
varSelection(
  Ddi_Dd_t * f, Input BDD
  Ddi_VarSet_t * careVars, Set of Variables
  Part_Method_e  partitionMethod Partition Method
)
Selects the best splitting variable

Side Effects done

See Also partPartitionDisjSet exactCofactor estimateCofactor estimateCofactor comparisonRoutine
Defined in partDisj.c

Last updated on 990617 11h53