148 int i, nWordsUsed, nSuperSize = 0, Super[2*
GIA_LIMIT];
157 ((
Gia_ObjSat1_t *)pObjPlace)->nFans = Gia_Var2Lit( nSuperSize, 0 );
159 nWordsUsed = nSuperSize;
160 for ( i = 0; i < nSuperSize; i++ )
162 pFanin =
Gia_ManObj( p, Gia_Lit2Var(Super[i]) );
170 assert( Gia_LitIsCompl(Super[i]) );
208 int nOnset0, nOnset1, nOffset0, nOffset1;
212 nOnset0 = 1, nOffset0 = 1;
225 nOnset1 = 1, nOffset1 = 1;
236 *pnOnset = nOnset0 * nOnset1;
237 *pnOffset = nOffset0 + nOffset1;
254 int Level0 = 0, Level1 = 0;
285 int nNodes0 = 0, nNodes1 = 0;
294 return nNodes0 + nNodes1 + 1;
324 printf(
"%s", (Step & 1)?
" + " :
"*" );
352 int nStored, Storage[1000], * pStart;
355 int i, nLevels, nLeaves, nNodes, nCount[2*
GIA_LIMIT+2] = {0}, nCountAll = 0;
356 int Num0 = 0, Num1 = 0;
357 clock_t clk = clock();
358 int nWords = 0, nWords2 = 0;
388 memcpy( pStart, Storage,
sizeof(
int) * nStored );
390 nLeaves = nNodes = 0;
392 nWords += nLeaves + nNodes;
402 printf(
"%8d : And = %3d. Lev = %2d. Clauses = %3d. (%3d + %3d).\n", i, nNodes, nLevels, Num0+Num1, Num0, Num1 );
414 printf(
"%2d=%6d %7.2f %% %7.2f %%\n", i, nCount[i], 100.0*nCount[i]/nCountAll, 100.0*i*nCount[i]/
Gia_ManAndNum(p) );
416 ABC_PRMn(
"MemoryReal", 4*nWords2 );
418 ABC_PRT(
"Time", clock() - clk );
static int Gia_ObjFaninC1(Gia_Obj_t *pObj)
Gia_ManSat_t * Gia_ManSatStart()
FUNCTION DEFINITIONS ///.
int Gia_ManSatPartCreate_rec(Gia_Man_t *p, Gia_Obj_t *pObj, int *pObjPlace, int *pStore)
char * Aig_MmFlexEntryFetch(Aig_MmFlex_t *p, int nBytes)
void Gia_ManSatPartPrint(Gia_Man_t *p, Gia_Obj_t *pObj, int Step)
int Gia_ManSatPartCount(Gia_Man_t *p, Gia_Obj_t *pObj, int *pnLeaves, int *pnNodes)
static int Abc_MaxInt(int a, int b)
int Gia_ManSatPartCreate(Gia_Man_t *p, Gia_Obj_t *pObj, int *pStore)
static Gia_Obj_t * Gia_ManObj(Gia_Man_t *p, int v)
static int Gia_ManAndNum(Gia_Man_t *p)
void Gia_ManCreateValueRefs(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_END
#define Gia_ManForEachAnd(p, pObj, i)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManSatExperiment(Gia_Man_t *p)
void Gia_ManSatPartCountClauses(Gia_Man_t *p, Gia_Obj_t *pObj, int *pnOnset, int *pnOffset)
static int Gia_ObjIsCo(Gia_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_START
Aig_MmFlex_t * Aig_MmFlexStart()
#define GIA_LIMIT
DECLARATIONS ///.
void Aig_MmFlexStop(Aig_MmFlex_t *p, int fVerbose)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
#define Gia_ManForEachObj(p, pObj, i)
MACRO DEFINITIONS ///.
#define ABC_CALLOC(type, num)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
void Gia_ManSatPartCollectSuper(Gia_Man_t *p, Gia_Obj_t *pObj, int *pLits, int *pnLits)
static int Gia_ObjFaninC0(Gia_Obj_t *pObj)
static int Gia_ObjIsCi(Gia_Obj_t *pObj)
void Gia_ManSatStop(Gia_ManSat_t *p)
static int Gia_ManObjNum(Gia_Man_t *p)
int Gia_ManSatPartCountNodes(Gia_Man_t *p, Gia_Obj_t *pObj)