70 unsigned uCube, uMask = 0;
77 for ( i = 0; i < nCubes; i++ )
80 uMask = ((uCube | (uCube >> 1)) & 0x55555555);
81 uMask |= (uMask << 1);
147 unsigned uCube, uDiv;
180 unsigned uCube, uDiv;
182 unsigned uDiv2, uQuo;
183 int i, i2, k, k2, nCubesRem;
292 unsigned uMask, uCube;
294 uMask = ~(unsigned)0;
313 unsigned uMask, uCube;
375 for ( i = 0; i < nLits; i++ )
403 int i, k, iMin, nLitsMin, nLitsCur;
409 for ( i = 0; i < nLits; i++ )
422 if ( nLitsMin > nLitsCur )
430 if ( nLitsMin >= nLitsCur )
437 if ( nLitsMin < 1000000 )
457 int i, k, iMax, nLitsMax, nLitsCur;
463 for ( i = 0; i < nLits; i++ )
478 if ( nLitsMax < nLitsCur )
486 if ( nLitsMax <= nLitsCur )
int Kit_SopBestLiteral(Kit_Sop_t *cSop, int nLits, unsigned uMask)
static unsigned Kit_SopCube(Kit_Sop_t *cSop, int i)
void Kit_SopCreateInverse(Kit_Sop_t *cResult, Vec_Int_t *vInput, int nLits, Vec_Int_t *vMemory)
void Kit_SopDivideByLiteralQuo(Kit_Sop_t *cSop, int iLit)
static int Kit_CubeContains(unsigned uLarge, unsigned uSmall)
void Kit_SopBestLiteralCover(Kit_Sop_t *cResult, Kit_Sop_t *cSop, unsigned uCube, int nLits, Vec_Int_t *vMemory)
static unsigned Kit_CubeSharp(unsigned uCube, unsigned uMask)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Kit_SopMakeCubeFree(Kit_Sop_t *cSop)
ABC_NAMESPACE_IMPL_START void Kit_SopCreate(Kit_Sop_t *cResult, Vec_Int_t *vInput, int nVars, Vec_Int_t *vMemory)
DECLARATIONS ///.
static int Kit_CubeIsMarked(unsigned uCube)
static unsigned * Vec_IntFetch(Vec_Int_t *p, int nWords)
static unsigned Kit_SopCommonCube(Kit_Sop_t *cSop)
static int Kit_CubeHasLit(unsigned uCube, int i)
void Kit_SopDivideInternal(Kit_Sop_t *cSop, Kit_Sop_t *cDiv, Kit_Sop_t *vQuo, Kit_Sop_t *vRem, Vec_Int_t *vMemory)
int Kit_SopDivisor(Kit_Sop_t *cResult, Kit_Sop_t *cSop, int nLits, Vec_Int_t *vMemory)
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
int Kit_SopWorstLiteral(Kit_Sop_t *cSop, int nLits)
void Kit_SopCommonCubeCover(Kit_Sop_t *cResult, Kit_Sop_t *cSop, Vec_Int_t *vMemory)
static unsigned Kit_CubeRemLit(unsigned uCube, int i)
static unsigned Kit_CubeMark(unsigned uCube)
#define Kit_SopForEachCube(cSop, uCube, i)
ITERATORS ///.
static void Kit_SopWriteCube(Kit_Sop_t *cSop, unsigned uCube, int i)
#define ABC_NAMESPACE_IMPL_START
typedefABC_NAMESPACE_HEADER_START struct Kit_Sop_t_ Kit_Sop_t
INCLUDES ///.
static int Vec_IntSize(Vec_Int_t *p)
void Kit_SopDivideByCube(Kit_Sop_t *cSop, Kit_Sop_t *cDiv, Kit_Sop_t *vQuo, Kit_Sop_t *vRem, Vec_Int_t *vMemory)
void Kit_SopDup(Kit_Sop_t *cResult, Kit_Sop_t *cSop, Vec_Int_t *vMemory)
static unsigned Kit_CubeUnmark(unsigned uCube)
int Kit_SopIsCubeFree(Kit_Sop_t *cSop)
static void Kit_SopShrink(Kit_Sop_t *cSop, int nCubesNew)
int Kit_SopAnyLiteral(Kit_Sop_t *cSop, int nLits)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
static int Kit_SopCubeNum(Kit_Sop_t *cSop)
static unsigned Kit_CubeSetLit(unsigned uCube, int i)
static void Kit_SopPushCube(Kit_Sop_t *cSop, unsigned uCube)
void Kit_SopDivisorZeroKernel_rec(Kit_Sop_t *cSop, int nLits)