summaryrefslogtreecommitdiffstats
path: root/src/misc/vec/vecInt.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-02-14 22:15:49 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2012-02-14 22:15:49 -0800
commita9980135a0e599dda1b1c5a31992261ca1702ca9 (patch)
treeaa11ea749c1cd733c3811c80d2e85396ba79c93c /src/misc/vec/vecInt.h
parentfaa934e2e659372d87e9242fa20cb40cacd20ee3 (diff)
downloadabc-a9980135a0e599dda1b1c5a31992261ca1702ca9.tar.gz
abc-a9980135a0e599dda1b1c5a31992261ca1702ca9.tar.bz2
abc-a9980135a0e599dda1b1c5a31992261ca1702ca9.zip
Isomorphism checking code.
Diffstat (limited to 'src/misc/vec/vecInt.h')
-rw-r--r--src/misc/vec/vecInt.h83
1 files changed, 82 insertions, 1 deletions
diff --git a/src/misc/vec/vecInt.h b/src/misc/vec/vecInt.h
index 39ab2623..72aa1ab6 100644
--- a/src/misc/vec/vecInt.h
+++ b/src/misc/vec/vecInt.h
@@ -359,6 +359,22 @@ static inline int Vec_IntSize( Vec_Int_t * p )
SeeAlso []
***********************************************************************/
+static inline int Vec_IntCap( Vec_Int_t * p )
+{
+ return p->nCap;
+}
+
+/**Function*************************************************************
+
+ Synopsis []
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
static inline int Vec_IntEntry( Vec_Int_t * p, int i )
{
assert( i >= 0 && i < p->nSize );
@@ -455,6 +471,27 @@ static inline void Vec_IntGrow( Vec_Int_t * p, int nCapMin )
/**Function*************************************************************
+ Synopsis [Resizes the vector to the given capacity.]
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+static inline void Vec_IntGrowResize( Vec_Int_t * p, int nCapMin )
+{
+ p->nSize = nCapMin;
+ if ( p->nCap >= nCapMin )
+ return;
+ p->pArray = ABC_REALLOC( int, p->pArray, nCapMin );
+ assert( p->pArray );
+ p->nCap = nCapMin;
+}
+
+/**Function*************************************************************
+
Synopsis [Fills the vector with given number of entries.]
Description []
@@ -1215,7 +1252,7 @@ static inline Vec_Int_t * Vec_IntTwoMerge( Vec_Int_t * vArr1, Vec_Int_t * vArr2
/**Function*************************************************************
- Synopsis [Performs fast mapping for one node.]
+ Synopsis []
Description []
@@ -1250,6 +1287,32 @@ static inline void Vec_IntSelectSort( int * pArray, int nSize )
SeeAlso []
***********************************************************************/
+static inline void Vec_IntSelectSortCost( int * pArray, int nSize, Vec_Int_t * vCosts )
+{
+ int temp, i, j, best_i;
+ for ( i = 0; i < nSize-1; i++ )
+ {
+ best_i = i;
+ for ( j = i+1; j < nSize; j++ )
+ if ( Vec_IntEntry(vCosts, pArray[j]) < Vec_IntEntry(vCosts, pArray[best_i]) )
+ best_i = j;
+ temp = pArray[i];
+ pArray[i] = pArray[best_i];
+ pArray[best_i] = temp;
+ }
+}
+
+/**Function*************************************************************
+
+ Synopsis []
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
static inline void Vec_IntPrint( Vec_Int_t * vVec )
{
int i, Entry;
@@ -1279,6 +1342,24 @@ static inline int Vec_IntCompareVec( Vec_Int_t * p1, Vec_Int_t * p2 )
return memcmp( Vec_IntArray(p1), Vec_IntArray(p2), sizeof(int)*Vec_IntSize(p1) );
}
+/**Function*************************************************************
+
+ Synopsis [Appends the contents of the second vector.]
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+static void Vec_IntAppend( Vec_Int_t * vVec1, Vec_Int_t * vVec2 )
+{
+ int Entry, i;
+ Vec_IntForEachEntry( vVec2, Entry, i )
+ Vec_IntPush( vVec1, Entry );
+}
+
ABC_NAMESPACE_HEADER_END