21 #ifndef ABC__misc__vec__vecInt_h 
   22 #define ABC__misc__vec__vecInt_h 
   54 #define Vec_IntForEachEntry( vVec, Entry, i )                                               \ 
   55     for ( i = 0; (i < Vec_IntSize(vVec)) && (((Entry) = Vec_IntEntry(vVec, i)), 1); i++ ) 
   56 #define Vec_IntForEachEntryStart( vVec, Entry, i, Start )                                   \ 
   57     for ( i = Start; (i < Vec_IntSize(vVec)) && (((Entry) = Vec_IntEntry(vVec, i)), 1); i++ ) 
   58 #define Vec_IntForEachEntryStop( vVec, Entry, i, Stop )                                     \ 
   59     for ( i = 0; (i < Stop) && (((Entry) = Vec_IntEntry(vVec, i)), 1); i++ ) 
   60 #define Vec_IntForEachEntryStartStop( vVec, Entry, i, Start, Stop )                         \ 
   61     for ( i = Start; (i < Stop) && (((Entry) = Vec_IntEntry(vVec, i)), 1); i++ ) 
   62 #define Vec_IntForEachEntryReverse( vVec, pEntry, i )                                       \ 
   63     for ( i = Vec_IntSize(vVec) - 1; (i >= 0) && (((pEntry) = Vec_IntEntry(vVec, i)), 1); i-- ) 
   64 #define Vec_IntForEachEntryTwo( vVec1, vVec2, Entry1, Entry2, i )                           \ 
   65     for ( i = 0; (i < Vec_IntSize(vVec1)) && (((Entry1) = Vec_IntEntry(vVec1, i)), 1) && (((Entry2) = Vec_IntEntry(vVec2, i)), 1); i++ ) 
   66 #define Vec_IntForEachEntryDouble( vVec, Entry1, Entry2, i )                                \ 
   67     for ( i = 0; (i+1 < Vec_IntSize(vVec)) && (((Entry1) = Vec_IntEntry(vVec, i)), 1) && (((Entry2) = Vec_IntEntry(vVec, i+1)), 1); i += 2 ) 
   68 #define Vec_IntForEachEntryTriple( vVec, Entry1, Entry2, Entry3, i )                                \ 
   69     for ( i = 0; (i+2 < Vec_IntSize(vVec)) && (((Entry1) = Vec_IntEntry(vVec, i)), 1) && (((Entry2) = Vec_IntEntry(vVec, i+1)), 1) && (((Entry3) = Vec_IntEntry(vVec, i+2)), 1); i += 3 ) 
   70 #define Vec_IntForEachEntryThisNext( vVec, This, Next, i )                                  \ 
   71     for ( i = 0, (This) = (Next) = (Vec_IntSize(vVec) ? Vec_IntEntry(vVec, 0) : -1); (i+1 < Vec_IntSize(vVec)) && (((Next) = Vec_IntEntry(vVec, i+1)), 1); i += 2, (This) = (Next) ) 
   92     if ( nCap > 0 && nCap < 16 )
 
   96     p->pArray = p->nCap? 
ABC_ALLOC( 
int, p->nCap ) : NULL;
 
  116     memset( p->pArray, 0, 
sizeof(
int) * nSize );
 
  124     memset( p->pArray, 0xff, 
sizeof(
int) * nSize );
 
  133     for ( i = 0; i < Range; i++ )
 
  134         p->pArray[i] = First + i;
 
  155     for ( i = 0; i < nSize; i++ )
 
  199     memcpy( p->pArray, pArray, 
sizeof(
int) * nSize );
 
  218     p->nSize  = pVec->nSize;
 
  219     p->nCap   = pVec->nSize;
 
  220     p->pArray = p->nCap? 
ABC_ALLOC( 
int, p->nCap ) : NULL;
 
  221     memcpy( p->pArray, pVec->pArray, 
sizeof(
int) * pVec->nSize );
 
  240     p->nSize  = pVec->nSize;
 
  241     p->nCap   = pVec->nCap;
 
  242     p->pArray = pVec->pArray;
 
  310     int * pArray = p->pArray;
 
  338     return p->pArray + p->nSize;
 
  386     return !p ? 0.0 : 1.0 * 
sizeof(int) * p->nCap + 
sizeof(
Vec_Int_t) ;
 
  402     assert( i >= 0 && i < p->nSize );
 
  419     assert( i >= 0 && i < p->nSize );
 
  420     return p->pArray + i;
 
  436     assert( i >= 0 && i < p->nSize );
 
  437     p->pArray[i] = Entry;
 
  453     assert( i >= 0 && i < p->nSize );
 
  454     return p->pArray[i] += Addition;
 
  493     return p->pArray[p->nSize-1];
 
  509     if ( p->nCap >= nCapMin )
 
  511     p->pArray = 
ABC_REALLOC( 
int, p->pArray, nCapMin ); 
 
  530     if ( p->nCap >= nCapMin )
 
  532     p->pArray = 
ABC_REALLOC( 
int, p->pArray, nCapMin ); 
 
  552     for ( i = 0; i < nSize; i++ )
 
  560     for ( i = 0; i < nSize; i++ )
 
  561         p->pArray[i] = (i & 1) ? FillOdd : FillEven;
 
  579     if ( nSize <= p->nSize )
 
  581     if ( nSize > 2 * p->nCap )
 
  583     else if ( nSize > p->nCap )
 
  585     for ( i = p->nSize; i < nSize; i++ )
 
  659     assert( p->nSize >= nSizeNew );
 
  692     if ( p->nSize == p->nCap )
 
  699     p->pArray[p->nSize++] = Entry;
 
  709     for ( i = 0; i < nEntries; i++ )
 
  727     if ( p->nSize == p->nCap )
 
  735     for ( i = p->nSize - 1; i >= 1; i-- )
 
  736         p->pArray[i] = p->pArray[i-1];
 
  737     p->pArray[0] = Entry;
 
  754     if ( p->nSize == p->nCap )
 
  762     for ( i = p->nSize-2; i >= 0; i-- )
 
  763         if ( p->pArray[i] > Entry )
 
  764             p->pArray[i+1] = p->pArray[i];
 
  767     p->pArray[i+1] = Entry;
 
  784     if ( p->nSize == p->nCap )
 
  792     for ( i = p->nSize-2; i >= 0; i-- )
 
  793         if ( p->pArray[i] < Entry )
 
  794             p->pArray[i+1] = p->pArray[i];
 
  797     p->pArray[i+1] = Entry;
 
  814     for ( i = 0; i < p->nSize; i++ )
 
  815         if ( p->pArray[i] == Entry )
 
  835     for ( i = 0; i < p->nSize; i++ )
 
  836         if ( p->pArray[i] == Entry )
 
  859     if ( p->nSize > p->nCap )
 
  864     return ((
unsigned *)p->pArray) + p->nSize - 
nWords;
 
  881     return p->pArray[--p->nSize];
 
  898     for ( i = 0; i < p->nSize; i++ )
 
  899         if ( p->pArray[i] == Entry )
 
  918     for ( i = 0; i < p->nSize; i++ )
 
  919         if ( p->pArray[i] == Entry )
 
  924     for ( i++; i < p->nSize; i++ )
 
  925         p->pArray[i-1] = p->pArray[i];
 
  932     for ( i = 1; i < p->nSize; i++ )
 
  933         if ( p->pArray[i] == Entry )
 
  938     for ( i++; i < p->nSize; i++ )
 
  939         p->pArray[i-1] = p->pArray[i];
 
  960     for ( k = i; k < p->nSize; k++ )
 
  961         p->pArray[k] = p->pArray[k+1];
 
  978     assert( iHere >= 0 && iHere < p->nSize );
 
  980     for ( i = p->nSize - 1; i > iHere; i-- )
 
  981         p->pArray[i] = p->pArray[i-1];
 
  982     p->pArray[i] = Entry;
 
 1001     Best = p->pArray[0];
 
 1002     for ( i = 1; i < p->nSize; i++ )
 
 1003         if ( Best < p->pArray[i] )
 
 1004             Best = p->pArray[i];
 
 1022     if ( p->nSize == 0 )
 
 1024     Best = p->pArray[0];
 
 1025     for ( i = 1; i < p->nSize; i++ )
 
 1026         if ( Best > p->pArray[i] )
 
 1027             Best = p->pArray[i];
 
 1045     for ( i = 0; i < p->nSize/2; i++ )
 
 1047         Temp = p->pArray[i];
 
 1048         p->pArray[i] = p->pArray[p->nSize-1-i];
 
 1049         p->pArray[p->nSize-1-i] = Temp;
 
 1067     assert( (p->nSize & 1) == 0 );
 
 1069     for ( i = 0; i < p->nSize; i++ )
 
 1070         p->pArray[i] = p->pArray[2*i];
 
 1075     assert( (p->nSize & 1) == 0 );
 
 1077     for ( i = 0; i < p->nSize; i++ )
 
 1078         p->pArray[i] = p->pArray[2*i+1];
 
 1100         if ( Entry != Fill )
 
 1121         if ( Entry != Fill )
 
 1140     for ( i = 0; i < p->nSize; i++ )
 
 1141         Counter += p->pArray[i];
 
 1159     for ( i = 0; i < p->nSize; i++ )
 
 1160         Counter += (p->pArray[i] == Entry);
 
 1178     for ( i = 0; i < p->nSize; i++ )
 
 1179         Counter += (p->pArray[i] > 0);
 
 1185     for ( i = 0; i < p->nSize; i++ )
 
 1186         Counter += (p->pArray[i] == 0);
 
 1204     if ( p1->nSize != p2->nSize )
 
 1206     for ( i = 0; i < p1->nSize; i++ )
 
 1207         if ( p1->pArray[i] != p2->pArray[i] )
 
 1229         vTemp = p1, p1 = p2, p2 = vTemp;
 
 1296         qsort( (
void *)p->pArray, p->nSize, 
sizeof(
int), 
 
 1299         qsort( (
void *)p->pArray, p->nSize, 
sizeof(
int), 
 
 1320     for ( i = k = 1; i < p->nSize; i++ )
 
 1321         if ( p->pArray[i] != p->pArray[i-1] )
 
 1322             p->pArray[k++] = p->pArray[i];
 
 1323     RetValue = p->nSize - k;
 
 1339     for ( i = 0; i < p->nSize; i++ )
 
 1340         for ( k = i+1; k < p->nSize; k++ )
 
 1341             if ( p->pArray[i] == p->pArray[k] )
 
 1348     unsigned char * pPres = 
ABC_CALLOC( 
unsigned char, Max+1 );
 
 1349     for ( i = 0; i < p->nSize; i++ )
 
 1350         if ( pPres[p->pArray[i]] == 0 )
 
 1351             pPres[p->pArray[i]] = 1, Count++;
 
 1369     static unsigned s_BigPrimes[4] = {12582917, 25165843, 50331653, 100663319};
 
 1370     unsigned Key = 0; 
int c;
 
 1371     for ( c = 0; c < nChars; c++ )
 
 1373         Key += (unsigned)pStr[c] * s_BigPrimes[c & 3];
 
 1374         printf( 
"%d : ", c );
 
 1375         printf( 
"%3d  ", pStr[c] );
 
 1376         printf( 
"%12u ", Key );
 
 1377         printf( 
"%12u ", Key&TableMask );
 
 1385     for ( i = 0; i <= TableMask; i++ )
 
 1388         for ( Key = pTable[i]; Key != -1; Key = pNexts[Key] )
 
 1392         printf( 
"%d\n", Counter );
 
 1393         for ( Key = pTable[i]; Key != -1; Key = pNexts[Key] )
 
 1404     static unsigned s_BigPrimes[4] = {12582917, 25165843, 50331653, 100663319};
 
 1405     unsigned Key = 0; 
int c;
 
 1406     for ( c = 0; c < nChars; c++ )
 
 1407         Key += (
unsigned)pStr[c] * s_BigPrimes[c & 3];
 
 1413     static unsigned s_BigPrimes[16] = 
 
 1415         0x984b6ad9,0x18a6eed3,0x950353e2,0x6222f6eb,0xdfbedd47,0xef0f9023,0xac932a26,0x590eaf55,
 
 1416         0x97d0a034,0xdc36cd2e,0x22736b37,0xdc9066b0,0x2eb2f98b,0x5d9c7baf,0x85747c9e,0x8aca1055
 
 1418     static unsigned s_BigPrimes2[16] = 
 
 1420         0x8d8a5ebe,0x1e6a15dc,0x197d49db,0x5bab9c89,0x4b55dea7,0x55dede49,0x9a6a8080,0xe5e51035,
 
 1421         0xe148d658,0x8a17eb3b,0xe22e4b38,0xe5be2a9a,0xbe938cbb,0x3b981069,0x7f9c0c8e,0xf756df10
 
 1423     unsigned Key = 0; 
int c;
 
 1424     for ( c = 0; c < nChars; c++ )
 
 1425         Key += s_BigPrimes2[(2*c)&15]   * s_BigPrimes[(unsigned)pStr[c] & 15] +
 
 1426                s_BigPrimes2[(2*c+1)&15] * s_BigPrimes[(unsigned)pStr[c] >> 4];
 
 1432     for ( ; *pStart != -1; pStart = pNexts + *pStart )
 
 1441     int * pTable  = 
ABC_FALLOC( 
int, TableMask+1 );
 
 1442     int * pNexts  = 
ABC_FALLOC( 
int, TableMask+1 );
 
 1443     int * pClass  = 
ABC_ALLOC( 
int, nEntries );
 
 1444     int i, Key, * pEnt, nUnique = 0;
 
 1446     for ( i = 0; i < nEntries; i++ )
 
 1452             *pEnt = i, nUnique++;
 
 1471         if ( Ent < i ) 
continue;
 
 1513     qsort( (
void *)p->pArray, p->nSize, 
sizeof(
int), 
 
 1530     int * pBeg1 = vArr1->pArray;
 
 1531     int * pBeg2 = vArr2->pArray;
 
 1532     int * pEnd1 = vArr1->pArray + vArr1->nSize;
 
 1533     int * pEnd2 = vArr2->pArray + vArr2->nSize;
 
 1535     while ( pBeg1 < pEnd1 && pBeg2 < pEnd2 )
 
 1537         if ( *pBeg1 == *pBeg2 )
 
 1538             pBeg1++, pBeg2++, Counter++;
 
 1539         else if ( *pBeg1 < *pBeg2 )
 
 1560     int * pBeg1 = vArr1->pArray;
 
 1561     int * pBeg2 = vArr2->pArray;
 
 1562     int * pEnd1 = vArr1->pArray + vArr1->nSize;
 
 1563     int * pEnd2 = vArr2->pArray + vArr2->nSize;
 
 1565     while ( pBeg1 < pEnd1 && pBeg2 < pEnd2 )
 
 1567         if ( *pBeg1 == *pBeg2 )
 
 1569         else if ( *pBeg1 < *pBeg2 )
 
 1590     int * pBeg1 = vArr1->pArray;
 
 1591     int * pBeg2 = vArr2->pArray;
 
 1592     int * pEnd1 = vArr1->pArray + vArr1->nSize;
 
 1593     int * pEnd2 = vArr2->pArray + vArr2->nSize;
 
 1594     int * pBeg1New = vArr1->pArray;
 
 1595     int * pBeg2New = vArr2->pArray;
 
 1597     while ( pBeg1 < pEnd1 && pBeg2 < pEnd2 )
 
 1599         if ( *pBeg1 == *pBeg2 )
 
 1601         else if ( *pBeg1 < *pBeg2 )
 
 1602             *pBeg1New++ = *pBeg1++;
 
 1604             *pBeg2New++ = *pBeg2++;
 
 1606     while ( pBeg1 < pEnd1 )
 
 1607         *pBeg1New++ = *pBeg1++;
 
 1608     while ( pBeg2 < pEnd2 )
 
 1609         *pBeg2New++ = *pBeg2++;
 
 1628     int * pBeg1 = vArr1->pArray;
 
 1629     int * pBeg2 = vArr2->pArray;
 
 1630     int * pEnd1 = vArr1->pArray + vArr1->nSize;
 
 1631     int * pEnd2 = vArr2->pArray + vArr2->nSize;
 
 1632     int * pBeg1New = vArr1->pArray;
 
 1633     while ( pBeg1 < pEnd1 && pBeg2 < pEnd2 )
 
 1635         if ( *pBeg1 == *pBeg2 )
 
 1637         else if ( *pBeg1 < *pBeg2 )
 
 1638             *pBeg1New++ = *pBeg1++;
 
 1642     while ( pBeg1 < pEnd1 )
 
 1643         *pBeg1New++ = *pBeg1++;
 
 1661     int * pBeg  = vArr->pArray;
 
 1662     int * pBeg1 = vArr1->pArray;
 
 1663     int * pBeg2 = vArr2->pArray;
 
 1664     int * pEnd1 = vArr1->pArray + vArr1->nSize;
 
 1665     int * pEnd2 = vArr2->pArray + vArr2->nSize;
 
 1666     while ( pBeg1 < pEnd1 && pBeg2 < pEnd2 )
 
 1668         if ( *pBeg1 == *pBeg2 )
 
 1669             *pBeg++ = *pBeg1++, pBeg2++;
 
 1670         else if ( *pBeg1 < *pBeg2 )
 
 1675     while ( pBeg1 < pEnd1 )
 
 1677     while ( pBeg2 < pEnd2 )
 
 1679     vArr->nSize = pBeg - vArr->pArray;
 
 1680     assert( vArr->nSize <= vArr->nCap );
 
 1681     assert( vArr->nSize >= vArr1->nSize );
 
 1682     assert( vArr->nSize >= vArr2->nSize );
 
 1709     int * pBeg1 = vArr1->pArray;
 
 1710     int * pBeg2 = vArr2->pArray;
 
 1711     int * pEnd1 = vArr1->pArray + vArr1->nSize;
 
 1712     int * pEnd2 = vArr2->pArray + vArr2->nSize;
 
 1713     while ( pBeg1 < pEnd1 && pBeg2 < pEnd2 )
 
 1715         if ( *pBeg1 == *pBeg2 )
 
 1717         else if ( *pBeg1 < *pBeg2 )
 
 1722     while ( pBeg1 < pEnd1 )
 
 1724     while ( pBeg2 < pEnd2 )
 
 1742     int temp, i, j, best_i;
 
 1743     for ( i = 0; i < nSize-1; i++ )
 
 1746         for ( j = i+1; j < nSize; j++ )
 
 1747             if ( pArray[j] < pArray[best_i] )
 
 1750         pArray[i] = pArray[best_i]; 
 
 1751         pArray[best_i] = temp;
 
 1769     for ( i = 0; i < nSize-1; i++ )
 
 1772         for ( j = i+1; j < nSize; j++ )
 
 1775         ABC_SWAP( 
int, pArray[i], pArray[best_i] );
 
 1781     for ( i = 0; i < nSize-1; i++ )
 
 1784         for ( j = i+1; j < nSize; j++ )
 
 1785             if ( pCosts[j] < pCosts[best_i] )
 
 1787         ABC_SWAP( 
int, pArray[i], pArray[best_i] );
 
 1788         ABC_SWAP( 
int, pCosts[i], pCosts[best_i] );
 
 1806     printf( 
"Vector has %d entries: {", 
Vec_IntSize(vVec) );
 
 1808         printf( 
" %d", Entry );
 
 1815         printf( 
"%d", (
int)(Entry != 0) );
 
 1831     if ( p1 == NULL || p2 == NULL )
 
 1832         return (p1 != NULL) - (p2 != NULL);
 
static unsigned Vec_IntUniqueHashKeyDebug(unsigned char *pStr, int nChars, int TableMask)
 
static int Vec_IntCountPositive(Vec_Int_t *p)
 
static int Vec_IntCountCommon(Vec_Int_t *p1, Vec_Int_t *p2)
 
static void Vec_IntGrowResize(Vec_Int_t *p, int nCapMin)
 
static int * Vec_IntArray(Vec_Int_t *p)
 
static void Vec_IntPushTwo(Vec_Int_t *p, int Entry1, int Entry2)
 
static void Vec_IntPushOrder(Vec_Int_t *p, int Entry)
 
static void Vec_IntSetEntryFull(Vec_Int_t *p, int i, int Entry)
 
static int Vec_IntEntry(Vec_Int_t *p, int i)
 
static void Vec_IntClear(Vec_Int_t *p)
 
static int Vec_IntCheckUniqueSmall(Vec_Int_t *p)
 
static int Vec_IntCountUnique(Vec_Int_t *p)
 
static void Vec_IntPush(Vec_Int_t *p, int Entry)
 
static int * Vec_IntUniqueLookup(Vec_Int_t *vData, int i, int nIntSize, int *pNexts, int *pStart)
 
static double Vec_IntMemory(Vec_Int_t *p)
 
static Vec_Int_t * Vec_IntDup(Vec_Int_t *pVec)
 
static void Vec_IntFillExtra(Vec_Int_t *p, int nSize, int Fill)
 
static void Vec_IntShrink(Vec_Int_t *p, int nSizeNew)
 
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///. 
 
static int Vec_IntCountEntry(Vec_Int_t *p, int Entry)
 
static Vec_Int_t * Vec_IntStartRange(int First, int Range)
 
static int Vec_IntAddToEntry(Vec_Int_t *p, int i, int Addition)
 
#define ABC_REALLOC(type, obj, num)
 
static int Vec_IntSortCompare1(int *pp1, int *pp2)
 
static int Vec_IntCountZero(Vec_Int_t *p)
 
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
 
static int Vec_IntGetEntry(Vec_Int_t *p, int i)
 
static Vec_Int_t * Vec_IntInvert(Vec_Int_t *p, int Fill)
 
static int Vec_IntFind(Vec_Int_t *p, int Entry)
 
static void Vec_IntRemoveOdd(Vec_Int_t *p)
 
static unsigned Vec_IntUniqueHashKey(unsigned char *pStr, int nChars)
 
static void Vec_IntRemoveEven(Vec_Int_t *p)
 
#define ABC_ALLOC(type, num)
 
static void Vec_IntErase(Vec_Int_t *p)
 
static Vec_Int_t * Vec_IntDupArray(Vec_Int_t *pVec)
 
static int Vec_IntEntryLast(Vec_Int_t *p)
 
static unsigned * Vec_IntFetch(Vec_Int_t *p, int nWords)
 
static void Vec_IntInsert(Vec_Int_t *p, int iHere, int Entry)
 
static void Vec_IntSort(Vec_Int_t *p, int fReverse)
 
static int Vec_IntTwoCountCommon(Vec_Int_t *vArr1, Vec_Int_t *vArr2)
 
static Vec_Int_t * Vec_IntStartFull(int nSize)
 
static int * Vec_IntLimit(Vec_Int_t *p)
 
static void Vec_IntReverseOrder(Vec_Int_t *p)
 
#define ABC_SWAP(Type, a, b)
 
static unsigned Vec_IntUniqueHashKey2(unsigned char *pStr, int nChars)
 
static void Vec_IntPrintBinary(Vec_Int_t *vVec)
 
static int Vec_IntSize(Vec_Int_t *p)
 
static void Vec_IntSetEntry(Vec_Int_t *p, int i, int Entry)
 
static void Vec_IntSelectSort(int *pArray, int nSize)
 
static void Vec_IntPushFirst(Vec_Int_t *p, int Entry)
 
static void Vec_IntZero(Vec_Int_t *p)
 
static int * Vec_IntReleaseArray(Vec_Int_t *p)
 
static void Vec_IntDowndateEntry(Vec_Int_t *p, int i, int Value)
 
static void Vec_IntTwoSplit(Vec_Int_t *vArr1, Vec_Int_t *vArr2, Vec_Int_t *vArr, Vec_Int_t *vArr1n, Vec_Int_t *vArr2n)
 
static int Vec_IntFindMin(Vec_Int_t *p)
 
static void Vec_IntTwoMerge2(Vec_Int_t *vArr1, Vec_Int_t *vArr2, Vec_Int_t *vArr)
 
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
 
static int Vec_IntTwoRemove(Vec_Int_t *vArr1, Vec_Int_t *vArr2)
 
static int Vec_IntFindMax(Vec_Int_t *p)
 
static void Vec_IntSelectSortCost(int *pArray, int nSize, Vec_Int_t *vCosts)
 
static int Vec_IntSortCompare2(int *pp1, int *pp2)
 
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///. 
 
static void Vec_IntUpdateEntry(Vec_Int_t *p, int i, int Value)
 
static int Vec_IntUniqify(Vec_Int_t *p)
 
static void Vec_IntSelectSortCost2(int *pArray, int nSize, int *pCosts)
 
static int Vec_IntSortCompareUnsigned(unsigned *pp1, unsigned *pp2)
 
static Vec_Int_t * Vec_IntAllocArray(int *pArray, int nSize)
 
static int Vec_IntTwoRemoveCommon(Vec_Int_t *vArr1, Vec_Int_t *vArr2, Vec_Int_t *vArr)
 
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///. 
 
static Vec_Int_t * Vec_IntTwoMerge(Vec_Int_t *vArr1, Vec_Int_t *vArr2)
 
static Vec_Int_t * Vec_IntAllocArrayCopy(int *pArray, int nSize)
 
static int * Vec_IntGetEntryP(Vec_Int_t *p, int i)
 
static void Vec_IntFreeP(Vec_Int_t **p)
 
static int Vec_IntCap(Vec_Int_t *p)
 
#define ABC_NAMESPACE_HEADER_END
 
static int Vec_IntRemove(Vec_Int_t *p, int Entry)
 
static void Vec_IntUniqueProfile(Vec_Int_t *vData, int *pTable, int *pNexts, int TableMask, int nIntSize)
 
static int Vec_IntCompareVec(Vec_Int_t *p1, Vec_Int_t *p2)
 
static void Vec_IntDrop(Vec_Int_t *p, int i)
 
static Vec_Int_t * Vec_IntUniqifyHash(Vec_Int_t *vData, int nIntSize)
 
static void Vec_IntGrow(Vec_Int_t *p, int nCapMin)
 
static void Vec_IntAppend(Vec_Int_t *vVec1, Vec_Int_t *vVec2)
 
static void Vec_IntPushOrderReverse(Vec_Int_t *p, int Entry)
 
static int Vec_IntSum(Vec_Int_t *p)
 
static int Vec_IntEqual(Vec_Int_t *p1, Vec_Int_t *p2)
 
static int Vec_IntPop(Vec_Int_t *p)
 
static int Abc_Base2Log(unsigned n)
 
static Vec_Int_t * Vec_IntStart(int nSize)
 
#define ABC_CALLOC(type, num)
 
static int Vec_IntTwoFindCommon(Vec_Int_t *vArr1, Vec_Int_t *vArr2, Vec_Int_t *vArr)
 
static void Vec_IntSortUnsigned(Vec_Int_t *p)
 
static int Vec_IntPushUniqueOrder(Vec_Int_t *p, int Entry)
 
static int Vec_IntCountDuplicates(Vec_Int_t *p)
 
static void Vec_IntPushArray(Vec_Int_t *p, int *pEntries, int nEntries)
 
static int * Vec_IntEntryP(Vec_Int_t *p, int i)
 
static int Vec_IntUniqueCount(Vec_Int_t *vData, int nIntSize, Vec_Int_t **pvMap)
 
static void Vec_IntPrint(Vec_Int_t *vVec)
 
static Vec_Int_t * Vec_IntStartNatural(int nSize)
 
static void Vec_IntTwoMerge2Int(Vec_Int_t *vArr1, Vec_Int_t *vArr2, Vec_Int_t *vArr)
 
static int ** Vec_IntArrayP(Vec_Int_t *p)
 
static int Vec_IntPushUnique(Vec_Int_t *p, int Entry)
 
static void Vec_IntFree(Vec_Int_t *p)
 
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///. 
 
static int Vec_IntRemove1(Vec_Int_t *p, int Entry)
 
static Vec_Int_t * Vec_IntCondense(Vec_Int_t *p, int Fill)
 
#define ABC_FALLOC(type, num)
 
static void Vec_IntFillTwo(Vec_Int_t *p, int nSize, int FillEven, int FillOdd)