55 p->nInputs = Abc_NtkCiNum(
p->pNtk);
56 p->nOutputs = Abc_NtkCoNum(
p->pNtk);
61 p->vMatrSymms = Vec_PtrStart(
p->nOutputs );
62 p->vMatrNonSymms = Vec_PtrStart(
p->nOutputs );
63 p->vPairsTotal = Vec_IntStart(
p->nOutputs );
64 p->vPairsSym = Vec_IntStart(
p->nOutputs );
65 p->vPairsNonSym = Vec_IntStart(
p->nOutputs );
66 for ( i = 0; i <
p->nOutputs; i++ )
75 p->vVarsU = Vec_IntStart( 100 );
76 p->vVarsV = Vec_IntStart( 100 );
79 p->vSupports = Vec_VecStart(
p->nOutputs );
80 for ( i = 0; i <
p->nOutputs; i++ )
81 for ( v = 0; v <
p->nInputs; v++ )
83 Vec_VecPushInt(
p->vSupports, i, v );
104 if (
p->vNodes ) Vec_PtrFree(
p->vNodes );
105 if (
p->vSupports ) Vec_VecFree(
p->vSupports );
106 for ( i = 0; i <
p->nOutputs; i++ )
111 Vec_IntFree(
p->vVarsU );
112 Vec_IntFree(
p->vVarsV );
113 Vec_PtrFree(
p->vMatrSymms );
114 Vec_PtrFree(
p->vMatrNonSymms );
115 Vec_IntFree(
p->vPairsTotal );
116 Vec_IntFree(
p->vPairsSym );
117 Vec_IntFree(
p->vPairsNonSym );
139 printf(
"Total symm = %8d.\n",
p->nPairsSymm );
140 printf(
"Structural symm = %8d.\n",
p->nPairsSymmStr );
141 printf(
"Total non-sym = %8d.\n",
p->nPairsNonSymm );
142 printf(
"Total var pairs = %8d.\n",
p->nPairsTotal );
143 printf(
"Sat runs SAT = %8d.\n",
p->nSatRunsSat );
144 printf(
"Sat runs UNSAT = %8d.\n",
p->nSatRunsUnsat );
145 ABC_PRT(
"Structural ",
p->timeStruct );
146 ABC_PRT(
"Simulation ",
p->timeSim );
148 ABC_PRT(
"Counting ",
p->timeCount );
149 ABC_PRT(
"Fraiging ",
p->timeFraig );
173 p->nInputs = Abc_NtkCiNum(
p->pNtk);
174 p->nOutputs = Abc_NtkCoNum(
p->pNtk);
179 p->fLightweight = fLightweight;
180 if (!
p->fLightweight) {
183 p->nSuppBits = Abc_NtkCiNum(pNtk);
189 p->vFifo = Vec_PtrAlloc( 100 );
190 p->vDiffs = Vec_IntAlloc( 100 );
192 p->vSuppTargs = Vec_VecStart(
p->nInputs );
215 if (
p->vSuppTargs ) Vec_VecFree(
p->vSuppTargs );
217 if (
p->vFifo ) Vec_PtrFree(
p->vFifo );
218 if (
p->vDiffs ) Vec_IntFree(
p->vDiffs );
239 printf(
"Sat runs SAT = %8d.\n",
p->nSatRunsSat );
240 printf(
"Sat runs UNSAT = %8d.\n",
p->nSatRunsUnsat );
241 ABC_PRT(
"Simulation ",
p->timeSim );
242 ABC_PRT(
"Traversal ",
p->timeTrav );
243 ABC_PRT(
"Fraiging ",
p->timeFraig );
267 memset( pPat->
pData, 0,
p->nSuppWords *
sizeof(
unsigned) );
ABC_DLL Vec_Ptr_t * Abc_NtkDfs(Abc_Ntk_t *pNtk, int fCollectAll)
struct Abc_Ntk_t_ Abc_Ntk_t
#define ABC_ALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Sim_ManPatFree(Sim_Man_t *p, Sim_Pat_t *pPat)
Sim_Pat_t * Sim_ManPatAlloc(Sim_Man_t *p)
void Sim_ManPrintStats(Sim_Man_t *p)
Sim_Man_t * Sim_ManStart(Abc_Ntk_t *pNtk, int fLightweight)
void Sim_ManStop(Sim_Man_t *p)
void Sym_ManStop(Sym_Man_t *p)
ABC_NAMESPACE_IMPL_START Sym_Man_t * Sym_ManStart(Abc_Ntk_t *pNtk, int fVerbose)
DECLARATIONS ///.
void Sym_ManPrintStats(Sym_Man_t *p)
void Sim_UtilInfoFree(Vec_Ptr_t *p)
struct Sim_Pat_t_ Sim_Pat_t
Vec_Ptr_t * Sim_UtilInfoAlloc(int nSize, int nWords, int fClean)
FUNCTION DEFINITIONS ///.
struct Sim_Man_t_ Sim_Man_t
#define Sim_SuppFunHasVar(vSupps, Output, v)
int Sim_UtilCountSuppSizes(Sim_Man_t *p, int fStruct)
Vec_Ptr_t * Sim_ComputeStrSupp(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Vec_Ptr_t * Sim_ComputeFunSupp(Abc_Ntk_t *pNtk, int fVerbose)
#define SIM_NUM_WORDS(n)
MACRO DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Sym_Man_t_ Sym_Man_t
INCLUDES ///.