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)