ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
reoApi.c
Go to the documentation of this file.
1
18
19#include "reo.h"
20
22
23
27
31
50reo_man * Extra_ReorderInit( int nDdVarsMax, int nNodesMax )
51{
52 reo_man * p;
53 // allocate and clean the data structure
54 p = ABC_ALLOC( reo_man, 1 );
55 memset( p, 0, sizeof(reo_man) );
56 // resize the manager to meet user's needs
57 reoResizeStructures( p, nDdVarsMax, nNodesMax, 100 );
58 // set the defaults
59 p->fMinApl = 0;
60 p->fMinWidth = 0;
61 p->fRemapUp = 0;
62 p->fVerbose = 0;
63 p->fVerify = 0;
64 p->nIters = 1;
65 return p;
66}
67
80{
81 ABC_FREE( p->pTops );
82 ABC_FREE( p->pSupp );
83 ABC_FREE( p->pOrderInt );
84 ABC_FREE( p->pWidthCofs );
85 ABC_FREE( p->pMapToPlanes );
86 ABC_FREE( p->pMapToDdVarsOrig );
87 ABC_FREE( p->pMapToDdVarsFinal );
88 ABC_FREE( p->pPlanes );
89 ABC_FREE( p->pVarCosts );
90 ABC_FREE( p->pLevelOrder );
91 ABC_FREE( p->HTable );
92 ABC_FREE( p->pRefNodes );
94 ABC_FREE( p->pMemChunks );
95 ABC_FREE( p );
96}
97
123{
124 if ( fMinType == REO_MINIMIZE_NODES )
125 {
126 p->fMinWidth = 0;
127 p->fMinApl = 0;
128 }
129 else if ( fMinType == REO_MINIMIZE_WIDTH )
130 {
131 p->fMinWidth = 1;
132 p->fMinApl = 0;
133 }
134 else if ( fMinType == REO_MINIMIZE_APL )
135 {
136 p->fMinWidth = 0;
137 p->fMinApl = 1;
138 }
139 else
140 {
141 assert( 0 );
142 }
143}
144
172void Extra_ReorderSetRemapping( reo_man * p, int fRemapUp )
173{
174 p->fRemapUp = fRemapUp;
175}
176
193{
194 p->nIters = nIters;
195}
196
213{
214 p->fVerify = fVerify;
215}
216
229void Extra_ReorderSetVerbosity( reo_man * p, int fVerbose )
230{
231 p->fVerbose = fVerbose;
232}
233
262DdNode * Extra_Reorder( reo_man * p, DdManager * dd, DdNode * Func, int * pOrder )
263{
264 DdNode * FuncRes;
265 Extra_ReorderArray( p, dd, &Func, &FuncRes, 1, pOrder );
266 Cudd_Deref( FuncRes );
267 return FuncRes;
268}
269
283void Extra_ReorderArray( reo_man * p, DdManager * dd, DdNode * Funcs[], DdNode * FuncsRes[], int nFuncs, int * pOrder )
284{
285 reoReorderArray( p, dd, Funcs, FuncsRes, nFuncs, pOrder );
286}
287
288
292
294
#define ABC_ALLOC(type, num)
Definition abc_global.h:264
#define ABC_FREE(obj)
Definition abc_global.h:267
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
Cube * p
Definition exorList.c:222
void Extra_ReorderQuit(reo_man *p)
Definition reoApi.c:79
DdNode * Extra_Reorder(reo_man *p, DdManager *dd, DdNode *Func, int *pOrder)
Definition reoApi.c:262
void Extra_ReorderArray(reo_man *p, DdManager *dd, DdNode *Funcs[], DdNode *FuncsRes[], int nFuncs, int *pOrder)
Definition reoApi.c:283
void Extra_ReorderSetRemapping(reo_man *p, int fRemapUp)
Definition reoApi.c:172
void Extra_ReorderSetIterations(reo_man *p, int nIters)
Definition reoApi.c:192
void Extra_ReorderSetVerbosity(reo_man *p, int fVerbose)
Definition reoApi.c:229
ABC_NAMESPACE_IMPL_START reo_man * Extra_ReorderInit(int nDdVarsMax, int nNodesMax)
DECLARATIONS ///.
Definition reoApi.c:50
void Extra_ReorderSetMinimizationType(reo_man *p, reo_min_type fMinType)
Definition reoApi.c:122
void Extra_ReorderSetVerification(reo_man *p, int fVerify)
Definition reoApi.c:212
struct _reo_man reo_man
Definition reo.h:63
void reoResizeStructures(reo_man *p, int nDdVarsMax, int nNodesMax, int nFuncs)
Definition reoCore.c:269
void reoReorderArray(reo_man *p, DdManager *dd, DdNode *Funcs[], DdNode *FuncsRes[], int nFuncs, int *pOrder)
FUNCTION DEFINITIONS ///.
Definition reoCore.c:50
reo_min_type
Definition reo.h:50
@ REO_MINIMIZE_NODES
Definition reo.h:51
@ REO_MINIMIZE_APL
Definition reo.h:53
@ REO_MINIMIZE_WIDTH
Definition reo.h:52
void reoUnitsStopDispenser(reo_man *p)
Definition reoUnits.c:115
#define assert(ex)
Definition util_old.h:213
char * memset()