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 )
103 #ifdef USE_SYSTEM_MEMORY_MANAGEMENT
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++;
void Fxu_HeapSingleInsert(Fxu_HeapSingle *p, Fxu_Single *pSingle)
void Fxu_ListVarDelLiteral(Fxu_Var *pVar, Fxu_Lit *pLit)
void Fxu_ListMatrixAddVariable(Fxu_Matrix *p, Fxu_Var *pVar)
DECLARATIONS ///.
Fxu_HeapDouble * Fxu_HeapDoubleStart()
FUNCTION DEFINITIONS ///.
#define Fxu_MatrixForEachSingleSafe(Matrix, Single, Single2)
int Fxu_PairCompare(Fxu_Pair *pPair1, Fxu_Pair *pPair2)
void Fxu_PairCanonicize(Fxu_Cube **ppCube1, Fxu_Cube **ppCube2)
FUNCTION DEFINITIONS ///.
static int Abc_PrimeCudd(unsigned int p)
#define Fxu_MatrixForEachVariableSafe(Matrix, Var, Var2)
void Fxu_ListMatrixAddCube(Fxu_Matrix *p, Fxu_Cube *pCube)
void Fxu_ListTableDelDivisor(Fxu_Matrix *p, Fxu_Double *pDiv)
#define Fxu_MatrixForEachDoubleSafe(Matrix, Div, Div2, Index)
void Fxu_MatrixDelDivisor(Fxu_Matrix *p, Fxu_Double *pDiv)
Fxu_HeapSingle * Fxu_HeapSingleStart()
FUNCTION DEFINITIONS ///.
void Fxu_ListTableAddDivisor(Fxu_Matrix *p, Fxu_Double *pDiv)
void Fxu_HeapDoubleCheck(Fxu_HeapDouble *p)
void Fxu_MatrixAddLiteral(Fxu_Matrix *p, Fxu_Cube *pCube, Fxu_Var *pVar)
#define ABC_ALLOC(type, num)
void Fxu_HeapSingleStop(Fxu_HeapSingle *p)
void Fxu_ListVarAddLiteral(Fxu_Var *pVar, Fxu_Lit *pLit)
#define MEM_ALLOC_FXU(Manager, Type, Size)
void Fxu_ListCubeAddLiteral(Fxu_Cube *pCube, Fxu_Lit *pLit)
void Fxu_ListCubeDelLiteral(Fxu_Cube *pCube, Fxu_Lit *pLit)
#define Fxu_CubeForEachLiteralSafe(Cube, Lit, Lit2)
unsigned Fxu_PairHashKey(Fxu_Matrix *p, Fxu_Cube *pCube1, Fxu_Cube *pCube2, int *pnBase, int *pnLits1, int *pnLits2)
void Fxu_HeapDoubleUpdate(Fxu_HeapDouble *p, Fxu_Double *pDiv)
void Fxu_ListMatrixAddSingle(Fxu_Matrix *p, Fxu_Single *pSingle)
Fxu_Cube * Fxu_MatrixAddCube(Fxu_Matrix *p, Fxu_Var *pVar, int iCube)
#define ABC_NAMESPACE_IMPL_END
void Fxu_MatrixDelete(Fxu_Matrix *p)
void Fxu_HeapDoubleStop(Fxu_HeapDouble *p)
#define Fxu_TableForEachDouble(Matrix, Key, Div)
#define MEM_FREE_FXU(Manager, Type, Size, Pointer)
struct FxuSingle Fxu_Single
Fxu_Pair * Fxu_PairAlloc(Fxu_Matrix *p, Fxu_Cube *pCube1, Fxu_Cube *pCube2)
#define ABC_NAMESPACE_IMPL_START
#define Fxu_DoubleForEachPairSafe(Div, Pair, Pair2)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Fxu_Var * Fxu_MatrixAddVar(Fxu_Matrix *p)
#define Fxu_MatrixForEachCube(Matrix, Cube)
void Fxu_PairAdd(Fxu_Pair *pPair)
void Fxu_MatrixAddSingle(Fxu_Matrix *p, Fxu_Var *pVar1, Fxu_Var *pVar2, int Weight)
void Fxu_MatrixAddDivisor(Fxu_Matrix *p, Fxu_Cube *pCube1, Fxu_Cube *pCube2)
void Fxu_HeapDoubleInsert(Fxu_HeapDouble *p, Fxu_Double *pDiv)
void Fxu_MatrixDelLiteral(Fxu_Matrix *p, Fxu_Lit *pLit)
struct FxuDouble Fxu_Double
void Fxu_ListDoubleAddPairLast(Fxu_Double *pDiv, Fxu_Pair *pLink)
typedefABC_NAMESPACE_HEADER_START struct FxuMatrix Fxu_Matrix
INCLUDES ///.
#define Fxu_MatrixForEachCubeSafe(Matrix, Cube, Cube2)
ABC_NAMESPACE_IMPL_START Fxu_Matrix * Fxu_MatrixAllocate()
DECLARATIONS ///.
static void Vec_PtrFree(Vec_Ptr_t *p)