abc-master
|
#include "base/abc/abc.h"
Go to the source code of this file.
Data Structures | |
struct | FxuListCube |
struct | FxuListVar |
struct | FxuListLit |
struct | FxuListPair |
struct | FxuListDouble |
struct | FxuListSingle |
struct | FxuHeapDouble |
struct | FxuHeapSingle |
struct | FxuMatrix |
struct | FxuCube |
struct | FxuVar |
struct | FxuLit |
struct | FxuPair |
struct | FxuDouble |
struct | FxuSingle |
Macros | |
#define | Fxu_Min(a, b) ( ((a)<(b))? (a):(b) ) |
MACRO DEFINITIONS ///. More... | |
#define | Fxu_Max(a, b) ( ((a)>(b))? (a):(b) ) |
#define | Fxu_PairMinCube(pPair) (((pPair)->iCube1 < (pPair)->iCube2)? (pPair)->pCube1: (pPair)->pCube2) |
#define | Fxu_PairMaxCube(pPair) (((pPair)->iCube1 > (pPair)->iCube2)? (pPair)->pCube1: (pPair)->pCube2) |
#define | Fxu_PairMinCubeInt(pPair) (((pPair)->iCube1 < (pPair)->iCube2)? (pPair)->iCube1: (pPair)->iCube2) |
#define | Fxu_PairMaxCubeInt(pPair) (((pPair)->iCube1 > (pPair)->iCube2)? (pPair)->iCube1: (pPair)->iCube2) |
#define | Fxu_MatrixForEachCube(Matrix, Cube) |
#define | Fxu_MatrixForEachCubeSafe(Matrix, Cube, Cube2) |
#define | Fxu_MatrixForEachVariable(Matrix, Var) |
#define | Fxu_MatrixForEachVariableSafe(Matrix, Var, Var2) |
#define | Fxu_MatrixForEachSingle(Matrix, Single) |
#define | Fxu_MatrixForEachSingleSafe(Matrix, Single, Single2) |
#define | Fxu_TableForEachDouble(Matrix, Key, Div) |
#define | Fxu_TableForEachDoubleSafe(Matrix, Key, Div, Div2) |
#define | Fxu_MatrixForEachDouble(Matrix, Div, Index) |
#define | Fxu_MatrixForEachDoubleSafe(Matrix, Div, Div2, Index) |
#define | Fxu_CubeForEachLiteral(Cube, Lit) |
#define | Fxu_CubeForEachLiteralSafe(Cube, Lit, Lit2) |
#define | Fxu_VarForEachLiteral(Var, Lit) |
#define | Fxu_CubeForEachDivisor(Cube, Div) |
#define | Fxu_DoubleForEachPair(Div, Pair) |
#define | Fxu_DoubleForEachPairSafe(Div, Pair, Pair2) |
#define | Fxu_CubeForEachPair(pCube, pPair, i) |
#define | Fxu_HeapDoubleForEachItem(Heap, Div) |
#define | Fxu_HeapSingleForEachItem(Heap, Single) |
#define | Fxu_MatrixRingCubesStart(Matrix) (((Matrix)->ppTailCubes = &((Matrix)->pOrderCubes)), ((Matrix)->pOrderCubes = NULL)) |
#define | Fxu_MatrixRingVarsStart(Matrix) (((Matrix)->ppTailVars = &((Matrix)->pOrderVars)), ((Matrix)->pOrderVars = NULL)) |
#define | Fxu_MatrixRingCubesStop(Matrix) |
#define | Fxu_MatrixRingVarsStop(Matrix) |
#define | Fxu_MatrixRingCubesReset(Matrix) (((Matrix)->pOrderCubes = NULL), ((Matrix)->ppTailCubes = NULL)) |
#define | Fxu_MatrixRingVarsReset(Matrix) (((Matrix)->pOrderVars = NULL), ((Matrix)->ppTailVars = NULL)) |
#define | Fxu_MatrixRingCubesAdd(Matrix, Cube) ((*((Matrix)->ppTailCubes) = Cube), ((Matrix)->ppTailCubes = &(Cube)->pOrder), ((Cube)->pOrder = (Fxu_Cube *)1)) |
#define | Fxu_MatrixRingVarsAdd(Matrix, Var) ((*((Matrix)->ppTailVars ) = Var ), ((Matrix)->ppTailVars = &(Var)->pOrder ), ((Var)->pOrder = (Fxu_Var *)1)) |
#define | Fxu_MatrixForEachCubeInRing(Matrix, Cube) |
#define | Fxu_MatrixForEachCubeInRingSafe(Matrix, Cube, Cube2) |
#define | Fxu_MatrixForEachVarInRing(Matrix, Var) |
#define | Fxu_MatrixForEachVarInRingSafe(Matrix, Var, Var2) |
#define | MEM_ALLOC_FXU(Manager, Type, Size) ((Type *)Fxu_MemFetch( Manager, (Size) * sizeof(Type) )) |
#define | MEM_FREE_FXU(Manager, Type, Size, Pointer) if ( Pointer ) { Fxu_MemRecycle( Manager, (char *)(Pointer), (Size) * sizeof(Type) ); Pointer = NULL; } |
Typedefs | |
typedef typedefABC_NAMESPACE_HEADER_START struct FxuMatrix | Fxu_Matrix |
INCLUDES ///. More... | |
typedef struct FxuCube | Fxu_Cube |
typedef struct FxuVar | Fxu_Var |
typedef struct FxuLit | Fxu_Lit |
typedef struct FxuPair | Fxu_Pair |
typedef struct FxuDouble | Fxu_Double |
typedef struct FxuSingle | Fxu_Single |
typedef struct FxuListCube | Fxu_ListCube |
typedef struct FxuListVar | Fxu_ListVar |
typedef struct FxuListLit | Fxu_ListLit |
typedef struct FxuListPair | Fxu_ListPair |
typedef struct FxuListDouble | Fxu_ListDouble |
typedef struct FxuListSingle | Fxu_ListSingle |
typedef struct FxuHeapDouble | Fxu_HeapDouble |
typedef struct FxuHeapSingle | Fxu_HeapSingle |
#define Fxu_CubeForEachDivisor | ( | Cube, | |
Div | |||
) |
#define Fxu_CubeForEachLiteral | ( | Cube, | |
Lit | |||
) |
#define Fxu_CubeForEachLiteralSafe | ( | Cube, | |
Lit, | |||
Lit2 | |||
) |
#define Fxu_CubeForEachPair | ( | pCube, | |
pPair, | |||
i | |||
) |
#define Fxu_DoubleForEachPair | ( | Div, | |
Pair | |||
) |
#define Fxu_DoubleForEachPairSafe | ( | Div, | |
Pair, | |||
Pair2 | |||
) |
#define Fxu_HeapDoubleForEachItem | ( | Heap, | |
Div | |||
) |
#define Fxu_HeapSingleForEachItem | ( | Heap, | |
Single | |||
) |
#define Fxu_MatrixForEachCube | ( | Matrix, | |
Cube | |||
) |
#define Fxu_MatrixForEachCubeInRing | ( | Matrix, | |
Cube | |||
) |
#define Fxu_MatrixForEachCubeInRingSafe | ( | Matrix, | |
Cube, | |||
Cube2 | |||
) |
#define Fxu_MatrixForEachCubeSafe | ( | Matrix, | |
Cube, | |||
Cube2 | |||
) |
#define Fxu_MatrixForEachDouble | ( | Matrix, | |
Div, | |||
Index | |||
) |
#define Fxu_MatrixForEachDoubleSafe | ( | Matrix, | |
Div, | |||
Div2, | |||
Index | |||
) |
#define Fxu_MatrixForEachSingle | ( | Matrix, | |
Single | |||
) |
#define Fxu_MatrixForEachSingleSafe | ( | Matrix, | |
Single, | |||
Single2 | |||
) |
#define Fxu_MatrixForEachVariableSafe | ( | Matrix, | |
Var, | |||
Var2 | |||
) |
#define Fxu_MatrixForEachVarInRing | ( | Matrix, | |
Var | |||
) |
#define Fxu_MatrixForEachVarInRingSafe | ( | Matrix, | |
Var, | |||
Var2 | |||
) |
#define Fxu_MatrixRingCubesAdd | ( | Matrix, | |
Cube | |||
) | ((*((Matrix)->ppTailCubes) = Cube), ((Matrix)->ppTailCubes = &(Cube)->pOrder), ((Cube)->pOrder = (Fxu_Cube *)1)) |
#define Fxu_MatrixRingCubesReset | ( | Matrix | ) | (((Matrix)->pOrderCubes = NULL), ((Matrix)->ppTailCubes = NULL)) |
#define Fxu_MatrixRingCubesStart | ( | Matrix | ) | (((Matrix)->ppTailCubes = &((Matrix)->pOrderCubes)), ((Matrix)->pOrderCubes = NULL)) |
#define Fxu_MatrixRingVarsAdd | ( | Matrix, | |
Var | |||
) | ((*((Matrix)->ppTailVars ) = Var ), ((Matrix)->ppTailVars = &(Var)->pOrder ), ((Var)->pOrder = (Fxu_Var *)1)) |
#define Fxu_MatrixRingVarsReset | ( | Matrix | ) | (((Matrix)->pOrderVars = NULL), ((Matrix)->ppTailVars = NULL)) |
#define Fxu_MatrixRingVarsStart | ( | Matrix | ) | (((Matrix)->ppTailVars = &((Matrix)->pOrderVars)), ((Matrix)->pOrderVars = NULL)) |
#define Fxu_Min | ( | a, | |
b | |||
) | ( ((a)<(b))? (a):(b) ) |
#define Fxu_PairMaxCube | ( | pPair | ) | (((pPair)->iCube1 > (pPair)->iCube2)? (pPair)->pCube1: (pPair)->pCube2) |
#define Fxu_PairMaxCubeInt | ( | pPair | ) | (((pPair)->iCube1 > (pPair)->iCube2)? (pPair)->iCube1: (pPair)->iCube2) |
#define Fxu_PairMinCube | ( | pPair | ) | (((pPair)->iCube1 < (pPair)->iCube2)? (pPair)->pCube1: (pPair)->pCube2) |
#define Fxu_PairMinCubeInt | ( | pPair | ) | (((pPair)->iCube1 < (pPair)->iCube2)? (pPair)->iCube1: (pPair)->iCube2) |
#define Fxu_TableForEachDouble | ( | Matrix, | |
Key, | |||
Div | |||
) |
#define Fxu_TableForEachDoubleSafe | ( | Matrix, | |
Key, | |||
Div, | |||
Div2 | |||
) |
#define Fxu_VarForEachLiteral | ( | Var, | |
Lit | |||
) |
#define MEM_ALLOC_FXU | ( | Manager, | |
Type, | |||
Size | |||
) | ((Type *)Fxu_MemFetch( Manager, (Size) * sizeof(Type) )) |
#define MEM_FREE_FXU | ( | Manager, | |
Type, | |||
Size, | |||
Pointer | |||
) | if ( Pointer ) { Fxu_MemRecycle( Manager, (char *)(Pointer), (Size) * sizeof(Type) ); Pointer = NULL; } |
typedef struct FxuDouble Fxu_Double |
typedef struct FxuHeapDouble Fxu_HeapDouble |
typedef struct FxuHeapSingle Fxu_HeapSingle |
typedef struct FxuListCube Fxu_ListCube |
typedef struct FxuListDouble Fxu_ListDouble |
typedef struct FxuListLit Fxu_ListLit |
typedef struct FxuListPair Fxu_ListPair |
typedef struct FxuListSingle Fxu_ListSingle |
typedef struct FxuListVar Fxu_ListVar |
typedef typedefABC_NAMESPACE_HEADER_START struct FxuMatrix Fxu_Matrix |
INCLUDES ///.
CFile****************************************************************
FileName [fxuInt.h]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Internal declarations of fast extract for unate covers.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]PARAMETERS ///STRUCTURE DEFINITIONS ///
typedef struct FxuSingle Fxu_Single |
void Fxu_HeapDoubleCheck | ( | Fxu_HeapDouble * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 152 of file fxuHeapD.c.
void Fxu_HeapDoubleCheckOne | ( | Fxu_HeapDouble * | p, |
Fxu_Double * | pDiv | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 173 of file fxuHeapD.c.
void Fxu_HeapDoubleDelete | ( | Fxu_HeapDouble * | p, |
Fxu_Double * | pDiv | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 250 of file fxuHeapD.c.
Fxu_Double* Fxu_HeapDoubleGetMax | ( | Fxu_HeapDouble * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 291 of file fxuHeapD.c.
void Fxu_HeapDoubleInsert | ( | Fxu_HeapDouble * | p, |
Fxu_Double * | pDiv | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 201 of file fxuHeapD.c.
void Fxu_HeapDoublePrint | ( | FILE * | pFile, |
Fxu_HeapDouble * | p | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 117 of file fxuHeapD.c.
Fxu_Double* Fxu_HeapDoubleReadMax | ( | Fxu_HeapDouble * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 273 of file fxuHeapD.c.
int Fxu_HeapDoubleReadMaxWeight | ( | Fxu_HeapDouble * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 319 of file fxuHeapD.c.
Fxu_HeapDouble* Fxu_HeapDoubleStart | ( | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 58 of file fxuHeapD.c.
void Fxu_HeapDoubleStop | ( | Fxu_HeapDouble * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 99 of file fxuHeapD.c.
void Fxu_HeapDoubleUpdate | ( | Fxu_HeapDouble * | p, |
Fxu_Double * | pDiv | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 223 of file fxuHeapD.c.
void Fxu_HeapSingleCheck | ( | Fxu_HeapSingle * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 155 of file fxuHeapS.c.
void Fxu_HeapSingleCheckOne | ( | Fxu_HeapSingle * | p, |
Fxu_Single * | pSingle | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 176 of file fxuHeapS.c.
void Fxu_HeapSingleDelete | ( | Fxu_HeapSingle * | p, |
Fxu_Single * | pSingle | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 251 of file fxuHeapS.c.
Fxu_Single* Fxu_HeapSingleGetMax | ( | Fxu_HeapSingle * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 293 of file fxuHeapS.c.
void Fxu_HeapSingleInsert | ( | Fxu_HeapSingle * | p, |
Fxu_Single * | pSingle | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 204 of file fxuHeapS.c.
void Fxu_HeapSinglePrint | ( | FILE * | pFile, |
Fxu_HeapSingle * | p | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 120 of file fxuHeapS.c.
Fxu_Single* Fxu_HeapSingleReadMax | ( | Fxu_HeapSingle * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 275 of file fxuHeapS.c.
int Fxu_HeapSingleReadMaxWeight | ( | Fxu_HeapSingle * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 321 of file fxuHeapS.c.
Fxu_HeapSingle* Fxu_HeapSingleStart | ( | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 58 of file fxuHeapS.c.
void Fxu_HeapSingleStop | ( | Fxu_HeapSingle * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 99 of file fxuHeapS.c.
void Fxu_HeapSingleUpdate | ( | Fxu_HeapSingle * | p, |
Fxu_Single * | pSingle | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 226 of file fxuHeapS.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 283 of file fxuList.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 314 of file fxuList.c.
void Fxu_ListDoubleAddPairFirst | ( | Fxu_Double * | pDiv, |
Fxu_Pair * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 433 of file fxuList.c.
void Fxu_ListDoubleAddPairLast | ( | Fxu_Double * | pDiv, |
Fxu_Pair * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 402 of file fxuList.c.
void Fxu_ListDoubleAddPairMiddle | ( | Fxu_Double * | pDiv, |
Fxu_Pair * | pSpot, | ||
Fxu_Pair * | pLink | ||
) |
Function*************************************************************
Synopsis [Adds the entry in the middle of the list after the spot.]
Description [Assumes that spot points to the link, after which the given link should be added. Spot cannot be NULL or the tail of the list. Therefore, the head and the tail of the list are not changed.]
SideEffects []
SeeAlso []
Definition at line 466 of file fxuList.c.
void Fxu_ListDoubleDelPair | ( | Fxu_Double * | pDiv, |
Fxu_Pair * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 489 of file fxuList.c.
void Fxu_ListMatrixAddCube | ( | Fxu_Matrix * | p, |
Fxu_Cube * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 104 of file fxuList.c.
void Fxu_ListMatrixAddSingle | ( | Fxu_Matrix * | p, |
Fxu_Single * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 163 of file fxuList.c.
void Fxu_ListMatrixAddVariable | ( | Fxu_Matrix * | p, |
Fxu_Var * | pLink | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [fxuList.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Operations on lists.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file fxuList.c.
void Fxu_ListMatrixDelCube | ( | Fxu_Matrix * | p, |
Fxu_Cube * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 135 of file fxuList.c.
void Fxu_ListMatrixDelSingle | ( | Fxu_Matrix * | p, |
Fxu_Single * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 194 of file fxuList.c.
void Fxu_ListMatrixDelVariable | ( | Fxu_Matrix * | p, |
Fxu_Var * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 76 of file fxuList.c.
void Fxu_ListTableAddDivisor | ( | Fxu_Matrix * | p, |
Fxu_Double * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 222 of file fxuList.c.
void Fxu_ListTableDelDivisor | ( | Fxu_Matrix * | p, |
Fxu_Double * | pLink | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 254 of file fxuList.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 342 of file fxuList.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 373 of file fxuList.c.
Fxu_Cube* Fxu_MatrixAddCube | ( | Fxu_Matrix * | p, |
Fxu_Var * | pVar, | ||
int | iCube | ||
) |
Function*************************************************************
Synopsis [Adds a literal to the matrix.]
Description []
SideEffects []
SeeAlso []
Definition at line 183 of file fxuMatrix.c.
void Fxu_MatrixAddDivisor | ( | Fxu_Matrix * | p, |
Fxu_Cube * | pCube1, | ||
Fxu_Cube * | pCube2 | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 301 of file fxuMatrix.c.
void Fxu_MatrixAddLiteral | ( | Fxu_Matrix * | p, |
Fxu_Cube * | pCube, | ||
Fxu_Var * | pVar | ||
) |
Function*************************************************************
Synopsis [Adds a literal to the matrix.]
Description []
SideEffects []
SeeAlso []
Definition at line 205 of file fxuMatrix.c.
void Fxu_MatrixAddSingle | ( | Fxu_Matrix * | p, |
Fxu_Var * | pVar1, | ||
Fxu_Var * | pVar2, | ||
int | Weight | ||
) |
Function*************************************************************
Synopsis [Creates and adds a single cube divisor.]
Description []
SideEffects []
SeeAlso []
Definition at line 274 of file fxuMatrix.c.
Fxu_Var* Fxu_MatrixAddVar | ( | Fxu_Matrix * | p | ) |
Function*************************************************************
Synopsis [Adds a variable to the matrix.]
Description [This procedure always adds variables at the end of the matrix. It assigns the var's node and number. It adds the var to the linked list of all variables and to the table of all nodes.]
SideEffects []
SeeAlso []
Definition at line 161 of file fxuMatrix.c.
Fxu_Matrix* Fxu_MatrixAllocate | ( | ) |
DECLARATIONS ///.
CFile****************************************************************
FileName [fxuMatrix.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Procedures to manipulate the sparse matrix.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file fxuMatrix.c.
void Fxu_MatrixComputeSingles | ( | Fxu_Matrix * | p, |
int | fUse0, | ||
int | nSingleMax | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Computes and adds all single-cube divisors to storage.]
Description [This procedure should be called once when the matrix is already contructed before the process of logic extraction begins..]
SideEffects []
SeeAlso []
Definition at line 47 of file fxuSingle.c.
void Fxu_MatrixComputeSinglesOne | ( | Fxu_Matrix * | p, |
Fxu_Var * | pVar | ||
) |
Function*************************************************************
Synopsis [Adds the single-cube divisors associated with a new column.]
Description []
SideEffects []
SeeAlso []
Definition at line 184 of file fxuSingle.c.
void Fxu_MatrixDelDivisor | ( | Fxu_Matrix * | p, |
Fxu_Double * | pDiv | ||
) |
Function*************************************************************
Synopsis [Deletes the divisor from the matrix.]
Description []
SideEffects []
SeeAlso []
Definition at line 233 of file fxuMatrix.c.
void Fxu_MatrixDelete | ( | Fxu_Matrix * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 96 of file fxuMatrix.c.
void Fxu_MatrixDelLiteral | ( | Fxu_Matrix * | p, |
Fxu_Lit * | pLit | ||
) |
Function*************************************************************
Synopsis [Deletes the literal fromthe matrix.]
Description []
SideEffects []
SeeAlso []
Definition at line 252 of file fxuMatrix.c.
void Fxu_MatrixPrint | ( | FILE * | pFile, |
Fxu_Matrix * | p | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [fxuPrint.c]
PackageName [MVSIS 2.0: Multi-valued logic synthesis system.]
Synopsis [Various printing procedures.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - February 1, 2003.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file fxuPrint.c.
void Fxu_MatrixPrintDivisorProfile | ( | FILE * | pFile, |
Fxu_Matrix * | p | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 159 of file fxuPrint.c.
void Fxu_MatrixRingCubesUnmark | ( | Fxu_Matrix * | p | ) |
Function*************************************************************
Synopsis [Unmarks the cubes in the ring.]
Description []
SideEffects []
SeeAlso []
Definition at line 185 of file fxu.c.
void Fxu_MatrixRingVarsUnmark | ( | Fxu_Matrix * | p | ) |
Function*************************************************************
Synopsis [Unmarks the vars in the ring.]
Description []
SideEffects []
SeeAlso []
Definition at line 206 of file fxu.c.
char* Fxu_MemFetch | ( | Fxu_Matrix * | p, |
int | nBytes | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 227 of file fxu.c.
void Fxu_MemRecycle | ( | Fxu_Matrix * | p, |
char * | pItem, | ||
int | nBytes | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 247 of file fxu.c.
void Fxu_PairAdd | ( | Fxu_Pair * | pPair | ) |
Function*************************************************************
Synopsis [Adds the pair to storage.]
Description []
SideEffects []
SeeAlso []
Definition at line 543 of file fxuPair.c.
Fxu_Pair* Fxu_PairAlloc | ( | Fxu_Matrix * | p, |
Fxu_Cube * | pCube1, | ||
Fxu_Cube * | pCube2 | ||
) |
Function*************************************************************
Synopsis [Adds the pair to storage.]
Description []
SideEffects []
SeeAlso []
Definition at line 519 of file fxuPair.c.
void Fxu_PairAllocStorage | ( | Fxu_Var * | pVar, |
int | nCubes | ||
) |
Function*************************************************************
Synopsis [Allocates the storage for cubes pairs.]
Description []
SideEffects []
SeeAlso []
Definition at line 452 of file fxuPair.c.
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Find the canonical permutation of two cubes in the pair.]
Description []
SideEffects []
SeeAlso []
Definition at line 75 of file fxuPair.c.
void Fxu_PairClearStorage | ( | Fxu_Cube * | pCube | ) |
Function*************************************************************
Synopsis [Clears all pairs associated with this cube.]
Description []
SideEffects []
SeeAlso []
Definition at line 476 of file fxuPair.c.
Function*************************************************************
Synopsis [Compares the two pairs.]
Description [Returns 1 if the divisors represented by these pairs are equal.]
SideEffects []
SeeAlso []
Definition at line 236 of file fxuPair.c.
void Fxu_PairFreeStorage | ( | Fxu_Var * | pVar | ) |
unsigned Fxu_PairHashKey | ( | Fxu_Matrix * | p, |
Fxu_Cube * | pCube1, | ||
Fxu_Cube * | pCube2, | ||
int * | pnBase, | ||
int * | pnLits1, | ||
int * | pnLits2 | ||
) |
Function*************************************************************
Synopsis [Computes the hash key of the divisor represented by the pair of cubes.]
Description [Goes through the variables in both cubes. Skips the identical ones (this corresponds to making the cubes cube-free). Computes the hash value of the cubes. Assigns the number of literals in the base and in the cubes without base.]
SideEffects []
SeeAlso []
Definition at line 164 of file fxuPair.c.
unsigned Fxu_PairHashKeyArray | ( | Fxu_Matrix * | p, |
int | piVarsC1[], | ||
int | piVarsC2[], | ||
int | nVarsC1, | ||
int | nVarsC2 | ||
) |
unsigned Fxu_PairHashKeyMv | ( | Fxu_Matrix * | p, |
Fxu_Cube * | pCube1, | ||
Fxu_Cube * | pCube2, | ||
int * | pnBase, | ||
int * | pnLits1, | ||
int * | pnLits2 | ||
) |
int Fxu_Select | ( | Fxu_Matrix * | p, |
Fxu_Single ** | ppSingle, | ||
Fxu_Double ** | ppDouble | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Selects the best pair (Single,Double) and returns their weight.]
Description []
SideEffects []
SeeAlso []
Definition at line 57 of file fxuSelect.c.
int Fxu_SelectSCD | ( | Fxu_Matrix * | p, |
int | WeightLimit, | ||
Fxu_Var ** | ppVar1, | ||
Fxu_Var ** | ppVar2 | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 525 of file fxuSelect.c.
int Fxu_SingleCountCoincidence | ( | Fxu_Matrix * | p, |
Fxu_Var * | pVar1, | ||
Fxu_Var * | pVar2 | ||
) |
Function*************************************************************
Synopsis [Computes the coincidence count of two columns.]
Description []
SideEffects []
SeeAlso []
Definition at line 241 of file fxuSingle.c.
void Fxu_Update | ( | Fxu_Matrix * | p, |
Fxu_Single * | pSingle, | ||
Fxu_Double * | pDouble | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Updates the matrix after selecting two divisors.]
Description []
SideEffects []
SeeAlso []
Definition at line 57 of file fxuUpdate.c.
void Fxu_UpdateDouble | ( | Fxu_Matrix * | p | ) |
Function*************************************************************
Synopsis [Updates the matrix after accepting a double cube divisor.]
Description []
SideEffects []
SeeAlso []
Definition at line 219 of file fxuUpdate.c.
void Fxu_UpdateSingle | ( | Fxu_Matrix * | p | ) |
Function*************************************************************
Synopsis [Updates after accepting single cube divisor.]
Description []
SideEffects []
SeeAlso []
Definition at line 149 of file fxuUpdate.c.