FUNCTION DECLARATIONS ///.
246{
248 char * pFront;
249 int * pIdToFront;
250 int i, iVar0, iVar1, nCrossCut = 0, nCrossCutMax = 0;
251
254 pIdToFront[0] = -1;
255 pIdToFront[1] = -1;
256
259 {
260 pIdToFront[1] = Fsim_ManFrontFindNext(
p, pFront );
261 nCrossCut = 1;
262 }
263
264 if ( fCompressAig )
265 {
266 p->nDataAig =
p->nObjs * 6;
267 p->pDataAig =
ABC_ALLOC(
unsigned char,
p->nDataAig );
268 p->pDataCur =
p->pDataAig;
270 }
271 else
272 {
274 p->pDataCur2 =
p->pDataAig2 + 6;
275 }
276
277 for ( i = 2; i <
p->nObjs; i++ )
278 {
279 if (
p->pFans0[i] == 0 )
280 {
281
282 pIdToFront[i] = Fsim_ManFrontFindNext(
p, pFront );
283 pObj->iNode = pIdToFront[i];
284 pObj->iFan0 = 0;
285 pObj->iFan1 = 0;
286 Fsim_ManStoreObj(
p, pObj );
287
288 if (
p->pRefs[i] == 0 )
289 {
290 pFront[pIdToFront[i] %
p->nFront] = 0;
291 pIdToFront[i] = -1;
292 }
293 }
294 else if (
p->pFans1[i] == 0 )
295 {
297
298 iVar0 = Fsim_Lit2Var(
p->pFans0[i]);
299 assert( pIdToFront[iVar0] > 0 );
300
301 pObj->iNode = 0;
302 pObj->iFan0 = Fsim_Var2Lit(pIdToFront[iVar0], Fsim_LitIsCompl(
p->pFans0[i]));
303 pObj->iFan1 = 0;
304 Fsim_ManStoreObj(
p, pObj );
305
306 if ( --
p->pRefs[iVar0] == 0 )
307 {
308 pFront[pIdToFront[iVar0] %
p->nFront] = 0;
309 pIdToFront[iVar0] = -1;
310 nCrossCut--;
311 }
312 }
313 else
314 {
315
316 iVar0 = Fsim_Lit2Var(
p->pFans0[i]);
317 assert( pIdToFront[iVar0] > 0 );
318 iVar1 = Fsim_Lit2Var(
p->pFans1[i]);
319 assert( pIdToFront[iVar1] > 0 );
320
321 pIdToFront[i] = Fsim_ManFrontFindNext(
p, pFront );
322 pObj->iNode = pIdToFront[i];
323 pObj->iFan0 = Fsim_Var2Lit(pIdToFront[iVar0], Fsim_LitIsCompl(
p->pFans0[i]));
324 pObj->iFan1 = Fsim_Var2Lit(pIdToFront[iVar1], Fsim_LitIsCompl(
p->pFans1[i]));
325 Fsim_ManStoreObj(
p, pObj );
326
327 if ( --
p->pRefs[iVar0] == 0 )
328 {
329 pFront[pIdToFront[iVar0] %
p->nFront] = 0;
330 pIdToFront[iVar0] = -1;
331 nCrossCut--;
332 }
333 if ( --
p->pRefs[iVar1] == 0 )
334 {
335 pFront[pIdToFront[iVar1] %
p->nFront] = 0;
336 pIdToFront[iVar1] = -1;
337 nCrossCut--;
338 }
339
340 if (
p->pRefs[i] == 0 )
341 {
342 pFront[pIdToFront[i] %
p->nFront] = 0;
343 pIdToFront[i] = -1;
344 }
345 }
347 if ( nCrossCutMax < ++nCrossCut )
348 nCrossCutMax = nCrossCut;
349 }
350 assert(
p->pDataAig2 == NULL ||
p->pDataCur2 -
p->pDataAig2 == (3 *
p->nObjs) );
352 assert( nCrossCutMax ==
p->nCrossCutMax );
353 for ( i = 0; i <
p->nFront; i++ )
357
361}
#define ABC_ALLOC(type, num)
#define ABC_CALLOC(type, num)
typedefABC_NAMESPACE_HEADER_START struct Fsim_Obj_t_ Fsim_Obj_t
INCLUDES ///.