55 p->nCutsMax = nCutsMax;
56 p->nLeafMax = nLeafMax;
57 p->fVerbose = fVerbose;
61 assert( Aig_ManCiNum(
p->pManAig) == Aig_ManCiNum(
p->pManRes) );
63 p->pnRefs =
ABC_ALLOC(
int, Aig_ManObjNumMax(pMan) );
67 memset(
p->pnRefs, 0,
sizeof(
int) * Aig_ManObjNumMax(pMan) );
69 p->nTruthWords = Abc_TruthWordNum(nLeafMax);
70 p->nCutSize =
sizeof(
Csw_Cut_t) +
sizeof(
int) * nLeafMax +
sizeof(unsigned) *
p->nTruthWords;
73 p->nTableSize = Abc_PrimeCudd( Aig_ManNodeNum(pMan) *
p->nCutsMax / 2 );
77 Csw_ObjSetEquiv(
p, Aig_ManConst1(
p->pManAig), Aig_ManConst1(
p->pManRes) );
79 Csw_ObjSetEquiv(
p, pObj, Aig_ManCi(
p->pManRes, i) );
81 p->puTemp[0] =
ABC_ALLOC(
unsigned, 4 *
p->nTruthWords );
82 p->puTemp[1] =
p->puTemp[0] +
p->nTruthWords;
83 p->puTemp[2] =
p->puTemp[1] +
p->nTruthWords;
84 p->puTemp[3] =
p->puTemp[2] +
p->nTruthWords;
103 int nNodesBeg = Aig_ManNodeNum(
p->pManAig);
104 int nNodesEnd = Aig_ManNodeNum(
p->pManRes);
105 printf(
"Beg = %7d. End = %7d. (%6.2f %%) Try = %7d. Cuts = %8d.\n",
106 nNodesBeg, nNodesEnd, 100.0*(nNodesBeg-nNodesEnd)/nNodesBeg,
108 printf(
"Triv0 = %6d. Triv1 = %6d. Triv2 = %6d. Cut-replace = %6d.\n",
109 p->nNodesTriv0,
p->nNodesTriv1,
p->nNodesTriv2,
p->nNodesCuts );
110 ABC_PRTP(
"Cuts ",
p->timeCuts,
p->timeTotal );
111 ABC_PRTP(
"Hashing ",
p->timeHash,
p->timeTotal );
112 ABC_PRTP(
"Other ",
p->timeOther,
p->timeTotal );
113 ABC_PRTP(
"TOTAL ",
p->timeTotal,
p->timeTotal );
#define ABC_ALLOC(type, num)
#define ABC_PRTP(a, t, T)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
Aig_Man_t * Aig_ManStartFrom(Aig_Man_t *p)
struct Aig_Obj_t_ Aig_Obj_t
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
Aig_MmFixed_t * Aig_MmFixedStart(int nEntrySize, int nEntriesMax)
FUNCTION DEFINITIONS ///.
void Aig_MmFixedStop(Aig_MmFixed_t *p, int fVerbose)
int Csw_TableCountCuts(Csw_Man_t *p)
struct Csw_Cut_t_ Csw_Cut_t
typedefABC_NAMESPACE_HEADER_START struct Csw_Man_t_ Csw_Man_t
INCLUDES ///.
ABC_NAMESPACE_IMPL_START Csw_Man_t * Csw_ManStart(Aig_Man_t *pMan, int nCutsMax, int nLeafMax, int fVerbose)
DECLARATIONS ///.
void Csw_ManStop(Csw_Man_t *p)