19#ifndef ABC__bdd__reo__reo_h
20#define ABC__bdd__reo__reo_h
37#define REO_REORDER_LIMIT 1.15
40#define REO_CONST_LEVEL 30000
41#define REO_TOPREF_UNDEF 30000
42#define REO_CHUNK_SIZE 5000
43#define REO_COST_EPSILON 0.0000001
44#define REO_HIGH_VALUE 10000000
174#define Unit_Regular(u) ((reo_unit *)((ABC_PTRUINT_T)(u) & ~01))
175#define Unit_Not(u) ((reo_unit *)((ABC_PTRUINT_T)(u) ^ 01))
176#define Unit_NotCond(u,c) ((reo_unit *)((ABC_PTRUINT_T)(u) ^ (c)))
177#define Unit_IsConstant(u) ((int)((u)->lev == REO_CONST_LEVEL))
192extern void Extra_ReorderArray(
reo_man *
p, DdManager * dd, DdNode * Funcs[], DdNode * FuncsRes[],
int nFuncs,
int * pOrder );
194extern void reoReorderArray(
reo_man *
p, DdManager * dd, DdNode * Funcs[], DdNode * FuncsRes[],
int nFuncs,
int * pOrder );
220extern DdNode *
Extra_ReorderCudd( DdManager * dd, DdNode * aFunc,
int pPermuteReo[] );
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
reo_unit * reoTransferNodesToUnits_rec(reo_man *p, DdNode *F)
DECLARATIONS ///.
void reoProfileWidthVerifyLevel(reo_plane *pPlane, int Level)
void reoProfileWidthStart(reo_man *p)
int Extra_bddReorderTest(DdManager *dd, DdNode *bF)
void reoUnitsRecycleUnitList(reo_man *p, reo_plane *pPlane)
void reoResizeStructures(reo_man *p, int nDdVarsMax, int nNodesMax, int nFuncs)
void Extra_ReorderTest(DdManager *dd, DdNode *Func)
DECLARATIONS ///.
DdNode * Extra_ReorderCudd(DdManager *dd, DdNode *aFunc, int pPermuteReo[])
void Extra_ReorderQuit(reo_man *p)
double reoReorderSwapAdjacentVars(reo_man *p, int Level, int fMovingUp)
FUNCTION DEFINITIONS ///.
DdNode * Extra_Reorder(reo_man *p, DdManager *dd, DdNode *Func, int *pOrder)
void reoProfileWidthStart2(reo_man *p)
void reoReorderArray(reo_man *p, DdManager *dd, DdNode *Funcs[], DdNode *FuncsRes[], int nFuncs, int *pOrder)
FUNCTION DEFINITIONS ///.
void reoReorderSift(reo_man *p)
DECLARATIONS ///.
void reoProfileNodesStart(reo_man *p)
DECLARATIONS ///.
void Extra_ReorderArray(reo_man *p, DdManager *dd, DdNode *Funcs[], DdNode *FuncsRes[], int nFuncs, int *pOrder)
void Extra_ReorderSetRemapping(reo_man *p, int fRemapUp)
struct _reo_test reo_test
void Extra_ReorderSetIterations(reo_man *p, int nIters)
reo_man * Extra_ReorderInit(int nDdVarsMax, int nNodesMax)
FUNCTION DECLARATIONS ///.
void reoProfileAplPrint(reo_man *p)
DdNode * reoTransferUnitsToNodes_rec(reo_man *p, reo_unit *pUnit)
void Extra_ReorderSetVerbosity(reo_man *p, int fVerbose)
struct _reo_plane reo_plane
struct _reo_hash reo_hash
void reoUnitsStopDispenser(reo_man *p)
void reoProfileWidthPrint(reo_man *p)
void Extra_ReorderSetMinimizationType(reo_man *p, reo_min_type fMinType)
void reoProfileAplStart(reo_man *p)
int Extra_addReorderTest(DdManager *dd, DdNode *aF)
void reoUnitsAddUnitToPlane(reo_plane *pPlane, reo_unit *pUnit)
void reoProfileNodesPrint(reo_man *p)
void reoUnitsRecycleUnit(reo_man *p, reo_unit *pUnit)
void Extra_ReorderSetVerification(reo_man *p, int fVerify)
reo_unit * reoUnitsGetNextUnit(reo_man *p)
FUNCTION DEFINITIONS ///.
struct _reo_unit reo_unit
DATA STRUCTURES ///.