48 unsigned uCofs[10][32];
52 nOnes = Kit_TruthCountOnes( uCofs[0], nVars );
53 printf(
"Total = %d.\n", nOnes * ((1 << nVars) - nOnes) );
56 for ( i = 0; i < nVars; i++ )
59 nOnes = Kit_TruthCountOnes( uCofs[0], nVars );
60 printf(
"%7d ", nOnes );
65 for ( i = 0; i < nVars; i++ )
66 for ( k = 0; k < nVars; k++ )
81 Kit_TruthAndPhase( uCofs[6], uCofs[2], uCofs[5], nVars, 0, 1 );
82 Kit_TruthAndPhase( uCofs[7], uCofs[2], uCofs[5], nVars, 1, 0 );
83 Kit_TruthAndPhase( uCofs[8], uCofs[3], uCofs[4], nVars, 0, 1 );
84 Kit_TruthAndPhase( uCofs[9], uCofs[3], uCofs[4], nVars, 1, 0 );
86 nOnes = Kit_TruthCountOnes( uCofs[6], nVars ) +
87 Kit_TruthCountOnes( uCofs[7], nVars ) +
88 Kit_TruthCountOnes( uCofs[8], nVars ) +
89 Kit_TruthCountOnes( uCofs[9], nVars );
91 printf(
"%7d ", nOnes );
175 static unsigned u4VarTruths[4] = { 0xAAAAAAAA, 0xCCCCCCCC, 0xF0F0F0F0, 0xFF00FF00 };
176 static unsigned u4VarTts[222] = {
177 0x0000, 0x0001, 0x0003, 0x0006, 0x0007, 0x000f, 0x0016, 0x0017, 0x0018, 0x0019,
178 0x001b, 0x001e, 0x001f, 0x003c, 0x003d, 0x003f, 0x0069, 0x006b, 0x006f, 0x007e,
179 0x007f, 0x00ff, 0x0116, 0x0117, 0x0118, 0x0119, 0x011a, 0x011b, 0x011e, 0x011f,
180 0x012c, 0x012d, 0x012f, 0x013c, 0x013d, 0x013e, 0x013f, 0x0168, 0x0169, 0x016a,
181 0x016b, 0x016e, 0x016f, 0x017e, 0x017f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0186,
182 0x0187, 0x0189, 0x018b, 0x018f, 0x0196, 0x0197, 0x0198, 0x0199, 0x019a, 0x019b,
183 0x019e, 0x019f, 0x01a8, 0x01a9, 0x01aa, 0x01ab, 0x01ac, 0x01ad, 0x01ae, 0x01af,
184 0x01bc, 0x01bd, 0x01be, 0x01bf, 0x01e8, 0x01e9, 0x01ea, 0x01eb, 0x01ee, 0x01ef,
185 0x01fe, 0x033c, 0x033d, 0x033f, 0x0356, 0x0357, 0x0358, 0x0359, 0x035a, 0x035b,
186 0x035e, 0x035f, 0x0368, 0x0369, 0x036a, 0x036b, 0x036c, 0x036d, 0x036e, 0x036f,
187 0x037c, 0x037d, 0x037e, 0x03c0, 0x03c1, 0x03c3, 0x03c5, 0x03c6, 0x03c7, 0x03cf,
188 0x03d4, 0x03d5, 0x03d6, 0x03d7, 0x03d8, 0x03d9, 0x03db, 0x03dc, 0x03dd, 0x03de,
189 0x03fc, 0x0660, 0x0661, 0x0662, 0x0663, 0x0666, 0x0667, 0x0669, 0x066b, 0x066f,
190 0x0672, 0x0673, 0x0676, 0x0678, 0x0679, 0x067a, 0x067b, 0x067e, 0x0690, 0x0691,
191 0x0693, 0x0696, 0x0697, 0x069f, 0x06b0, 0x06b1, 0x06b2, 0x06b3, 0x06b4, 0x06b5,
192 0x06b6, 0x06b7, 0x06b9, 0x06bd, 0x06f0, 0x06f1, 0x06f2, 0x06f6, 0x06f9, 0x0776,
193 0x0778, 0x0779, 0x077a, 0x077e, 0x07b0, 0x07b1, 0x07b4, 0x07b5, 0x07b6, 0x07bc,
194 0x07e0, 0x07e1, 0x07e2, 0x07e3, 0x07e6, 0x07e9, 0x07f0, 0x07f1, 0x07f2, 0x07f8,
195 0x0ff0, 0x1668, 0x1669, 0x166a, 0x166b, 0x166e, 0x167e, 0x1681, 0x1683, 0x1686,
196 0x1687, 0x1689, 0x168b, 0x168e, 0x1696, 0x1697, 0x1698, 0x1699, 0x169a, 0x169b,
197 0x169e, 0x16a9, 0x16ac, 0x16ad, 0x16bc, 0x16e9, 0x177e, 0x178e, 0x1796, 0x1798,
198 0x179a, 0x17ac, 0x17e8, 0x18e7, 0x19e1, 0x19e3, 0x19e6, 0x1bd8, 0x1be4, 0x1ee1,
201 int Counters[222] = {0};
207 unsigned short * puCanons = NULL;
208 unsigned char * puMap = NULL;
212 assert( Abc_NtkPiNum(pNtk) == 4 );
221 if ( Vec_PtrSize(vNodes) == 0 )
222 uTruth = (unsigned)Abc_ObjFanin0(pObj)->pCopy;
226 if ( (uTruth & 0xFFFF) < (~uTruth & 0xFFFF) )
227 uTruth = uTruth & 0xFFFF;
229 uTruth = ~uTruth & 0xFFFF;
231 for ( k = 0; k < 222; k++ )
232 if ( u4VarTts[k] == uTruth )
248 Vec_PtrFree( vNodes );
254 for ( k = 0; k < 222; k++ )
256 printf(
"%d/%x/%d ", k, u4VarTts[k], Counters[k] );
257 Count += Counters[k];
259 printf(
" Total = %d\n", Count );