abc-master
|
#include "extraBdd.h"
Go to the source code of this file.
Macros | |
#define | DD_GET_SYMM_VARS_TAG 0x0a /* former DD_BDD_XOR_EXIST_ABSTRACT_TAG */ |
#define DD_GET_SYMM_VARS_TAG 0x0a /* former DD_BDD_XOR_EXIST_ABSTRACT_TAG */ |
CFile****************************************************************
FileName [extraBddSymm.c]
PackageName [extra]
Synopsis [Efficient methods to compute the information about symmetric variables using the algorithm presented in the paper: A. Mishchenko. Fast Computation of Symmetries in Boolean Functions. Transactions on CAD, Nov. 2003.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - September 1, 2003.]
Revision [
]
Definition at line 47 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Checks the possibility of two variables being symmetric.]
Description [Returns 0 if vars are not symmetric. Return 1 if vars can be symmetric.]
SideEffects []
SeeAlso []
Definition at line 360 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Checks if the two variables are symmetric.]
Description [Returns 0 if vars are not symmetric. Return 1 if vars are symmetric.]
SideEffects []
SeeAlso []
Definition at line 443 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Filters the set of variables using the support of the function.]
Description []
SideEffects []
SeeAlso []
Definition at line 181 of file extraBddSymm.c.
Extra_SymmInfo_t* Extra_SymmPairsAllocate | ( | int | nVars | ) |
Function********************************************************************
Synopsis [Allocates symmetry information structure.]
Description []
SideEffects []
SeeAlso []
Definition at line 207 of file extraBddSymm.c.
Extra_SymmInfo_t* Extra_SymmPairsCompute | ( | DdManager * | dd, |
DdNode * | bFunc | ||
) |
AutomaticStart AutomaticEnd Function********************************************************************
Synopsis [Computes the classical symmetry information for the function.]
Description [Returns the symmetry information in the form of Extra_SymmInfo_t structure.]
SideEffects [If the ZDD variables are not derived from BDD variables with multiplicity 2, this function may derive them in a wrong way.]
SeeAlso []
Definition at line 73 of file extraBddSymm.c.
Extra_SymmInfo_t* Extra_SymmPairsComputeNaive | ( | DdManager * | dd, |
DdNode * | bFunc | ||
) |
Function********************************************************************
Synopsis [Computes the classical symmetry information for the function.]
Description [Uses the naive way of comparing cofactors.]
SideEffects []
SeeAlso []
Definition at line 396 of file extraBddSymm.c.
Extra_SymmInfo_t* Extra_SymmPairsCreateFromZdd | ( | DdManager * | dd, |
DdNode * | zPairs, | ||
DdNode * | bSupp | ||
) |
Function********************************************************************
Synopsis [Creates the symmetry information structure from ZDD.]
Description [ZDD representation of symmetries is the set of cubes, each of which has two variables in the positive polarity. These variables correspond to the symmetric variable pair.]
SideEffects []
SeeAlso []
Definition at line 288 of file extraBddSymm.c.
void Extra_SymmPairsDissolve | ( | Extra_SymmInfo_t * | p | ) |
Function********************************************************************
Synopsis [Deallocates symmetry information structure.]
Description []
SideEffects []
SeeAlso []
Definition at line 238 of file extraBddSymm.c.
void Extra_SymmPairsPrint | ( | Extra_SymmInfo_t * | p | ) |
Function********************************************************************
Synopsis [Allocates symmetry information structure.]
Description []
SideEffects []
SeeAlso []
Definition at line 257 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Converts a set of variables into a set of singleton subsets.]
Description []
SideEffects []
SeeAlso []
Definition at line 157 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Returns a singleton-set ZDD containing all variables that are symmetric with the given one.]
Description []
SideEffects []
SeeAlso []
Definition at line 130 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Selects one subset from the set of subsets represented by a ZDD.]
Description []
SideEffects [None]
SeeAlso []
Definition at line 546 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Computes the classical symmetry information as a ZDD.]
Description []
SideEffects []
SeeAlso []
Definition at line 105 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Builds ZDD representing the set of fixed-size variable tuples.]
Description [Creates ZDD of all combinations of variables in Support that is represented by a BDD.]
SideEffects [New ZDD variables are created if indices of the variables present in the combination are larger than the currently allocated number of ZDD variables.]
SeeAlso []
Definition at line 488 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Performs the recursive step of Extra_bddCheckVarsSymmetric().]
Description [Returns b0 if the variables are not symmetric. Returns b1 if the variables can be symmetric. The variables are represented in the form of a two-variable cube. In case the cube contains one variable (below Var1 level), the cube's pointer is complemented if the variable Var1 occurred on the current path; otherwise, the cube's pointer is regular. Uses additional complemented bit (Hash_Not) to mark the result if in the BDD rooted that this node there is a branch passing though the node labeled with Var2.]
SideEffects []
SeeAlso []
Definition at line 1169 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Performs a recursive step of Extra_bddReduceVarSet.]
Description [Returns the set of all variables in the given set that are not in the support of the given function.]
SideEffects []
SeeAlso []
Definition at line 1062 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Performs a recursive step of Extra_zddGetSingletons.]
Description [Returns the set of ZDD singletons, containing those positive polarity ZDD variables that correspond to the BDD variables in bVars.]
SideEffects []
SeeAlso []
Definition at line 1001 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Performs a recursive step of Extra_zddGetSymmetricVars.]
Description [Returns the set of ZDD singletons, containing those positive ZDD variables that correspond to BDD variables x, for which it is true that bF(x=0) == bG(x=1).]
SideEffects []
SeeAlso []
Definition at line 804 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Performs the recursive step of Extra_zddSelectOneSubset.]
Description []
SideEffects [None]
SeeAlso []
Definition at line 1419 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Performs a recursive step of Extra_SymmPairsCompute.]
Description [Returns the set of symmetric variable pairs represented as a set of two-literal ZDD cubes. Both variables always appear in the positive polarity in the cubes. This function works without building new BDD nodes. Some relatively small number of ZDD nodes may be built to ensure proper bookkeeping of the symmetry information.]
SideEffects []
SeeAlso []
Definition at line 580 of file extraBddSymm.c.
Function********************************************************************
Synopsis [Performs the reordering-sensitive step of Extra_zddTupleFromBdd().]
Description [Generates in a bottom-up fashion ZDD for all combinations composed of k variables out of variables belonging to Support.]
SideEffects []
SeeAlso []
Definition at line 1341 of file extraBddSymm.c.