abc-master
|
#include "extraBdd.h"
Go to the source code of this file.
Variables | |
static int | Counter = 0 |
|
static |
|
static |
Function********************************************************************
Synopsis [Implements the recursive step of Cudd_bddPermute.]
Description [ Recursively puts the BDD in the order given in the array permut. Checks for trivial cases to terminate recursion, then splits on the children of this node. Once the solutions for the children are obtained, it puts into the current position the node from the rest of the BDD that should be here. Then returns this BDD. The key here is that the node being visited is NOT put in its proper place by this instance, but rather is switched when its proper position is reached in the recursion tree.
The DdNode * that is returned is the same BDD as passed in as node, but in the new order.]
SideEffects [None]
SeeAlso [Cudd_bddPermute cuddAddPermuteRecur]
Definition at line 1689 of file extraBddMisc.c.
|
static |
Function********************************************************************
Synopsis [Performs a DFS from f, clearing the LSB of the next pointers.]
Description []
SideEffects [None]
SeeAlso [ddSupportStep ddDagInt]
Definition at line 1455 of file extraBddMisc.c.
|
static |
Function********************************************************************
Synopsis [Performs the recursive step of Cudd_Support.]
Description [Performs the recursive step of Cudd_Support. Performs a DFS from f. The support is accumulated in supp as a side effect. Uses the LSB of the then pointer as visited flag.]
SideEffects [None]
SeeAlso [ddClearFlag]
Definition at line 1424 of file extraBddMisc.c.
DdNode* Extra_bddAndPermute | ( | DdManager * | ddF, |
DdNode * | bF, | ||
DdManager * | ddG, | ||
DdNode * | bG, | ||
int * | pPermute | ||
) |
Function*************************************************************
Synopsis [Computes the AND of two BDD with different orders.]
Description [Derives the result of Boolean AND of bF and bG in ddF. The array pPermute gives the mapping of variables of ddG into that of ddF.]
SideEffects []
SeeAlso []
Definition at line 1090 of file extraBddMisc.c.
DdNode* Extra_bddBitsToCube | ( | DdManager * | dd, |
int | Code, | ||
int | CodeWidth, | ||
DdNode ** | pbVars, | ||
int | fMsbFirst | ||
) |
Function********************************************************************
Synopsis [Computes the cube of BDD variables corresponding to bits it the bit-code]
Description [Returns a bdd composed of elementary bdds found in array BddVars[] such that the bdd vars encode the number Value of bit length CodeWidth (if fMsbFirst is 1, the most significant bit is encoded with the first bdd variable). If the variables BddVars are not specified, takes the first CodeWidth variables of the manager]
SideEffects []
SeeAlso []
Definition at line 730 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Changes the polarity of vars listed in the cube.]
Description []
SideEffects []
SeeAlso []
Definition at line 1029 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Computes the positive polarty cube composed of the first vars in the array.]
Description []
SideEffects []
SeeAlso []
Definition at line 1001 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Performs the reordering-sensitive step of Extra_bddMove().]
Description []
SideEffects []
SeeAlso []
Definition at line 699 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Creates AND composed of the first nVars of the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 858 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Creates EXOR composed of the first nVars of the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 908 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Creates OR composed of the first nVars of the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 883 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Find any cube belonging to the on-set of the function.]
Description []
SideEffects []
SeeAlso []
Definition at line 605 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Returns one cube contained in the given BDD.]
Description [This function returns the cube with the smallest bits-to-integer value.]
SideEffects []
Definition at line 645 of file extraBddMisc.c.
int Extra_bddIsVar | ( | DdNode * | bFunc | ) |
Function********************************************************************
Synopsis [Returns 1 if the BDD is the BDD of elementary variable.]
Description []
SideEffects []
SeeAlso []
Definition at line 839 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Moves the BDD by the given number of variables up or down.]
Description []
SideEffects []
SeeAlso [Extra_bddShift]
Definition at line 187 of file extraBddMisc.c.
void Extra_bddPermuteArray | ( | DdManager * | manager, |
DdNode ** | bNodesIn, | ||
DdNode ** | bNodesOut, | ||
int | nNodes, | ||
int * | permut | ||
) |
Function********************************************************************
Synopsis [Permutes the variables of the array of BDDs.]
Description [Given a permutation in array permut, creates a new BDD with permuted variables. There should be an entry in array permut for each variable in the manager. The i-th entry of permut holds the index of the variable that is to substitute the i-th variable. The DDs in the resulting array are already referenced.]
SideEffects [None]
SeeAlso [Cudd_addPermute Cudd_bddSwapVariables]
Definition at line 961 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Outputs the BDD in a readable format.]
Description []
SideEffects [None]
SeeAlso []
Definition at line 246 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Outputs the BDD in a readable format.]
Description []
SideEffects [None]
SeeAlso []
Definition at line 302 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Remaps the function to depend on the topmost variables on the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 145 of file extraBddMisc.c.
int Extra_bddSuppCheckContainment | ( | DdManager * | dd, |
DdNode * | bL, | ||
DdNode * | bH, | ||
DdNode ** | bLarge, | ||
DdNode ** | bSmall | ||
) |
Function********************************************************************
Synopsis [Checks the support containment.]
Description [This function returns 1 if one support is contained in another. In this case, bLarge (bSmall) is assigned to point to the larger (smaller) support. If the supports are identical, return 0 and does not assign the supports!]
SideEffects []
SeeAlso []
Definition at line 443 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Returns 1 if the support contains the given BDD variable.]
Description []
SideEffects []
SeeAlso []
Definition at line 346 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Returns the number of different vars in two supports.]
Description [Counts the number of variables that appear in one support and does not appear in other support. If the number exceeds DiffMax, returns DiffMax.]
SideEffects []
SeeAlso []
Definition at line 393 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Finds the support as a negative polarity cube.]
Description [Finds the variables on which a DD depends. Returns a BDD consisting of the product of the variables in the negative polarity if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [Cudd_VectorSupport Cudd_Support]
Definition at line 764 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Returns 1 if two supports represented as BDD cubes are overlapping.]
Description []
SideEffects []
SeeAlso []
Definition at line 365 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Returns the size of the support.]
Description []
SideEffects []
SeeAlso []
Definition at line 321 of file extraBddMisc.c.
int Extra_bddVarIsInCube | ( | DdNode * | bCube, |
int | iVar | ||
) |
Function*************************************************************
Synopsis [Checks if the given variable belongs to the cube.]
Description [Return -1 if the var does not appear in the cube. Otherwise, returns polarity (0 or 1) of the var in the cube.]
SideEffects []
SeeAlso []
Definition at line 1056 of file extraBddMisc.c.
void Extra_StopManager | ( | DdManager * | dd | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 223 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Finds variables on which the DD depends and returns them as am array.]
Description [Finds the variables on which the DD depends. Returns an array with entries set to 1 for those variables that belong to the support; NULL otherwise. The array is allocated by the user and should have at least as many entries as the maximum number of variables in BDD and ZDD parts of the manager.]
SideEffects [None]
SeeAlso [Cudd_Support Cudd_VectorSupport Cudd_ClassifySupport]
Definition at line 537 of file extraBddMisc.c.
Function*************************************************************
Synopsis [Testbench.]
Description [This procedure takes BDD manager ddF and two BDDs in this manager (bF and bG). It creates a new manager ddG, transfers bG into it and then reorders it, resulting in bG2. Then it tries to compute the product of bF and bG2 in ddF.]
SideEffects []
SeeAlso []
Definition at line 1981 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Transfers the BDD from one manager into another level by level.]
Description [Transfers the BDD from one manager into another while preserving the correspondence between variables level by level.]
SideEffects [None]
SeeAlso []
Definition at line 112 of file extraBddMisc.c.
DdNode* Extra_TransferPermute | ( | DdManager * | ddSource, |
DdManager * | ddDestination, | ||
DdNode * | f, | ||
int * | Permute | ||
) |
AutomaticEnd Function********************************************************************
Synopsis [Convert a {A,B}DD from a manager to another with variable remapping.]
Description [Convert a {A,B}DD from a manager to another one. The orders of the variables in the two managers may be different. Returns a pointer to the {A,B}DD in the destination manager if successful; NULL otherwise. The i-th entry in the array Permute tells what is the index of the i-th variable from the old manager in the new manager.]
SideEffects [None]
SeeAlso []
Definition at line 87 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Finds the variables on which a set of DDs depends.]
Description [Finds the variables on which a set of DDs depends. The set must contain either BDDs and ADDs, or ZDDs. Returns a BDD consisting of the product of the variables if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [Cudd_Support Cudd_ClassifySupport]
Definition at line 572 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Computes the set of primes as a ZDD.]
Description []
SideEffects []
SeeAlso []
Definition at line 933 of file extraBddMisc.c.
|
static |
Function*************************************************************
Synopsis [Computes the AND of two BDD with different orders.]
Description []
SideEffects []
SeeAlso []
Definition at line 1890 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Performs the reordering-sensitive step of Extra_bddChangePolarity().]
Description []
SideEffects []
SeeAlso []
Definition at line 1772 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Performs the reordering-sensitive step of Extra_bddMove().]
Description []
SideEffects []
SeeAlso []
Definition at line 1128 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Composed three subcovers into one ZDD.]
Description []
SideEffects [None]
SeeAlso []
Definition at line 1485 of file extraBddMisc.c.
void extraDecomposeCover | ( | DdManager * | dd, |
DdNode * | zC, | ||
DdNode ** | zC0, | ||
DdNode ** | zC1, | ||
DdNode ** | zC2 | ||
) |
Function********************************************************************
Synopsis [Finds three cofactors of the cover w.r.t. to the topmost variable.]
Description [Finds three cofactors of the cover w.r.t. to the topmost variable. Does not check the cover for being a constant. Assumes that ZDD variables encoding positive and negative polarities are adjacent in the variable order. Is different from cuddZddGetCofactors3() in that it does not compute the cofactors w.r.t. the given variable but takes the cofactors with respent to the topmost variable. This function is more efficient when used in recursive procedures because it does not require referencing of the resulting cofactors (compare cuddZddProduct() and extraZddPrimeProduct()).]
SideEffects [None]
SeeAlso [cuddZddGetCofactors3]
Definition at line 1217 of file extraBddMisc.c.
|
static |
Function********************************************************************
Synopsis [Convert a BDD from a manager to another one.]
Description [Convert a BDD from a manager to another one. Returns a pointer to the BDD in the destination manager if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [Extra_TransferPermute]
Definition at line 1266 of file extraBddMisc.c.
|
static |
CFile****************************************************************
FileName [extraBddMisc.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [extra]
Synopsis [DD-based utilities.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]AutomaticStart
Function********************************************************************
Synopsis [Performs the recursive step of Extra_TransferPermute.]
Description [Performs the recursive step of Extra_TransferPermute. Returns a pointer to the result if successful; NULL otherwise.]
SideEffects [None]
SeeAlso [extraTransferPermute]
Definition at line 1322 of file extraBddMisc.c.
Function********************************************************************
Synopsis [Performs the recursive step of prime computation.]
Description []
SideEffects []
SeeAlso []
Definition at line 1530 of file extraBddMisc.c.
|
static |
Definition at line 1877 of file extraBddMisc.c.