48 int i, iVarLi, iVarLo;
53 p->vNs2Glo = Vec_IntStartFull( Vec_IntSize(
p->vVar2Obj) );
54 p->vCs2Glo = Vec_IntStartFull( Vec_IntSize(
p->vVar2Obj) );
55 p->vGlo2Cs = Vec_IntStartFull( Aig_ManRegNum(
p->pAig) );
56 p->vGlo2Ns = Vec_IntStartFull( Aig_ManRegNum(
p->pAig) );
59 iVarLi = Vec_IntEntry(
p->vObj2Var, Aig_ObjId(pObjLi));
60 iVarLo = Vec_IntEntry(
p->vObj2Var, Aig_ObjId(pObjLo));
61 assert( iVarLi >= 0 && iVarLi < Vec_IntSize(
p->vVar2Obj) );
62 assert( iVarLo >= 0 && iVarLo < Vec_IntSize(
p->vVar2Obj) );
63 Vec_IntWriteEntry(
p->vNs2Glo, iVarLi, i );
64 Vec_IntWriteEntry(
p->vCs2Glo, iVarLo, i );
65 Vec_IntWriteEntry(
p->vGlo2Cs, i, iVarLo );
66 Vec_IntWriteEntry(
p->vGlo2Ns, i, iVarLi );
71 iVarLo = Vec_IntEntry(
p->vObj2Var, Aig_ObjId(pObjLo));
72 Vec_IntWriteEntry(
p->vCs2Glo, iVarLo, Aig_ManRegNum(
p->pAig)+i );
73 Vec_IntWriteEntry(
p->vNs2Glo, iVarLo, Aig_ManRegNum(
p->pAig)+i );
95 p->vVarEnds = Vec_IntStart( Aig_ManObjNumMax(
p->pAig) );
96 p->vVarBegs = Vec_IntStart( Aig_ManObjNumMax(
p->pAig) );
97 Vec_IntFill(
p->vVarBegs, Aig_ManObjNumMax(
p->pAig),
p->pMatrix->nCols );
99 for ( i = 0; i <
p->pMatrix->nCols; i++ )
101 pGroup =
p->pMatrix->pColGrps[i];
104 if ( Vec_IntEntry(
p->vVarBegs, pVar->
Id) > i )
105 Vec_IntWriteEntry(
p->vVarBegs, pVar->
Id, i );
107 if ( Vec_IntEntry(
p->vVarBegs, pVar->
Id) > i )
108 Vec_IntWriteEntry(
p->vVarBegs, pVar->
Id, i );
111 if ( Vec_IntEntry(
p->vVarEnds, pVar->
Id) < i )
112 Vec_IntWriteEntry(
p->vVarEnds, pVar->
Id, i );
114 if ( Vec_IntEntry(
p->vVarEnds, pVar->
Id) < i )
115 Vec_IntWriteEntry(
p->vVarEnds, pVar->
Id, i );
154 Cudd_RecursiveDeref(
p->ddG,
p->ddG->bFunc );
161 Cudd_RecursiveDeref(
p->ddR,
p->ddR->bFunc );
163 Cudd_RecursiveDeref(
p->ddR, bTemp );
167 Vec_PtrFreeP( &
p->vGroups );
168 Vec_IntFreeP( &
p->vVar2Obj );
169 Vec_IntFreeP( &
p->vObj2Var );
170 Vec_IntFreeP( &
p->vVarBegs );
171 Vec_IntFreeP( &
p->vVarEnds );
172 Vec_PtrFreeP( &
p->vRings );
173 Vec_IntFreeP( &
p->vNs2Glo );
174 Vec_IntFreeP( &
p->vCs2Glo );
175 Vec_IntFreeP( &
p->vGlo2Cs );
176 Vec_IntFreeP( &
p->vGlo2Ns );
198 p->pAigGlo = pAigGlo;
202 p->vObj2Var = Vec_IntInvert(
p->vVar2Obj, -1 );
203 p->vRings = Vec_PtrAlloc( 100 );
208 p->pMatrix->pMan =
p;
#define ABC_CALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Aig_ManCleanMarkA(Aig_Man_t *p)
void Aig_ManStop(Aig_Man_t *p)
struct Aig_Obj_t_ Aig_Obj_t
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
void Llb_ManGroupStop(Llb_Grp_t *p)
void Llb_ManPrepareGroups(Llb_Man_t *pMan)
void Llb_ManPrepareVarLimits(Llb_Man_t *p)
ABC_NAMESPACE_IMPL_START void Llb_ManPrepareVarMap(Llb_Man_t *p)
DECLARATIONS ///.
Llb_Man_t * Llb_ManStart(Aig_Man_t *pAigGlo, Aig_Man_t *pAig, Gia_ParLlb_t *pPars)
void Llb_ManStop(Llb_Man_t *p)
void Llb_MtrFree(Llb_Mtr_t *p)
Llb_Mtr_t * Llb_MtrCreate(Llb_Man_t *p)
Vec_Int_t * Llb_ManMarkPivotNodes(Aig_Man_t *p, int fUseInternal)
typedefABC_NAMESPACE_HEADER_START struct Llb_Man_t_ Llb_Man_t
INCLUDES ///.
struct Llb_Grp_t_ Llb_Grp_t
typedefABC_NAMESPACE_HEADER_START struct Gia_ParLlb_t_ Gia_ParLlb_t
INCLUDES ///.
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
#define Saig_ManForEachPi(p, pObj, i)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.