diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2010-11-01 01:35:04 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2010-11-01 01:35:04 -0700 |
commit | 6130e39b18b5f53902e4eab14f6d5cdde5219563 (patch) | |
tree | 0db0628479a1b750e9af1f66cb8379ebd0913d31 /src/misc/vec/vecFlt.h | |
parent | f0e77f6797c0504b0da25a56152b707d3357f386 (diff) | |
download | abc-6130e39b18b5f53902e4eab14f6d5cdde5219563.tar.gz abc-6130e39b18b5f53902e4eab14f6d5cdde5219563.tar.bz2 abc-6130e39b18b5f53902e4eab14f6d5cdde5219563.zip |
initial commit of public abc
Diffstat (limited to 'src/misc/vec/vecFlt.h')
-rw-r--r-- | src/misc/vec/vecFlt.h | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/src/misc/vec/vecFlt.h b/src/misc/vec/vecFlt.h index 8f0ea42d..8273b033 100644 --- a/src/misc/vec/vecFlt.h +++ b/src/misc/vec/vecFlt.h @@ -21,12 +21,16 @@ #ifndef __VEC_FLT_H__ #define __VEC_FLT_H__ + //////////////////////////////////////////////////////////////////////// /// INCLUDES /// //////////////////////////////////////////////////////////////////////// #include <stdio.h> +ABC_NAMESPACE_HEADER_START + + //////////////////////////////////////////////////////////////////////// /// PARAMETERS /// //////////////////////////////////////////////////////////////////////// @@ -220,6 +224,25 @@ static inline void Vec_FltFree( Vec_Flt_t * p ) SeeAlso [] ***********************************************************************/ +static inline void Vec_FltFreeP( Vec_Flt_t ** p ) +{ + if ( *p == NULL ) + return; + ABC_FREE( (*p)->pArray ); + ABC_FREE( (*p) ); +} + +/**Function************************************************************* + + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ static inline float * Vec_FltReleaseArray( Vec_Flt_t * p ) { float * pArray = p->pArray; @@ -378,16 +401,17 @@ static inline void Vec_FltFill( Vec_Flt_t * p, int nSize, float Entry ) SeeAlso [] ***********************************************************************/ -static inline void Vec_FltFillExtra( Vec_Flt_t * p, int nSize, float Entry ) +static inline void Vec_FltFillExtra( Vec_Flt_t * p, int nSize, float Fill ) { int i; - if ( p->nSize >= nSize ) + if ( nSize <= p->nSize ) return; - if ( nSize < 2 * p->nSize ) - nSize = 2 * p->nSize; - Vec_FltGrow( p, nSize ); + if ( nSize > 2 * p->nCap ) + Vec_FltGrow( p, nSize ); + else if ( nSize > p->nCap ) + Vec_FltGrow( p, 2 * p->nCap ); for ( i = p->nSize; i < nSize; i++ ) - p->pArray[i] = Entry; + p->pArray[i] = Fill; p->nSize = nSize; } @@ -628,5 +652,9 @@ static inline void Vec_FltSort( Vec_Flt_t * p, int fReverse ) /// END OF FILE /// //////////////////////////////////////////////////////////////////////// + + +ABC_NAMESPACE_HEADER_END + #endif |