diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2008-10-13 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2008-10-13 08:01:00 -0700 |
commit | e917dda1d363cf56274d0595c97cecf3c59eca75 (patch) | |
tree | 597e60685df29a7ae91574140900f97b4ba0d4cc /src/misc | |
parent | a2535d49a0dac5bad8d27567ad674adc78edf74b (diff) | |
download | abc-e917dda1d363cf56274d0595c97cecf3c59eca75.tar.gz abc-e917dda1d363cf56274d0595c97cecf3c59eca75.tar.bz2 abc-e917dda1d363cf56274d0595c97cecf3c59eca75.zip |
Version abc81013
Diffstat (limited to 'src/misc')
-rw-r--r-- | src/misc/vec/vecInt.h | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/src/misc/vec/vecInt.h b/src/misc/vec/vecInt.h index 437b4d8e..c944df3f 100644 --- a/src/misc/vec/vecInt.h +++ b/src/misc/vec/vecInt.h @@ -382,12 +382,12 @@ static inline void Vec_IntGrow( Vec_Int_t * p, int nCapMin ) SeeAlso [] ***********************************************************************/ -static inline void Vec_IntFill( Vec_Int_t * p, int nSize, int Entry ) +static inline void Vec_IntFill( Vec_Int_t * p, int nSize, int Fill ) { int i; Vec_IntGrow( p, nSize ); for ( i = 0; i < nSize; i++ ) - p->pArray[i] = Entry; + p->pArray[i] = Fill; p->nSize = nSize; } @@ -402,20 +402,40 @@ static inline void Vec_IntFill( Vec_Int_t * p, int nSize, int Entry ) SeeAlso [] ***********************************************************************/ -static inline void Vec_IntFillExtra( Vec_Int_t * p, int nSize, int Entry ) +static inline void Vec_IntFillExtra( Vec_Int_t * p, int nSize, int Fill ) { int i; if ( p->nSize >= nSize ) return; - Vec_IntGrow( p, nSize ); + if ( 2 * p->nSize > nSize ) + Vec_IntGrow( p, 2 * nSize ); + else + Vec_IntGrow( p, nSize ); for ( i = p->nSize; i < nSize; i++ ) - p->pArray[i] = Entry; + p->pArray[i] = Fill; p->nSize = nSize; } /**Function************************************************************* - Synopsis [] + Synopsis [Returns the entry even if the place not exist.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +static inline int Vec_IntGetEntry( Vec_Int_t * p, int i ) +{ + Vec_IntFillExtra( p, i + 1, 0 ); + return Vec_IntEntry( p, i ); +} + +/**Function************************************************************* + + Synopsis [Inserts the entry even if the place does not exist.] Description [] @@ -424,11 +444,9 @@ static inline void Vec_IntFillExtra( Vec_Int_t * p, int nSize, int Entry ) SeeAlso [] ***********************************************************************/ -static inline void Vec_IntWriteEntryFill( Vec_Int_t * p, int i, int Entry ) +static inline void Vec_IntSetEntry( Vec_Int_t * p, int i, int Entry ) { - assert( i >= 0 ); - if ( i >= p->nSize ) - Vec_IntFillExtra( p, 2 * i, 0 ); + Vec_IntFillExtra( p, i + 1, 0 ); Vec_IntWriteEntry( p, i, Entry ); } |