48 int nSuppSize0, nSuppSize1, nSuppSizeS, nSuppSizeL;
49 int Var, Area, Polarity, Delay, Delay0, Delay1, DelayA, DelayB;
61 if ( nSuppSize0 < 1 || nSuppSize1 < 1 )
64 if ( nSuppSize0 <= (
int)p->
nLutK - 2 && nSuppSize1 <= (
int)p->
nLutK - 2 )
77 Polarity = (int)(Delay == Delay1);
79 else if ( nSuppSize0 <= (
int)p->
nLutK - 2 )
87 else if ( nSuppSize1 <= (
int)p->
nLutK - 2 )
95 else if ( nSuppSize0 <= (
int)p->
nLutK )
103 else if ( nSuppSize1 <= (
int)p->
nLutK )
123 if ( Delay == Delay0 )
127 Polarity = (int)(Delay == Delay1);
134 nSuppSizeS =
Abc_MinInt( nSuppSize0 + 2 *!Polarity, nSuppSize1 + 2 * Polarity );
135 nSuppSizeL =
Abc_MaxInt( nSuppSize0 + 2 *!Polarity, nSuppSize1 + 2 * Polarity );
136 if ( nSuppSizeL > (
int)p->
nVars )
150 return pRes->
Variable == -1 ? NULL : pRes;
186 pNew =
Lpk_FunDup( p, Pol ? pTruth0 : pTruth1 );
193 p->
uSupp |= (1 << iVarVac);
int Lpk_SuppDelay(unsigned uSupp, char *pDelays)
void Kit_TruthMuxVar(unsigned *pOut, unsigned *pCof0, unsigned *pCof1, int nVars, int iVar)
static int Abc_MaxInt(int a, int b)
static unsigned * Lpk_FunTruth(Lpk_Fun_t *p, int Num)
void Kit_TruthCofactor0New(unsigned *pOut, unsigned *pIn, int nVars, int iVar)
static int Abc_MinInt(int a, int b)
#define ABC_NAMESPACE_IMPL_END
void Kit_TruthCofactor1New(unsigned *pOut, unsigned *pIn, int nVars, int iVar)
int Lpk_FunSuppMinimize(Lpk_Fun_t *p)
static void Kit_TruthIthVar(unsigned *pTruth, int nVars, int iVar)
#define ABC_NAMESPACE_IMPL_START
static int Kit_WordFindFirstBit(unsigned uWord)
Lpk_Fun_t * Lpk_FunDup(Lpk_Fun_t *p, unsigned *pTruth)
unsigned Kit_TruthSupport(unsigned *pTruth, int nVars)
static int Lpk_LutNumLuts(int nVarsMax, int nLutK)
Lpk_Fun_t * Lpk_MuxSplit(Lpk_Man_t *pMan, Lpk_Fun_t *p, int Var, int Pol)
static int Kit_WordCountOnes(unsigned uWord)
#define Lpk_SuppForEachVar(Supp, Var)
ABC_NAMESPACE_IMPL_START Lpk_Res_t * Lpk_MuxAnalize(Lpk_Man_t *pMan, Lpk_Fun_t *p)
DECLARATIONS ///.
static unsigned Kit_BitMask(int nBits)