48 p->nTableSize = Abc_PrimeCudd(10000);
51#ifndef USE_SYSTEM_MEMORY_MANAGEMENT
56 int nSizeMax, nSizeCur;
59 if ( nSizeMax < nSizeCur )
62 if ( nSizeMax < nSizeCur )
65 if ( nSizeMax < nSizeCur )
68 if ( nSizeMax < nSizeCur )
71 if ( nSizeMax < nSizeCur )
74 if ( nSizeMax < nSizeCur )
81 p->vPairs = Vec_PtrAlloc( 100 );
103#ifdef USE_SYSTEM_MEMORY_MANAGEMENT
137 Vec_PtrFree(
p->vPairs );
166 pVar->
iVar =
p->lVars.nItems;
167 p->ppVars[pVar->
iVar] = pVar;
189 pCube->
iCube = iCube;
280 pSingle->
Num =
p->lSingles.nItems;
283 pSingle->
pVar1 = pVar1;
284 pSingle->
pVar2 = pVar2;
305 int nBase, nLits1, nLits2;
316 pPair->
nBase = nBase;
322 Key %=
p->nTableSize;
338 pDiv->
Num =
p->nDivsTotal++;
#define ABC_ALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Fxu_HeapDoubleUpdate(Fxu_HeapDouble *p, Fxu_Double *pDiv)
void Fxu_HeapDoubleStop(Fxu_HeapDouble *p)
Fxu_HeapDouble * Fxu_HeapDoubleStart()
FUNCTION DEFINITIONS ///.
void Fxu_HeapDoubleCheck(Fxu_HeapDouble *p)
void Fxu_HeapDoubleInsert(Fxu_HeapDouble *p, Fxu_Double *pDiv)
Fxu_HeapSingle * Fxu_HeapSingleStart()
FUNCTION DEFINITIONS ///.
void Fxu_HeapSingleInsert(Fxu_HeapSingle *p, Fxu_Single *pSingle)
void Fxu_HeapSingleStop(Fxu_HeapSingle *p)
void Fxu_ListTableDelDivisor(Fxu_Matrix *p, Fxu_Double *pDiv)
void Fxu_ListMatrixAddVariable(Fxu_Matrix *p, Fxu_Var *pVar)
DECLARATIONS ///.
#define MEM_ALLOC_FXU(Manager, Type, Size)
void Fxu_ListCubeDelLiteral(Fxu_Cube *pCube, Fxu_Lit *pLit)
#define Fxu_DoubleForEachPairSafe(Div, Pair, Pair2)
void Fxu_ListMatrixAddCube(Fxu_Matrix *p, Fxu_Cube *pCube)
Fxu_Pair * Fxu_PairAlloc(Fxu_Matrix *p, Fxu_Cube *pCube1, Fxu_Cube *pCube2)
void Fxu_ListVarDelLiteral(Fxu_Var *pVar, Fxu_Lit *pLit)
int Fxu_PairCompare(Fxu_Pair *pPair1, Fxu_Pair *pPair2)
void Fxu_ListMatrixAddSingle(Fxu_Matrix *p, Fxu_Single *pSingle)
#define Fxu_MatrixForEachCubeSafe(Matrix, Cube, Cube2)
void Fxu_ListDoubleAddPairLast(Fxu_Double *pDiv, Fxu_Pair *pLink)
struct FxuSingle Fxu_Single
unsigned Fxu_PairHashKey(Fxu_Matrix *p, Fxu_Cube *pCube1, Fxu_Cube *pCube2, int *pnBase, int *pnLits1, int *pnLits2)
#define Fxu_MatrixForEachDoubleSafe(Matrix, Div, Div2, Index)
#define Fxu_MatrixForEachCube(Matrix, Cube)
typedefABC_NAMESPACE_HEADER_START struct FxuMatrix Fxu_Matrix
INCLUDES ///.
#define Fxu_CubeForEachLiteralSafe(Cube, Lit, Lit2)
void Fxu_PairAdd(Fxu_Pair *pPair)
struct FxuListDouble Fxu_ListDouble
void Fxu_ListTableAddDivisor(Fxu_Matrix *p, Fxu_Double *pDiv)
#define Fxu_TableForEachDouble(Matrix, Key, Div)
#define Fxu_MatrixForEachSingleSafe(Matrix, Single, Single2)
void Fxu_PairCanonicize(Fxu_Cube **ppCube1, Fxu_Cube **ppCube2)
FUNCTION DEFINITIONS ///.
struct FxuDouble Fxu_Double
void Fxu_ListCubeAddLiteral(Fxu_Cube *pCube, Fxu_Lit *pLit)
#define MEM_FREE_FXU(Manager, Type, Size, Pointer)
#define Fxu_MatrixForEachVariableSafe(Matrix, Var, Var2)
void Fxu_ListVarAddLiteral(Fxu_Var *pVar, Fxu_Lit *pLit)
Fxu_Var * Fxu_MatrixAddVar(Fxu_Matrix *p)
void Fxu_MatrixAddLiteral(Fxu_Matrix *p, Fxu_Cube *pCube, Fxu_Var *pVar)
ABC_NAMESPACE_IMPL_START Fxu_Matrix * Fxu_MatrixAllocate()
DECLARATIONS ///.
void Fxu_MatrixDelDivisor(Fxu_Matrix *p, Fxu_Double *pDiv)
void Fxu_MatrixDelete(Fxu_Matrix *p)
void Fxu_MatrixDelLiteral(Fxu_Matrix *p, Fxu_Lit *pLit)
void Fxu_MatrixAddDivisor(Fxu_Matrix *p, Fxu_Cube *pCube1, Fxu_Cube *pCube2)
Fxu_Cube * Fxu_MatrixAddCube(Fxu_Matrix *p, Fxu_Var *pVar, int iCube)
void Fxu_MatrixAddSingle(Fxu_Matrix *p, Fxu_Var *pVar1, Fxu_Var *pVar2, int Weight)