diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-10-06 15:57:17 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-10-06 15:57:17 -0700 |
commit | 8a03e530c299fba1e862a5943207c39fbd52ee06 (patch) | |
tree | 775a402f266cd507849d188b0f6db0b76250be86 /src/misc/vec/vecWec.h | |
parent | 812a877ab694956be34b979fbd219a244580cced (diff) | |
download | abc-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.h | 50 |
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************************************************************* |