summaryrefslogtreecommitdiffstats
path: root/src/misc/vec/vecWec.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-10-06 15:57:17 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-10-06 15:57:17 -0700
commit8a03e530c299fba1e862a5943207c39fbd52ee06 (patch)
tree775a402f266cd507849d188b0f6db0b76250be86 /src/misc/vec/vecWec.h
parent812a877ab694956be34b979fbd219a244580cced (diff)
downloadabc-8a03e530c299fba1e862a5943207c39fbd52ee06.tar.gz
abc-8a03e530c299fba1e862a5943207c39fbd52ee06.tar.bz2
abc-8a03e530c299fba1e862a5943207c39fbd52ee06.zip
Resubstitution code.
Diffstat (limited to 'src/misc/vec/vecWec.h')
-rw-r--r--src/misc/vec/vecWec.h50
1 files changed, 32 insertions, 18 deletions
diff --git a/src/misc/vec/vecWec.h b/src/misc/vec/vecWec.h
index cd4910b3..f2fe3216 100644
--- a/src/misc/vec/vecWec.h
+++ b/src/misc/vec/vecWec.h
@@ -399,7 +399,7 @@ static inline Vec_Wec_t * Vec_WecDup( Vec_Wec_t * p )
/**Function*************************************************************
- Synopsis [Comparison procedure for two arrays.]
+ Synopsis [Sorting by array size.]
Description []
@@ -424,18 +424,6 @@ static int Vec_WecSortCompare2( Vec_Int_t * p1, Vec_Int_t * p2 )
return 1;
return 0;
}
-
-/**Function*************************************************************
-
- Synopsis [Sorting the entries by their integer value.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
static inline void Vec_WecSort( Vec_Wec_t * p, int fReverse )
{
if ( fReverse )
@@ -446,9 +434,10 @@ static inline void Vec_WecSort( Vec_Wec_t * p, int fReverse )
(int (*)(const void *, const void *)) Vec_WecSortCompare1 );
}
+
/**Function*************************************************************
- Synopsis [Comparison procedure for two integers.]
+ Synopsis [Sorting by the first entry.]
Description []
@@ -473,10 +462,19 @@ static int Vec_WecSortCompare4( Vec_Int_t * p1, Vec_Int_t * p2 )
return 1;
return 0;
}
+static inline void Vec_WecSortByFirstInt( Vec_Wec_t * p, int fReverse )
+{
+ if ( fReverse )
+ qsort( (void *)p->pArray, p->nSize, sizeof(Vec_Int_t),
+ (int (*)(const void *, const void *)) Vec_WecSortCompare4 );
+ else
+ qsort( (void *)p->pArray, p->nSize, sizeof(Vec_Int_t),
+ (int (*)(const void *, const void *)) Vec_WecSortCompare3 );
+}
/**Function*************************************************************
- Synopsis [Sorting the entries by their integer value.]
+ Synopsis [Sorting by the last entry.]
Description []
@@ -485,14 +483,30 @@ static int Vec_WecSortCompare4( Vec_Int_t * p1, Vec_Int_t * p2 )
SeeAlso []
***********************************************************************/
-static inline void Vec_WecSortByFirstInt( Vec_Wec_t * p, int fReverse )
+static int Vec_WecSortCompare5( Vec_Int_t * p1, Vec_Int_t * p2 )
+{
+ if ( Vec_IntEntryLast(p1) < Vec_IntEntryLast(p2) )
+ return -1;
+ if ( Vec_IntEntryLast(p1) > Vec_IntEntryLast(p2) )
+ return 1;
+ return 0;
+}
+static int Vec_WecSortCompare6( Vec_Int_t * p1, Vec_Int_t * p2 )
+{
+ if ( Vec_IntEntryLast(p1) > Vec_IntEntryLast(p2) )
+ return -1;
+ if ( Vec_IntEntryLast(p1) < Vec_IntEntryLast(p2) )
+ return 1;
+ return 0;
+}
+static inline void Vec_WecSortByLastInt( Vec_Wec_t * p, int fReverse )
{
if ( fReverse )
qsort( (void *)p->pArray, p->nSize, sizeof(Vec_Int_t),
- (int (*)(const void *, const void *)) Vec_WecSortCompare4 );
+ (int (*)(const void *, const void *)) Vec_WecSortCompare6 );
else
qsort( (void *)p->pArray, p->nSize, sizeof(Vec_Int_t),
- (int (*)(const void *, const void *)) Vec_WecSortCompare3 );
+ (int (*)(const void *, const void *)) Vec_WecSortCompare5 );
}
/**Function*************************************************************