Ddi_Dd_t * 
Tr_BuildClusteredTR(
  Tr_Mgr_t * trMgr, Tr manager
  Ddi_Dd_t * tr, Input partitioned/clustered relation
  Ddi_VarSet_t * svars, Set of smoothing variables
  Ddi_VarSet_t * qvars, Set of quantifying variables
  Ddi_VarSet_t * rvars, Set of range variables
  int  threshold Threshold for creating clusters
)
Create the clustered TR from transition relation by clustering several function together.
The size of clustering is controlled by a threshold value. -1 is used to specify that there is no threshold.

See Also Trav_BuildPartTranRel

Ddi_Dd_t * 
Tr_BuildMonoTR(
  Tr_Mgr_t * trMgr, TR manager
  Ddi_Dd_t * tr, Input partitioned/clustered relation
  Ddi_VarSet_t * svars, Set of smoothing variables
  Ddi_VarSet_t * qvars, Set of quantifying variables
  Ddi_VarSet_t * rvars Set of range variables
)
Create the monilithic transition relation using clustering with infinite threshold.

See Also Trav_BuildClusteredTR

Ddi_Dd_t * 
Tr_BuildPartTR(
  Ddi_DdArray_t * delta, array of state function
  Ddi_VarArray_t * y array of next state variables
)
The function receives the array of next state functions and the array of next state variables.
It returns a cojunctively partitioned transition relation, or NULL in case of failure.

Side Effects None

See Also Trav_BuildClusteredTR

Ddi_Dd_t * 
Tr_BuildTransClosure(
  Tr_Mgr_t * trMgr, Tr manager
  Ddi_Dd_t * TR, Transition Relation
  Ddi_VarArray_t * s, present state vars
  Ddi_VarArray_t * y, next state vars
  Ddi_VarArray_t * z intermediate state vars
)
Transitive closure of a Monolithic or Disjunctively partitioned Transition Relation is operated using the iterative squaring method, expressed by the following recurrence equations:

T(0)(s,y) = TR(s,y)
T(i+1)(s,y)= TR(s,y) + Exist(z) ( T(i)(s,z) * T(i)(z,y) )

The least fixed point is T* (transitive closure) and the number of iterations required to compute T* is logarithmic in the sequential depth of TR (the diameter of the state transition graph represented by TR).
The transitive closure describes the pairs of states that are connected by at least one path in the state graph of FSM. This function is a shell to TrBuildTransClosure, where the job is really done. Nothing is done here if the array of "intermediate" z variables is not NULL, whereas a temporary BDD manager is created (and destroyed when the job is done) if z is NULL, to avoid creating new variables in the original manager. Primary input variables (NON quantifying and NON state variables) are not taken into account. This means that they are NOT duplicated at every step as in standart squaring. They should (since they could) be quantifyed out from a monolithic or disjunctively partitioned TR. Otherwise the algorithm only closes paths with constant input values.

Side Effects A Ddi Manager (a BDD manager) is temporarily allocated if required for all the operations involved, if the auxiliary set of variables (Zs) must be created.

See Also TrBuildTransClosure

int 
Tr_DdSortPartitions(
  Tr_Mgr_t * trMgr, Tr manager
  Ddi_Dd_t * F, Partitioned TR
  Ddi_VarSet_t * svars, Set of smoothing variables
  Ddi_VarSet_t * qvars, Set of quantifying variables
  Ddi_VarSet_t * rvars, Set of range variables
  Tr_Sort_e  method Sorting method
)
Given an BDDs'array , the function sorts the BDDs in the array in order to find the best sort for compute esistential abstraction of BDDs product. The smoothing variable set should include the quantifying ones, too. It returns 1 if successfully sorted, 0 otherwise.

Side Effects none


Tr_Mgr_t * 
Tr_MgrInit(
  char * trName, Name of the FSM structure
  Ddi_DdMgr * dd Decision Diagram Manager
)
Creates a DdManager.

Side Effects none

See Also Ddi_DdiMgrQuit

int 
Tr_MgrOperation(
  Tr_Mgr_t * trMgr, TR Manager
  char * string, String
  Pdtutil_MgrOp_t  operationFlag, Operation Flag
  void ** voidPointer, Generic Pointer
  Pdtutil_MgrRet_t * returnFlagP Type of the Pointer Returned
)
Performs an Operation on a Transition Relation Manager. The allowed operations are specified by the enumerated type Pdtutil_MgrOp_t. Returns the result of the operation, the enumerated type Pdtutil_MgrRet_t.

See Also CmdMgrOperation CmdRegOperation Fsm_MgrOperation Trav_MgrOperation

int 
Tr_MgrPrintStats(
  Tr_Mgr_t * trMgr Tr manager
)
Prints Statistics on a Transition Relation Manager on standard output.


void 
Tr_MgrQuit(
  Tr_Mgr_t * trMgr Tr manager
)
Closes a Transition Relation Manager freeing all the correlated fields.

Side Effects none

See Also Ddi_DdiMgrInit

int 
Tr_MgrReadClustThreshold(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read cluster threshold

Side Effects none


Ddi_DdMgr * 
Tr_MgrReadDdiMgrDefault(
  Tr_Mgr_t * trMgr trersal manager
)
Read default DDi Mgr

Side Effects none


Ddi_VarArray_t * 
Tr_MgrReadI(
  Tr_Mgr_t * trMgr tr manager
)
Read PI array

Side Effects none


int 
Tr_MgrReadMaxIter(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read the maximum number of closure iterations.

Side Effects none


Ddi_VarArray_t * 
Tr_MgrReadNS(
  Tr_Mgr_t * trMgr tr manager
)
Read NS array in the Transition Relation Manager.

Side Effects none


Ddi_VarArray_t * 
Tr_MgrReadPS(
  Tr_Mgr_t * trMgr tr manager
)
Read PS array in the Transition Relation Manager.

Side Effects none


Tr_Sort_e 
Tr_MgrReadSortMethod(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read sort method

Side Effects none


double 
Tr_MgrReadSortW(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  i 
)
Read sort weight

Side Effects none


int 
Tr_MgrReadSquaringMethod(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read the squaring method

Side Effects none


char * 
Tr_MgrReadTrName(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read verbosity

Side Effects none


Ddi_Dd_t * 
Tr_MgrReadTr(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read TR in the Transition Relation Manager.

Side Effects none


Pdtutil_VerbLevel_e 
Tr_MgrReadVerbosity(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read verbosity

Side Effects none


void 
Tr_MgrSetClustThreshold(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  ClustThreshold Threshold
)
Set the cluster threshold

Side Effects none


void 
Tr_MgrSetDdiMgrDefault(
  Tr_Mgr_t * trMgr, trersal manager
  Ddi_DdMgr * mgr dd Manager
)
Set default DDi Mgr on the Transition Relation Manager.

Side Effects none


void 
Tr_MgrSetI(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Ddi_VarArray_t * i Array of variables
)
Set the PI array

Side Effects none


void 
Tr_MgrSetMaxIter(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  maxIter max iterations
)
Set the maximum number of closure iterations

Side Effects none


void 
Tr_MgrSetNS(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Ddi_VarArray_t * ns Array of variables
)
Set the NS array in the Transition Relation Manager.

Side Effects none


void 
Tr_MgrSetPS(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Ddi_VarArray_t * ps Array of Variables
)
Set the PS array

Side Effects none


void 
Tr_MgrSetSortMethod(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Tr_Sort_e  sortMethod Method
)
Set the sort Method

Side Effects none


void 
Tr_MgrSetSortW(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  i, 
  double  SortW Weight
)
Set the sort weight

Side Effects none


void 
Tr_MgrSetSquaringMethod(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  method Method
)
Set the squaring method

Side Effects none


void 
Tr_MgrSetTrName(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  char * trName Traversal Manager Name
)

Side Effects none


void 
Tr_MgrSetTr(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Ddi_Dd_t * tr Transition Relation
)
Set the Transition Relation in the Transition Relation Manager.

Side Effects none


void 
Tr_MgrSetVerbosity(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Pdtutil_VerbLevel_e  verbosity Verbosity
)
Set the period for verbosity enabling.

Side Effects none


void 
Tr_RemoveLambdaLatches(
  Tr_Mgr_t * trMgr TR manager
)
Remove the so-called lambda-latches following the strategy presented at ICCAD'96 by Cabodi, Camurati, Quer.

See Also Trav_BuildClusteredTR

char * 
Tr_TrSortEnum2String(
  Tr_Sort_e  enumType 
)
Given an Enumerated type Returns a string

Side Effects none


Tr_Sort_e 
Tr_TrSortString2Enum(
  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


Last updated on 990617 11h53