48 vCoPres = Vec_IntAlloc( 100 );
50 Vec_IntPush( vCoPres, 0 );
54 vMap = Vec_IntStart( nRegs );
57 for ( k = 0; k < Limit; k++ )
60 assert( Vec_IntEntry(vSop, i + k) < 2 * nRegs );
61 Vec_IntWriteEntry( vMap, Abc_Lit2Var(Vec_IntEntry(vSop, i + k)), 1 );
66 Vec_IntPush( vCoPres, i+1 );
74 if ( Gia_ObjIsTravIdCurrent(
p, pObj) )
76 Gia_ObjSetTravIdCurrent(
p, pObj);
77 if ( Gia_ObjIsCi(pObj) )
79 assert( Gia_ObjIsAnd(pObj) );
82 Vec_IntPush( vNodes, Gia_ObjId(
p, pObj) );
90 Gia_ObjSetTravIdCurrent(
p, Gia_ManConst0(
p));
92 Gia_ObjSetTravIdCurrent(
p, pObj);
93 vNodes = Vec_IntAlloc( 1000 );
103 int i, k, Entry, Limit;
105 assert( Gia_ManPoNum(
p) == 1 );
111 pNew->
pName = Abc_UtilStrsav(
p->pName );
112 pNew->
pSpec = Abc_UtilStrsav(
p->pSpec );
113 Gia_ManConst0(
p)->Value = 0;
115 pObj->
Value = Gia_ManAppendCi(pNew);
121 pObj = Gia_ManCo(
p, Entry);
122 pObj->
Value = Gia_ObjFanin0Copy( pObj );
129 for ( k = 0; k < Limit; k++ )
132 Lit = Vec_IntEntry( vSop, i + k );
133 pObj = Gia_ManRi(
p, Abc_Lit2Var(Lit) );
138 Gia_ManAppendCo( pNew, Sop );
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Gia_ManStop(Gia_Man_t *p)
void Gia_ManHashAlloc(Gia_Man_t *p)
Gia_Man_t * Gia_ManStart(int nObjsMax)
FUNCTION DEFINITIONS ///.
int Gia_ManHashOr(Gia_Man_t *p, int iLit0, int iLit1)
struct Gia_Obj_t_ Gia_Obj_t
struct Gia_Man_t_ Gia_Man_t
#define Gia_ManForEachObjVec(vVec, p, pObj, i)
Gia_Man_t * Gia_ManCleanup(Gia_Man_t *p)
int Gia_ManHashAnd(Gia_Man_t *p, int iLit0, int iLit1)
void Gia_ManIncrementTravId(Gia_Man_t *p)
#define Gia_ManForEachCi(p, pObj, i)
void Gia_ManHashStop(Gia_Man_t *p)
Gia_Man_t * Int2_ManProbToGia(Gia_Man_t *p, Vec_Int_t *vSop)
void Int2_ManCollectInternal_rec(Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vNodes)
Vec_Int_t * Int2_ManCollectInternal(Gia_Man_t *p, Vec_Int_t *vCoPres)
ABC_NAMESPACE_IMPL_START Vec_Int_t * Int2_ManComputeCoPres(Vec_Int_t *vSop, int nRegs)
DECLARATIONS ///.
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
#define Vec_IntForEachEntryStart(vVec, Entry, i, Start)