diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2014-04-02 18:27:35 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2014-04-02 18:27:35 -0700 |
commit | b085ba4b515bec96043bf837c52825d8be094882 (patch) | |
tree | 4dbd96fada19ec120dac7084f67f9fc46daf2dbe | |
parent | 883e21fe8a663844b6b12c2b202093fb0760f16c (diff) | |
download | abc-b085ba4b515bec96043bf837c52825d8be094882.tar.gz abc-b085ba4b515bec96043bf837c52825d8be094882.tar.bz2 abc-b085ba4b515bec96043bf837c52825d8be094882.zip |
Improvements to DSD manager.
-rw-r--r-- | src/map/if/ifDsd.c | 226 |
1 files changed, 113 insertions, 113 deletions
diff --git a/src/map/if/ifDsd.c b/src/map/if/ifDsd.c index 5c7d7f4e..135d487f 100644 --- a/src/map/if/ifDsd.c +++ b/src/map/if/ifDsd.c @@ -63,9 +63,9 @@ struct If_DsdMan_t_ int nBins; // table size unsigned * pBins; // hash table Mem_Flex_t * pMem; // memory for nodes - Vec_Ptr_t * vObjs; // objects - Vec_Int_t * vNexts; // next pointers - Vec_Int_t * vTruths; // truth IDs of prime nodes + Vec_Ptr_t vObjs; // objects + Vec_Int_t vNexts; // next pointers + Vec_Int_t vTruths; // truth IDs of prime nodes Vec_Int_t * vTemp1; // temp Vec_Int_t * vTemp2; // temp word ** pTtElems; // elementary TTs @@ -85,9 +85,9 @@ struct If_DsdMan_t_ }; static inline int If_DsdObjWordNum( int nFans ) { return sizeof(If_DsdObj_t) / 8 + nFans / 2 + ((nFans & 1) > 0); } -static inline int If_DsdObjTruthId( If_DsdMan_t * p, If_DsdObj_t * pObj ) { return (pObj->Type == IF_DSD_PRIME && pObj->nFans > 2) ? Vec_IntEntry(p->vTruths, pObj->Id) : -1; } +static inline int If_DsdObjTruthId( If_DsdMan_t * p, If_DsdObj_t * pObj ) { return (pObj->Type == IF_DSD_PRIME && pObj->nFans > 2) ? Vec_IntEntry(&p->vTruths, pObj->Id) : -1; } static inline word * If_DsdObjTruth( If_DsdMan_t * p, If_DsdObj_t * pObj ) { return Vec_MemReadEntry(p->vTtMem[pObj->nFans], If_DsdObjTruthId(p, pObj)); } -static inline void If_DsdObjSetTruth( If_DsdMan_t * p, If_DsdObj_t * pObj, int Id ) { assert( pObj->Type == IF_DSD_PRIME && pObj->nFans > 2 ); Vec_IntWriteEntry(p->vTruths, pObj->Id, Id); } +static inline void If_DsdObjSetTruth( If_DsdMan_t * p, If_DsdObj_t * pObj, int Id ) { assert( pObj->Type == IF_DSD_PRIME && pObj->nFans > 2 ); Vec_IntWriteEntry(&p->vTruths, pObj->Id, Id); } static inline void If_DsdObjClean( If_DsdObj_t * pObj ) { memset( pObj, 0, sizeof(If_DsdObj_t) ); } static inline int If_DsdObjId( If_DsdObj_t * pObj ) { return pObj->Id; } @@ -152,7 +152,7 @@ int If_DsdManLutSize( If_DsdMan_t * p ) } int If_DsdManCheckDec( If_DsdMan_t * p, int iDsd ) { - return If_DsdVecObjMark( p->vObjs, Abc_Lit2Var(iDsd) ); + return If_DsdVecObjMark( &p->vObjs, Abc_Lit2Var(iDsd) ); } /**Function************************************************************* @@ -185,14 +185,14 @@ If_DsdObj_t * If_DsdObjAlloc( If_DsdMan_t * p, int Type, int nFans ) If_DsdObjClean( pObj ); pObj->Type = Type; pObj->nFans = nFans; - pObj->Id = Vec_PtrSize( p->vObjs ); + pObj->Id = Vec_PtrSize( &p->vObjs ); pObj->fMark = 0; pObj->Count = 0; - Vec_PtrPush( p->vObjs, pObj ); - Vec_IntPush( p->vNexts, 0 ); - Vec_IntPush( p->vTruths, -1 ); - assert( Vec_IntSize(p->vNexts) == Vec_PtrSize(p->vObjs) ); - assert( Vec_IntSize(p->vTruths) == Vec_PtrSize(p->vObjs) ); + Vec_PtrPush( &p->vObjs, pObj ); + Vec_IntPush( &p->vNexts, 0 ); + Vec_IntPush( &p->vTruths, -1 ); + assert( Vec_IntSize(&p->vNexts) == Vec_PtrSize(&p->vObjs) ); + assert( Vec_IntSize(&p->vTruths) == Vec_PtrSize(&p->vObjs) ); return pObj; } If_DsdMan_t * If_DsdManAlloc( int nVars, int LutSize ) @@ -208,9 +208,9 @@ If_DsdMan_t * If_DsdManAlloc( int nVars, int LutSize ) p->nBins = Abc_PrimeCudd( 100000 ); p->pBins = ABC_CALLOC( unsigned, p->nBins ); p->pMem = Mem_FlexStart(); - p->vObjs = Vec_PtrAlloc( 10000 ); - p->vNexts = Vec_IntAlloc( 10000 ); - p->vTruths = Vec_IntAlloc( 10000 ); + Vec_PtrGrow( &p->vObjs, 10000 ); + Vec_IntGrow( &p->vNexts, 10000 ); + Vec_IntGrow( &p->vTruths, 10000 ); If_DsdObjAlloc( p, IF_DSD_CONST0, 0 ); If_DsdObjAlloc( p, IF_DSD_VAR, 0 )->nSupp = 1; p->vTemp1 = Vec_IntAlloc( 32 ); @@ -260,9 +260,9 @@ void If_DsdManFree( If_DsdMan_t * p, int fVerbose ) } Vec_IntFreeP( &p->vTemp1 ); Vec_IntFreeP( &p->vTemp2 ); - Vec_IntFreeP( &p->vNexts ); - Vec_IntFreeP( &p->vTruths ); - Vec_PtrFreeP( &p->vObjs ); + ABC_FREE( p->vObjs.pArray ); + ABC_FREE( p->vNexts.pArray ); + ABC_FREE( p->vTruths.pArray ); Mem_FlexStop( p->pMem, 0 ); Gia_ManStopP( &p->pTtGia ); Vec_IntFreeP( &p->vCover ); @@ -286,7 +286,7 @@ void If_DsdManDumpDsd( If_DsdMan_t * p, int Support ) for ( v = 3; v <= p->nVars; v++ ) { vMap = Vec_IntStart( Vec_MemEntryNum(p->vTtMem[v]) ); - If_DsdVecForEachObj( p->vObjs, pObj, i ) + If_DsdVecForEachObj( &p->vObjs, pObj, i ) { if ( Support && Support != If_DsdObjSuppSize(pObj) ) continue; @@ -317,7 +317,7 @@ void If_DsdManDumpAll( If_DsdMan_t * p, int Support ) printf( "Cannot open file \"%s\".\n", pFileName ); return; } - If_DsdVecForEachObj( p->vObjs, pObj, i ) + If_DsdVecForEachObj( &p->vObjs, pObj, i ) { if ( Support && Support != If_DsdObjSuppSize(pObj) ) continue; @@ -350,8 +350,8 @@ void If_DsdManHashProfile( If_DsdMan_t * p ) for ( i = 0; i < p->nBins; i++ ) { Counter = 0; - for ( pSpot = p->pBins + i; *pSpot; pSpot = (unsigned *)Vec_IntEntryP(p->vNexts, pObj->Id), Counter++ ) - pObj = If_DsdVecObj( p->vObjs, *pSpot ); + for ( pSpot = p->pBins + i; *pSpot; pSpot = (unsigned *)Vec_IntEntryP(&p->vNexts, pObj->Id), Counter++ ) + pObj = If_DsdVecObj( &p->vObjs, *pSpot ); // if ( Counter > 5 ) // printf( "%d ", Counter ); // if ( i > 10000 ) @@ -363,14 +363,14 @@ int If_DsdManCheckNonDec_rec( If_DsdMan_t * p, int Id ) { If_DsdObj_t * pObj; int i, iFanin; - pObj = If_DsdVecObj( p->vObjs, Id ); + pObj = If_DsdVecObj( &p->vObjs, Id ); if ( If_DsdObjType(pObj) == IF_DSD_CONST0 ) return 0; if ( If_DsdObjType(pObj) == IF_DSD_VAR ) return 0; if ( If_DsdObjType(pObj) == IF_DSD_PRIME ) return 1; - If_DsdObjForEachFaninLit( p->vObjs, pObj, iFanin, i ) + If_DsdObjForEachFaninLit( &p->vObjs, pObj, iFanin, i ) if ( If_DsdManCheckNonDec_rec( p, Abc_Lit2Var(iFanin) ) ) return 1; return 0; @@ -382,7 +382,7 @@ void If_DsdManPrint_rec( FILE * pFile, If_DsdMan_t * p, int iDsdLit, unsigned ch If_DsdObj_t * pObj; int i, iFanin; fprintf( pFile, "%s", Abc_LitIsCompl(iDsdLit) ? "!" : "" ); - pObj = If_DsdVecObj( p->vObjs, Abc_Lit2Var(iDsdLit) ); + pObj = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(iDsdLit) ); if ( If_DsdObjType(pObj) == IF_DSD_CONST0 ) { fprintf( pFile, "0" ); return; } if ( If_DsdObjType(pObj) == IF_DSD_VAR ) @@ -394,7 +394,7 @@ void If_DsdManPrint_rec( FILE * pFile, If_DsdMan_t * p, int iDsdLit, unsigned ch if ( If_DsdObjType(pObj) == IF_DSD_PRIME ) Abc_TtPrintHexRev( pFile, If_DsdObjTruth(p, pObj), If_DsdObjFaninNum(pObj) ); fprintf( pFile, "%c", OpenType[If_DsdObjType(pObj)] ); - If_DsdObjForEachFaninLit( p->vObjs, pObj, iFanin, i ) + If_DsdObjForEachFaninLit( &p->vObjs, pObj, iFanin, i ) If_DsdManPrint_rec( pFile, p, iFanin, pPermLits, pnSupp ); fprintf( pFile, "%c", CloseType[If_DsdObjType(pObj)] ); } @@ -402,13 +402,13 @@ void If_DsdManPrintOne( FILE * pFile, If_DsdMan_t * p, int iObjId, unsigned char { int nSupp = 0; fprintf( pFile, "%6d : ", iObjId ); - fprintf( pFile, "%2d ", If_DsdVecObjSuppSize(p->vObjs, iObjId) ); - fprintf( pFile, "%8d ", If_DsdVecObjRef(p->vObjs, iObjId) ); - fprintf( pFile, "%d ", If_DsdVecObjMark(p->vObjs, iObjId) ); + fprintf( pFile, "%2d ", If_DsdVecObjSuppSize(&p->vObjs, iObjId) ); + fprintf( pFile, "%8d ", If_DsdVecObjRef(&p->vObjs, iObjId) ); + fprintf( pFile, "%d ", If_DsdVecObjMark(&p->vObjs, iObjId) ); If_DsdManPrint_rec( pFile, p, Abc_Var2Lit(iObjId, 0), pPermLits, &nSupp ); if ( fNewLine ) fprintf( pFile, "\n" ); - assert( nSupp == If_DsdVecObjSuppSize(p->vObjs, iObjId) ); + assert( nSupp == If_DsdVecObjSuppSize(&p->vObjs, iObjId) ); } #define DSD_ARRAY_LIMIT 16 void If_DsdManPrintDecs( FILE * pFile, If_DsdMan_t * p ) @@ -487,7 +487,7 @@ void If_DsdManPrintOccurs( FILE * pFile, If_DsdMan_t * p ) int i, k, nSizeMax, Counter = 0; // determine the largest fanin and fanout nOccursMax = nOccursAll = 0; - If_DsdVecForEachNode( p->vObjs, pObj, i ) + If_DsdVecForEachNode( &p->vObjs, pObj, i ) { nOccurs = pObj->Count; nOccursAll += nOccurs; @@ -497,7 +497,7 @@ void If_DsdManPrintOccurs( FILE * pFile, If_DsdMan_t * p ) nSizeMax = 10 * (Abc_Base10Log(nOccursMax) + 1); vOccurs = Vec_IntStart( nSizeMax ); // count the number of fanins and fanouts - If_DsdVecForEachNode( p->vObjs, pObj, i ) + If_DsdVecForEachNode( &p->vObjs, pObj, i ) { nOccurs = pObj->Count; if ( nOccurs < 10 ) @@ -529,11 +529,11 @@ void If_DsdManPrintOccurs( FILE * pFile, If_DsdMan_t * p ) } fprintf( pFile, "%12d ", Vec_IntEntry(vOccurs, k) ); Counter += Vec_IntEntry(vOccurs, k); - fprintf( pFile, "(%6.2f %%)", 100.0*Counter/Vec_PtrSize(p->vObjs) ); + fprintf( pFile, "(%6.2f %%)", 100.0*Counter/Vec_PtrSize(&p->vObjs) ); fprintf( pFile, "\n" ); } Vec_IntFree( vOccurs ); - fprintf( pFile, "Fanins: Max = %d. Ave = %.2f.\n", nOccursMax, 1.0*nOccursAll/Vec_PtrSize(p->vObjs) ); + fprintf( pFile, "Fanins: Max = %d. Ave = %.2f.\n", nOccursMax, 1.0*nOccursAll/Vec_PtrSize(&p->vObjs) ); } void If_DsdManPrintDistrib( If_DsdMan_t * p ) @@ -550,7 +550,7 @@ void If_DsdManPrintDistrib( If_DsdMan_t * p ) CountObjNpn[i] = Vec_MemEntryNum(p->vTtMem[i]); CountObjNpn[p->nVars+1] += Vec_MemEntryNum(p->vTtMem[i]); } - If_DsdVecForEachObj( p->vObjs, pObj, i ) + If_DsdVecForEachObj( &p->vObjs, pObj, i ) { CountObj[If_DsdObjFaninNum(pObj)]++, CountObj[p->nVars+1]++; if ( If_DsdObjType(pObj) == IF_DSD_PRIME ) @@ -558,7 +558,7 @@ void If_DsdManPrintDistrib( If_DsdMan_t * p ) CountStr[If_DsdObjSuppSize(pObj)]++, CountStr[p->nVars+1]++; if ( If_DsdManCheckNonDec_rec(p, i) ) CountStrNon[If_DsdObjSuppSize(pObj)]++, CountStrNon[p->nVars+1]++; - if ( If_DsdVecObjMark(p->vObjs, i) ) + if ( If_DsdVecObjMark(&p->vObjs, i) ) CountMarked[If_DsdObjSuppSize(pObj)]++, CountMarked[p->nVars+1]++; } printf( "***** DSD MANAGER STATISTICS *****\n" ); @@ -603,14 +603,14 @@ void If_DsdManPrint( If_DsdMan_t * p, char * pFileName, int Number, int Support, printf( "cannot open output file\n" ); return; } - If_DsdVecForEachObj( p->vObjs, pObj, i ) + If_DsdVecForEachObj( &p->vObjs, pObj, i ) { if ( If_DsdObjType(pObj) == IF_DSD_PRIME ) DsdMax = Abc_MaxInt( DsdMax, pObj->nFans ); CountPrime += If_DsdObjType(pObj) == IF_DSD_PRIME; CountNonDsdStr += If_DsdManCheckNonDec_rec( p, pObj->Id ); - CountUsed += ( If_DsdVecObjRef(p->vObjs, pObj->Id) > 0 ); - CountMarked += If_DsdVecObjMark( p->vObjs, i ); + CountUsed += ( If_DsdVecObjRef(&p->vObjs, pObj->Id) > 0 ); + CountMarked += If_DsdVecObjMark( &p->vObjs, i ); } for ( v = 3; v <= p->nVars; v++ ) { @@ -624,10 +624,10 @@ void If_DsdManPrint( If_DsdMan_t * p, char * pFileName, int Number, int Support, fprintf( pFile, "Unique table misses = %8d\n", p->nUniqueMisses ); fprintf( pFile, "Unique table hits = %8d\n", p->nUniqueHits ); fprintf( pFile, "Memory used for objects = %8.2f MB.\n", 1.0*Mem_FlexReadMemUsage(p->pMem)/(1<<20) ); - fprintf( pFile, "Memory used for functions = %8.2f MB.\n", 8.0*(MemSizeTTs+sizeof(int)*Vec_IntCap(p->vTruths))/(1<<20) ); - fprintf( pFile, "Memory used for hash table = %8.2f MB.\n", 1.0*sizeof(int)*(p->nBins+Vec_IntCap(p->vNexts))/(1<<20) ); + fprintf( pFile, "Memory used for functions = %8.2f MB.\n", 8.0*(MemSizeTTs+sizeof(int)*Vec_IntCap(&p->vTruths))/(1<<20) ); + fprintf( pFile, "Memory used for hash table = %8.2f MB.\n", 1.0*sizeof(int)*(p->nBins+Vec_IntCap(&p->vNexts))/(1<<20) ); fprintf( pFile, "Memory used for bound sets = %8.2f MB.\n", 1.0*MemSizeDecs/(1<<20) ); - fprintf( pFile, "Memory used for array = %8.2f MB.\n", 1.0*sizeof(void *)*Vec_PtrCap(p->vObjs)/(1<<20) ); + fprintf( pFile, "Memory used for array = %8.2f MB.\n", 1.0*sizeof(void *)*Vec_PtrCap(&p->vObjs)/(1<<20) ); if ( p->pTtGia ) fprintf( pFile, "Memory used for AIG = %8.2f MB.\n", 8.0*Gia_ManAndNum(p->pTtGia)/(1<<20) ); if ( p->timeDsd ) @@ -650,7 +650,7 @@ void If_DsdManPrint( If_DsdMan_t * p, char * pFileName, int Number, int Support, return; vStructs = Vec_IntAlloc( 1000 ); vCounts = Vec_IntAlloc( 1000 ); - If_DsdVecForEachObj( p->vObjs, pObj, i ) + If_DsdVecForEachObj( &p->vObjs, pObj, i ) { if ( Number && i % Number ) continue; @@ -665,7 +665,7 @@ void If_DsdManPrint( If_DsdMan_t * p, char * pFileName, int Number, int Support, for ( i = 0; i < Abc_MinInt(Vec_IntSize(vCounts), 20); i++ ) { printf( "%2d : ", i+1 ); - pObj = If_DsdVecObj( p->vObjs, Vec_IntEntry(vStructs, pPerm[i]) ); + pObj = If_DsdVecObj( &p->vObjs, Vec_IntEntry(vStructs, pPerm[i]) ); If_DsdManPrintOne( pFile, p, pObj->Id, NULL, 1 ); } ABC_FREE( pPerm ); @@ -766,9 +766,9 @@ unsigned * If_DsdObjHashLookup( If_DsdMan_t * p, int Type, int * pLits, int nLit { If_DsdObj_t * pObj; unsigned * pSpot = p->pBins + If_DsdObjHashKey(p, Type, pLits, nLits, truthId); - for ( ; *pSpot; pSpot = (unsigned *)Vec_IntEntryP(p->vNexts, pObj->Id) ) + for ( ; *pSpot; pSpot = (unsigned *)Vec_IntEntryP(&p->vNexts, pObj->Id) ) { - pObj = If_DsdVecObj( p->vObjs, *pSpot ); + pObj = If_DsdVecObj( &p->vObjs, *pSpot ); if ( If_DsdObjType(pObj) == Type && If_DsdObjFaninNum(pObj) == nLits && !memcmp(pObj->pFans, pLits, sizeof(int)*If_DsdObjFaninNum(pObj)) && @@ -789,14 +789,14 @@ static void If_DsdObjHashResize( If_DsdMan_t * p ) p->nBins = Abc_PrimeCudd( 2 * p->nBins ); p->pBins = ABC_REALLOC( unsigned, p->pBins, p->nBins ); memset( p->pBins, 0, sizeof(unsigned) * p->nBins ); - Vec_IntFill( p->vNexts, Vec_PtrSize(p->vObjs), 0 ); - If_DsdVecForEachNode( p->vObjs, pObj, i ) + Vec_IntFill( &p->vNexts, Vec_PtrSize(&p->vObjs), 0 ); + If_DsdVecForEachNode( &p->vObjs, pObj, i ) { pSpot = If_DsdObjHashLookup( p, pObj->Type, (int *)pObj->pFans, pObj->nFans, If_DsdObjTruthId(p, pObj) ); assert( *pSpot == 0 ); *pSpot = pObj->Id; } - assert( p->nUniqueMisses - Prev == Vec_PtrSize(p->vObjs) - 2 ); + assert( p->nUniqueMisses - Prev == Vec_PtrSize(&p->vObjs) - 2 ); p->nUniqueMisses = Prev; } @@ -813,10 +813,10 @@ int If_DsdObjCreate( If_DsdMan_t * p, int Type, int * pLits, int nLits, int trut { for ( i = 0; i < nLits; i++ ) { - pFanin = If_DsdVecObj( p->vObjs, Abc_Lit2Var(pLits[i]) ); + pFanin = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(pLits[i]) ); assert( Type != DAU_DSD_AND || Abc_LitIsCompl(pLits[i]) || If_DsdObjType(pFanin) != DAU_DSD_AND ); assert( Type != DAU_DSD_XOR || If_DsdObjType(pFanin) != DAU_DSD_XOR ); - assert( iPrev == -1 || If_DsdObjCompare(p, p->vObjs, iPrev, pLits[i]) <= 0 ); + assert( iPrev == -1 || If_DsdObjCompare(p, &p->vObjs, iPrev, pLits[i]) <= 0 ); iPrev = pLits[i]; } } @@ -828,7 +828,7 @@ int If_DsdObjCreate( If_DsdMan_t * p, int Type, int * pLits, int nLits, int trut for ( i = 0; i < nLits; i++ ) { pObj->pFans[i] = pLits[i]; - pObj->nSupp += If_DsdVecLitSuppSize(p->vObjs, pLits[i]); + pObj->nSupp += If_DsdVecLitSuppSize(&p->vObjs, pLits[i]); } /* if ( Abc_Var2Lit(pObj->Id, 0) == 3274 || Abc_Var2Lit(pObj->Id, 0) == 1806 ) @@ -838,7 +838,7 @@ int If_DsdObjCreate( If_DsdMan_t * p, int Type, int * pLits, int nLits, int trut */ // check decomposability if ( p->LutSize && !If_DsdManCheckXY(p, Abc_Var2Lit(pObj->Id, 0), p->LutSize, 0, 0, 0) ) - If_DsdVecObjSetMark( p->vObjs, pObj->Id ); + If_DsdVecObjSetMark( &p->vObjs, pObj->Id ); return pObj->Id; } int If_DsdObjFindOrAdd( If_DsdMan_t * p, int Type, int * pLits, int nLits, word * pTruth ) @@ -858,15 +858,15 @@ clk = Abc_Clock(); } if ( p->pTtGia && truthId >= 0 && truthId == Vec_MemEntryNum(p->vTtMem[nLits])-1 ) { - int nObjOld = Gia_ManAndNum(p->pTtGia); +// int nObjOld = Gia_ManAndNum(p->pTtGia); int Lit = Kit_TruthToGia( p->pTtGia, (unsigned *)pTruth, nLits, p->vCover, NULL, 1 ); // printf( "%d ", Gia_ManAndNum(p->pTtGia)-nObjOld ); Gia_ManAppendCo( p->pTtGia, Lit ); } p->timeCheck += Abc_Clock() - clk; - *pSpot = Vec_PtrSize( p->vObjs ); + *pSpot = Vec_PtrSize( &p->vObjs ); objId = If_DsdObjCreate( p, Type, pLits, nLits, truthId ); - if ( Vec_PtrSize(p->vObjs) > p->nBins ) + if ( Vec_PtrSize(&p->vObjs) > p->nBins ) If_DsdObjHashResize( p ); return objId; } @@ -901,15 +901,15 @@ void If_DsdManSave( If_DsdMan_t * p, char * pFileName ) fwrite( &Num, 4, 1, pFile ); Num = p->LutSize; fwrite( &Num, 4, 1, pFile ); - Num = Vec_PtrSize(p->vObjs); + Num = Vec_PtrSize(&p->vObjs); fwrite( &Num, 4, 1, pFile ); - Vec_PtrForEachEntryStart( If_DsdObj_t *, p->vObjs, pObj, i, 2 ) + Vec_PtrForEachEntryStart( If_DsdObj_t *, &p->vObjs, pObj, i, 2 ) { Num = If_DsdObjWordNum( pObj->nFans ); fwrite( &Num, 4, 1, pFile ); fwrite( pObj, sizeof(word)*Num, 1, pFile ); if ( pObj->Type == IF_DSD_PRIME ) - fwrite( Vec_IntEntryP(p->vTruths, i), 4, 1, pFile ); + fwrite( Vec_IntEntryP(&p->vTruths, i), 4, 1, pFile ); } for ( v = 3; v <= p->nVars; v++ ) { @@ -959,28 +959,28 @@ If_DsdMan_t * If_DsdManLoad( char * pFileName ) p->pSat = If_ManSatBuildXY( p->LutSize ); RetValue = fread( &Num, 4, 1, pFile ); assert( Num >= 2 ); - Vec_PtrFillExtra( p->vObjs, Num, NULL ); - Vec_IntFill( p->vNexts, Num, 0 ); - Vec_IntFill( p->vTruths, Num, -1 ); + Vec_PtrFillExtra( &p->vObjs, Num, NULL ); + Vec_IntFill( &p->vNexts, Num, 0 ); + Vec_IntFill( &p->vTruths, Num, -1 ); p->nBins = Abc_PrimeCudd( 2*Num ); p->pBins = ABC_REALLOC( unsigned, p->pBins, p->nBins ); memset( p->pBins, 0, sizeof(unsigned) * p->nBins ); - for ( i = 2; i < Vec_PtrSize(p->vObjs); i++ ) + for ( i = 2; i < Vec_PtrSize(&p->vObjs); i++ ) { RetValue = fread( &Num, 4, 1, pFile ); pObj = (If_DsdObj_t *)Mem_FlexEntryFetch( p->pMem, sizeof(word) * Num ); RetValue = fread( pObj, sizeof(word)*Num, 1, pFile ); - Vec_PtrWriteEntry( p->vObjs, i, pObj ); + Vec_PtrWriteEntry( &p->vObjs, i, pObj ); if ( pObj->Type == IF_DSD_PRIME ) { RetValue = fread( &Num, 4, 1, pFile ); - Vec_IntWriteEntry( p->vTruths, i, Num ); + Vec_IntWriteEntry( &p->vTruths, i, Num ); } pSpot = If_DsdObjHashLookup( p, pObj->Type, (int *)pObj->pFans, pObj->nFans, If_DsdObjTruthId(p, pObj) ); assert( *pSpot == 0 ); *pSpot = pObj->Id; } - assert( p->nUniqueMisses == Vec_PtrSize(p->vObjs) - 2 ); + assert( p->nUniqueMisses == Vec_PtrSize(&p->vObjs) - 2 ); p->nUniqueMisses = 0; pTruth = ABC_ALLOC( word, p->nWords ); for ( v = 3; v <= p->nVars; v++ ) @@ -1024,24 +1024,24 @@ void If_DsdManMerge( If_DsdMan_t * p, If_DsdMan_t * pNew ) printf( "LUT size should be the same.\n" ); return; } - vMap = Vec_IntAlloc( Vec_PtrSize(pNew->vObjs) ); + vMap = Vec_IntAlloc( Vec_PtrSize(&pNew->vObjs) ); Vec_IntPush( vMap, 0 ); Vec_IntPush( vMap, 1 ); - If_DsdVecForEachNode( pNew->vObjs, pObj, i ) + If_DsdVecForEachNode( &pNew->vObjs, pObj, i ) { - If_DsdObjForEachFaninLit( pNew->vObjs, pObj, iFanin, k ) + If_DsdObjForEachFaninLit( &pNew->vObjs, pObj, iFanin, k ) pFanins[k] = Abc_Lit2LitV( Vec_IntArray(vMap), iFanin ); Id = If_DsdObjFindOrAdd( p, pObj->Type, pFanins, pObj->nFans, pObj->Type == IF_DSD_PRIME ? If_DsdObjTruth(pNew, pObj) : NULL ); Vec_IntPush( vMap, Id ); } - assert( Vec_IntSize(vMap) == Vec_PtrSize(pNew->vObjs) ); + assert( Vec_IntSize(vMap) == Vec_PtrSize(&pNew->vObjs) ); Vec_IntFree( vMap ); } void If_DsdManClean( If_DsdMan_t * p, int fVerbose ) { If_DsdObj_t * pObj; int i; - If_DsdVecForEachObj( p->vObjs, pObj, i ) + If_DsdVecForEachObj( &p->vObjs, pObj, i ) pObj->Count = 0; } @@ -1059,7 +1059,7 @@ void If_DsdManClean( If_DsdMan_t * p, int fVerbose ) void If_DsdManCollect_rec( If_DsdMan_t * p, int Id, Vec_Int_t * vNodes, Vec_Int_t * vFirsts, int * pnSupp ) { int i, iFanin, iFirst; - If_DsdObj_t * pObj = If_DsdVecObj( p->vObjs, Id ); + If_DsdObj_t * pObj = If_DsdVecObj( &p->vObjs, Id ); if ( If_DsdObjType(pObj) == IF_DSD_CONST0 ) return; if ( If_DsdObjType(pObj) == IF_DSD_VAR ) @@ -1068,7 +1068,7 @@ void If_DsdManCollect_rec( If_DsdMan_t * p, int Id, Vec_Int_t * vNodes, Vec_Int_ return; } iFirst = *pnSupp; - If_DsdObjForEachFaninLit( p->vObjs, pObj, iFanin, i ) + If_DsdObjForEachFaninLit( &p->vObjs, pObj, iFanin, i ) If_DsdManCollect_rec( p, Abc_Lit2Var(iFanin), vNodes, vFirsts, pnSupp ); Vec_IntPush( vNodes, Id ); Vec_IntPush( vFirsts, iFirst ); @@ -1095,7 +1095,7 @@ void If_DsdManCollect( If_DsdMan_t * p, int Id, Vec_Int_t * vNodes, Vec_Int_t * void If_DsdManComputeTruth_rec( If_DsdMan_t * p, int iDsd, word * pRes, unsigned char * pPermLits, int * pnSupp ) { int i, iFanin, fCompl = Abc_LitIsCompl(iDsd); - If_DsdObj_t * pObj = If_DsdVecObj( p->vObjs, Abc_Lit2Var(iDsd) ); + If_DsdObj_t * pObj = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(iDsd) ); if ( If_DsdObjType(pObj) == IF_DSD_VAR ) { int iPermLit = pPermLits ? (int)pPermLits[*pnSupp] : Abc_Var2Lit(*pnSupp, 0); @@ -1111,7 +1111,7 @@ void If_DsdManComputeTruth_rec( If_DsdMan_t * p, int iDsd, word * pRes, unsigned Abc_TtConst1( pRes, p->nWords ); else Abc_TtConst0( pRes, p->nWords ); - If_DsdObjForEachFaninLit( p->vObjs, pObj, iFanin, i ) + If_DsdObjForEachFaninLit( &p->vObjs, pObj, iFanin, i ) { If_DsdManComputeTruth_rec( p, iFanin, pTtTemp, pPermLits, pnSupp ); if ( If_DsdObjType(pObj) == IF_DSD_AND ) @@ -1125,7 +1125,7 @@ void If_DsdManComputeTruth_rec( If_DsdMan_t * p, int iDsd, word * pRes, unsigned if ( If_DsdObjType(pObj) == IF_DSD_MUX ) // mux { word pTtTemp[3][DAU_MAX_WORD]; - If_DsdObjForEachFaninLit( p->vObjs, pObj, iFanin, i ) + If_DsdObjForEachFaninLit( &p->vObjs, pObj, iFanin, i ) If_DsdManComputeTruth_rec( p, iFanin, pTtTemp[i], pPermLits, pnSupp ); assert( i == 3 ); Abc_TtMux( pRes, pTtTemp[0], pTtTemp[1], pTtTemp[2], p->nWords ); @@ -1135,7 +1135,7 @@ void If_DsdManComputeTruth_rec( If_DsdMan_t * p, int iDsd, word * pRes, unsigned if ( If_DsdObjType(pObj) == IF_DSD_PRIME ) // function { word pFanins[DAU_MAX_VAR][DAU_MAX_WORD]; - If_DsdObjForEachFaninLit( p->vObjs, pObj, iFanin, i ) + If_DsdObjForEachFaninLit( &p->vObjs, pObj, iFanin, i ) If_DsdManComputeTruth_rec( p, iFanin, pFanins[i], pPermLits, pnSupp ); Dau_DsdTruthCompose_rec( If_DsdObjTruth(p, pObj), pFanins, pRes, pObj->nFans, p->nWords ); if ( fCompl ) Abc_TtNot( pRes, p->nWords ); @@ -1148,7 +1148,7 @@ word * If_DsdManComputeTruth( If_DsdMan_t * p, int iDsd, unsigned char * pPermLi { int nSupp = 0; word * pRes = p->pTtElems[DAU_MAX_VAR]; - If_DsdObj_t * pObj = If_DsdVecObj( p->vObjs, Abc_Lit2Var(iDsd) ); + If_DsdObj_t * pObj = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(iDsd) ); if ( iDsd == 0 ) Abc_TtConst0( pRes, p->nWords ); else if ( iDsd == 1 ) @@ -1161,7 +1161,7 @@ word * If_DsdManComputeTruth( If_DsdMan_t * p, int iDsd, unsigned char * pPermLi } else If_DsdManComputeTruth_rec( p, iDsd, pRes, pPermLits, &nSupp ); - assert( nSupp == If_DsdVecLitSuppSize(p->vObjs, iDsd) ); + assert( nSupp == If_DsdVecLitSuppSize(&p->vObjs, iDsd) ); return pRes; } @@ -1180,14 +1180,14 @@ int If_DsdManCheckInv_rec( If_DsdMan_t * p, int iLit ) { If_DsdObj_t * pObj; int i, iFanin; - pObj = If_DsdVecObj( p->vObjs, Abc_Lit2Var(iLit) ); + pObj = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(iLit) ); if ( If_DsdObjType(pObj) == IF_DSD_VAR ) return 1; if ( If_DsdObjType(pObj) == IF_DSD_AND || If_DsdObjType(pObj) == IF_DSD_PRIME ) return 0; if ( If_DsdObjType(pObj) == IF_DSD_XOR ) { - If_DsdObjForEachFaninLit( p->vObjs, pObj, iFanin, i ) + If_DsdObjForEachFaninLit( &p->vObjs, pObj, iFanin, i ) if ( If_DsdManCheckInv_rec(p, iFanin) ) return 1; return 0; @@ -1201,27 +1201,27 @@ int If_DsdManPushInv_rec( If_DsdMan_t * p, int iLit, unsigned char * pPerm ) { If_DsdObj_t * pObj; int i, iFanin; - pObj = If_DsdVecObj( p->vObjs, Abc_Lit2Var(iLit) ); + pObj = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(iLit) ); if ( If_DsdObjType(pObj) == IF_DSD_VAR ) pPerm[0] = (unsigned char)Abc_LitNot((int)pPerm[0]); else if ( If_DsdObjType(pObj) == IF_DSD_XOR ) { - If_DsdObjForEachFaninLit( p->vObjs, pObj, iFanin, i ) + If_DsdObjForEachFaninLit( &p->vObjs, pObj, iFanin, i ) { if ( If_DsdManCheckInv_rec(p, iFanin) ) { If_DsdManPushInv_rec( p, iFanin, pPerm ); break; } - pPerm += If_DsdVecLitSuppSize(p->vObjs, iFanin); + pPerm += If_DsdVecLitSuppSize(&p->vObjs, iFanin); } } else if ( If_DsdObjType(pObj) == IF_DSD_MUX ) { assert( If_DsdManCheckInv_rec(p, pObj->pFans[1]) && If_DsdManCheckInv_rec(p, pObj->pFans[2]) ); - pPerm += If_DsdVecLitSuppSize(p->vObjs, pObj->pFans[0]); + pPerm += If_DsdVecLitSuppSize(&p->vObjs, pObj->pFans[0]); If_DsdManPushInv_rec(p, pObj->pFans[1], pPerm); - pPerm += If_DsdVecLitSuppSize(p->vObjs, pObj->pFans[1]); + pPerm += If_DsdVecLitSuppSize(&p->vObjs, pObj->pFans[1]); If_DsdManPushInv_rec(p, pObj->pFans[2], pPerm); } else assert( 0 ); @@ -1251,7 +1251,7 @@ int If_DsdManComputeFirstArray( If_DsdMan_t * p, int * pLits, int nLits, int * p for ( i = 0; i < nLits; i++ ) { pFirsts[i] = nSSize; - nSSize += If_DsdVecLitSuppSize(p->vObjs, pLits[i]); + nSSize += If_DsdVecLitSuppSize(&p->vObjs, pLits[i]); } return nSSize; } @@ -1274,15 +1274,15 @@ int If_DsdManOperation( If_DsdMan_t * p, int Type, int * pLits, int nLits, unsig pLits[k] = Abc_LitNot(pLits[k]); fCompl ^= 1; } - pObj = If_DsdVecObj( p->vObjs, Abc_Lit2Var(pLits[k]) ); + pObj = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(pLits[k]) ); if ( Type == If_DsdObjType(pObj) && (Type == IF_DSD_XOR || !Abc_LitIsCompl(pLits[k])) ) { - If_DsdObjForEachFaninLit( p->vObjs, pObj, iFanin, i ) + If_DsdObjForEachFaninLit( &p->vObjs, pObj, iFanin, i ) { assert( Type == IF_DSD_AND || !Abc_LitIsCompl(iFanin) ); pChildren[nChildren] = iFanin; - pBegEnd[nChildren++] = (nSSize << 16) | (nSSize + If_DsdVecLitSuppSize(p->vObjs, iFanin)); - nSSize += If_DsdVecLitSuppSize(p->vObjs, iFanin); + pBegEnd[nChildren++] = (nSSize << 16) | (nSSize + If_DsdVecLitSuppSize(&p->vObjs, iFanin)); + nSSize += If_DsdVecLitSuppSize(&p->vObjs, iFanin); } } else @@ -1293,7 +1293,7 @@ int If_DsdManOperation( If_DsdMan_t * p, int Type, int * pLits, int nLits, unsig } pPermStart += If_DsdObjSuppSize(pObj); } - If_DsdObjSort( p, p->vObjs, pChildren, nChildren, pBegEnd ); + If_DsdObjSort( p, &p->vObjs, pChildren, nChildren, pBegEnd ); // create permutation for ( j = i = 0; i < nChildren; i++ ) for ( k = (pBegEnd[i] >> 16); k < (pBegEnd[i] & 0xFF); k++ ) @@ -1308,16 +1308,16 @@ int If_DsdManOperation( If_DsdMan_t * p, int Type, int * pLits, int nLits, unsig assert( nLits == 3 ); for ( k = 0; k < nLits; k++ ) { - pFanin = If_DsdVecObj( p->vObjs, Abc_Lit2Var(pLits[k]) ); + pFanin = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(pLits[k]) ); pLits[k] = Abc_LitNotCond( pLits[k], If_DsdManPushInv(p, pLits[k], pPermStart) ); pPermStart += pFanin->nSupp; } - RetValue = If_DsdObjCompare( p, p->vObjs, pLits[1], pLits[2] ); + RetValue = If_DsdObjCompare( p, &p->vObjs, pLits[1], pLits[2] ); if ( RetValue == 1 || (RetValue == 0 && Abc_LitIsCompl(pLits[0])) ) { - int nSupp0 = If_DsdVecLitSuppSize( p->vObjs, pLits[0] ); - int nSupp1 = If_DsdVecLitSuppSize( p->vObjs, pLits[1] ); - int nSupp2 = If_DsdVecLitSuppSize( p->vObjs, pLits[2] ); + int nSupp0 = If_DsdVecLitSuppSize( &p->vObjs, pLits[0] ); + int nSupp1 = If_DsdVecLitSuppSize( &p->vObjs, pLits[1] ); + int nSupp2 = If_DsdVecLitSuppSize( &p->vObjs, pLits[2] ); pLits[0] = Abc_LitNot(pLits[0]); ABC_SWAP( int, pLits[1], pLits[2] ); for ( j = k = 0; k < nSupp0; k++ ) @@ -1338,7 +1338,7 @@ int If_DsdManOperation( If_DsdMan_t * p, int Type, int * pLits, int nLits, unsig pPermStart = pPerm; for ( k = 0; k < nLits; k++ ) { - pFanin = If_DsdVecObj( p->vObjs, Abc_Lit2Var(pLits[k]) ); + pFanin = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(pLits[k]) ); pChildren[nChildren++] = Abc_LitNotCond( pLits[k], If_DsdManPushInv(p, pLits[k], pPermStart) ); pPermStart += pFanin->nSupp; } @@ -1353,7 +1353,7 @@ int If_DsdManOperation( If_DsdMan_t * p, int Type, int * pLits, int nLits, unsig for ( j = i = 0; i < nLits; i++ ) { int iLitNew = Abc_LitNotCond( pLits[(int)pCanonPerm[i]], ((uCanonPhase>>i)&1) ); - pFanin = If_DsdVecObj( p->vObjs, Abc_Lit2Var(iLitNew) ); + pFanin = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(iLitNew) ); pPermStart = pPerm + pFirsts[(int)pCanonPerm[i]]; pChildren[nChildren++] = Abc_LitNotCond( iLitNew, If_DsdManPushInv(p, iLitNew, pPermStart) ); for ( k = 0; k < (int)pFanin->nSupp; k++ ) @@ -1490,13 +1490,13 @@ unsigned If_DsdSign_rec( If_DsdMan_t * p, If_DsdObj_t * pObj, int * pnSupp ) If_DsdObj_t * pFanin; if ( If_DsdObjType(pObj) == IF_DSD_VAR ) return (1 << (2*(*pnSupp)++)); - If_DsdObjForEachFanin( p->vObjs, pObj, pFanin, i ) + If_DsdObjForEachFanin( &p->vObjs, pObj, pFanin, i ) uSign |= If_DsdSign_rec( p, pFanin, pnSupp ); return uSign; } unsigned If_DsdSign( If_DsdMan_t * p, If_DsdObj_t * pObj, int iFan, int iFirst, int fShared ) { - If_DsdObj_t * pFanin = If_DsdObjFanin( p->vObjs, pObj, iFan ); + If_DsdObj_t * pFanin = If_DsdObjFanin( &p->vObjs, pObj, iFan ); unsigned uSign = If_DsdSign_rec( p, pFanin, &iFirst ); return fShared ? (uSign << 1) | uSign : uSign; } @@ -1504,7 +1504,7 @@ unsigned If_DsdSign( If_DsdMan_t * p, If_DsdObj_t * pObj, int iFan, int iFirst, void If_DsdManGetSuppSizes( If_DsdMan_t * p, If_DsdObj_t * pObj, int * pSSizes ) { If_DsdObj_t * pFanin; int i; - If_DsdObjForEachFanin( p->vObjs, pObj, pFanin, i ) + If_DsdObjForEachFanin( &p->vObjs, pObj, pFanin, i ) pSSizes[i] = If_DsdObjSuppSize(pFanin); } // checks if there is a way to package some fanins @@ -1668,7 +1668,7 @@ unsigned If_DsdManCheckXY_int( If_DsdMan_t * p, int iDsd, int LutSize, int fDeri If_DsdManPrintOne( stdout, p, Abc_Lit2Var(iDsd), NULL, 1 ); } */ - pObj = If_DsdVecObj( p->vObjs, Abc_Lit2Var(iDsd) ); + pObj = If_DsdVecObj( &p->vObjs, Abc_Lit2Var(iDsd) ); if ( fVerbose ) If_DsdManPrintOne( stdout, p, Abc_Lit2Var(iDsd), NULL, 0 ); if ( If_DsdObjSuppSize(pObj) <= LutSize ) @@ -1678,7 +1678,7 @@ unsigned If_DsdManCheckXY_int( If_DsdMan_t * p, int iDsd, int LutSize, int fDeri return ~0; } If_DsdManCollect( p, pObj->Id, p->vTemp1, p->vTemp2 ); - If_DsdVecForEachObjVec( p->vTemp1, p->vObjs, pTemp, i ) + If_DsdVecForEachObjVec( p->vTemp1, &p->vObjs, pTemp, i ) if ( If_DsdObjSuppSize(pTemp) <= LutSize && If_DsdObjSuppSize(pObj) - If_DsdObjSuppSize(pTemp) <= LutSize - 1 ) { if ( fVerbose ) @@ -1688,7 +1688,7 @@ unsigned If_DsdManCheckXY_int( If_DsdMan_t * p, int iDsd, int LutSize, int fDeri iFirst = Vec_IntEntry(p->vTemp2, i); return If_DsdSign_rec(p, pTemp, &iFirst); } - If_DsdVecForEachObjVec( p->vTemp1, p->vObjs, pTemp, i ) + If_DsdVecForEachObjVec( p->vTemp1, &p->vObjs, pTemp, i ) if ( (If_DsdObjType(pTemp) == IF_DSD_AND || If_DsdObjType(pTemp) == IF_DSD_XOR) && If_DsdObjFaninNum(pTemp) > 2 && If_DsdObjSuppSize(pTemp) > LutSize ) { if ( (Mask = If_DsdManCheckAndXor(p, Vec_IntEntry(p->vTemp2, i), pTemp, If_DsdObjSuppSize(pObj), LutSize, fDerive, fVerbose)) ) @@ -1702,7 +1702,7 @@ unsigned If_DsdManCheckXY_int( If_DsdMan_t * p, int iDsd, int LutSize, int fDeri return Mask; } } - If_DsdVecForEachObjVec( p->vTemp1, p->vObjs, pTemp, i ) + If_DsdVecForEachObjVec( p->vTemp1, &p->vObjs, pTemp, i ) if ( If_DsdObjType(pTemp) == IF_DSD_MUX && If_DsdObjSuppSize(pTemp) > LutSize ) { if ( (Mask = If_DsdManCheckMux(p, Vec_IntEntry(p->vTemp2, i), pTemp, If_DsdObjSuppSize(pObj), LutSize, fDerive, fVerbose)) ) @@ -1716,7 +1716,7 @@ unsigned If_DsdManCheckXY_int( If_DsdMan_t * p, int iDsd, int LutSize, int fDeri return Mask; } } - If_DsdVecForEachObjVec( p->vTemp1, p->vObjs, pTemp, i ) + If_DsdVecForEachObjVec( p->vTemp1, &p->vObjs, pTemp, i ) if ( If_DsdObjType(pTemp) == IF_DSD_PRIME && If_DsdObjSuppSize(pTemp) > LutSize ) { if ( (Mask = If_DsdManCheckPrime(p, Vec_IntEntry(p->vTemp2, i), pTemp, If_DsdObjSuppSize(pObj), LutSize, fDerive, fVerbose)) ) @@ -1741,7 +1741,7 @@ unsigned If_DsdManCheckXY( If_DsdMan_t * p, int iDsd, int LutSize, int fDerive, if ( uSet == 0 && fHighEffort ) { abctime clk = Abc_Clock(); - int nVars = If_DsdVecLitSuppSize( p->vObjs, iDsd ); + int nVars = If_DsdVecLitSuppSize( &p->vObjs, iDsd ); word * pRes = If_DsdManComputeTruth( p, iDsd, NULL ); uSet = If_ManSatCheckXYall( p->pSat, LutSize, pRes, nVars, p->vTemp1 ); if ( uSet ) @@ -1819,7 +1819,7 @@ p->timeVerify += Abc_Clock() - clk; If_DsdManPrintOne( stdout, p, Abc_Lit2Var(iDsd), pPerm, 1 ); printf( "\n" ); } - If_DsdVecObjIncRef( p->vObjs, Abc_Lit2Var(iDsd) ); + If_DsdVecObjIncRef( &p->vObjs, Abc_Lit2Var(iDsd) ); return iDsd; } @@ -1864,14 +1864,14 @@ void If_DsdManTune( If_DsdMan_t * p, int LutSize, int fFast, int fAdd, int fSpec int i, Value, nVars; word * pTruth; if ( !fAdd || !LutSize ) - If_DsdVecForEachObj( p->vObjs, pObj, i ) + If_DsdVecForEachObj( &p->vObjs, pObj, i ) pObj->fMark = 0; if ( LutSize == 0 ) return; vLits = Vec_IntAlloc( 1000 ); pSat = (sat_solver *)If_ManSatBuildXY( LutSize ); - pProgress = Extra_ProgressBarStart( stdout, Vec_PtrSize(p->vObjs) ); - If_DsdVecForEachObj( p->vObjs, pObj, i ) + pProgress = Extra_ProgressBarStart( stdout, Vec_PtrSize(&p->vObjs) ); + If_DsdVecForEachObj( &p->vObjs, pObj, i ) { Extra_ProgressBarUpdate( pProgress, i, NULL ); nVars = If_DsdObjSuppSize(pObj); @@ -1891,7 +1891,7 @@ void If_DsdManTune( If_DsdMan_t * p, int LutSize, int fFast, int fAdd, int fSpec } if ( Value ) continue; - If_DsdVecObjSetMark( p->vObjs, i ); + If_DsdVecObjSetMark( &p->vObjs, i ); } if ( pProgress ) Extra_ProgressBarStop( pProgress ); |