118 Vec_Int_t * vNodes = Vec_IntAlloc( 100 );
120 Vec_Bit_t * vMap = Vec_BitStart( Gia_ManObjNum(
p) );
122 int i, nSupp, nCone, nHadds = 0;
127 pObj = Gia_ManObj(
p, 352 );
128 printf(
"Xor = %d.\n", Gia_ObjIsXor(pObj) );
129 printf(
"Fanin0 = %d. Fanin1 = %d.\n", Gia_ObjFaninId0(pObj, 352), Gia_ObjFaninId1(pObj, 352) );
130 printf(
"Fan00 = %d. Fan01 = %d. Fan10 = %d. Fan11 = %d.\n",
131 Gia_ObjFaninId0(Gia_ObjFanin0(pObj), Gia_ObjFaninId0(pObj, 352)),
132 Gia_ObjFaninId1(Gia_ObjFanin0(pObj), Gia_ObjFaninId0(pObj, 352)),
133 Gia_ObjFaninId0(Gia_ObjFanin1(pObj), Gia_ObjFaninId1(pObj, 352)),
134 Gia_ObjFaninId1(Gia_ObjFanin1(pObj), Gia_ObjFaninId1(pObj, 352)) );
137 for ( i = 0; i < Vec_IntSize(vHadds)/2; i++ )
139 int * pSigs = Vec_IntEntryP(vHadds, 2*i);
140 Vec_BitWriteEntry( vMap, pSigs[0], 1 );
141 Vec_BitWriteEntry( vMap, pSigs[1], 1 );
143 for ( i = 0; i < Vec_IntSize(vFadds)/5; i++ )
145 int * pSigs = Vec_IntEntryP(vFadds, 5*i);
146 Vec_BitWriteEntry( vMap, pSigs[3], 1 );
147 Vec_BitWriteEntry( vMap, pSigs[4], 1 );
154 Gia_ObjFanin0(pObj)->fMark0 = 1;
160 printf(
"Collected XORs: " );
161 Vec_IntPrint( vXors );
167 Gia_ObjFanin0(pObj)->fMark0 = 1;
168 Gia_ObjFanin1(pObj)->fMark0 = 1;
172 for ( i = 0; i < Vec_IntSize(vFadds)/5; i++ )
179 for ( i = 0; i < Vec_IntSize(vHadds)/2; i++ )
181 int * pSigs = Vec_IntEntryP(vHadds, 2*i);
182 if ( !Gia_ManObj(
p, pSigs[0])->fMark0 || !Gia_ManObj(
p, pSigs[1])->fMark0 )
184 if ( Gia_ManObj(
p, pSigs[0])->fMark1 || Gia_ManObj(
p, pSigs[1])->fMark1 )
199 printf(
"Node %5d : Supp = %5d. Cone = %5d.\n", i, nSupp, nCone );
200 Vec_IntPush( vNodes, i );
202 printf(
"Fadds = %d. Hadds = %d. Root nodes found = %d.\n", Vec_IntSize(vFadds)/5, nHadds, Vec_IntSize(vNodes) );
209 Vec_IntFree( vFadds );
210 Vec_IntFree( vHadds );
211 Vec_IntFree( vNodes );