Mercurial > libavcodec.hg
diff acelp_math.h @ 7186:ff5ef7becd94 libavcodec
make sum_of_squares() more generic
author | michael |
---|---|
date | Thu, 03 Jul 2008 11:50:44 +0000 |
parents | 6f402a181803 |
children | 205d198d05e5 |
line wrap: on
line diff
--- a/acelp_math.h Wed Jul 02 22:28:47 2008 +0000 +++ b/acelp_math.h Thu Jul 03 11:50:44 2008 +0000 @@ -51,23 +51,21 @@ int ff_log2(uint32_t value); /** - * \brief Calculates sum of array element multiplications - * \param speech input data array + * \brief Calculates the dot product + * \param a input data array + * \param b input data array * \param length number of elements - * \param offset offset for calculation of sum of s[i]*s[i+offset] * \param shift right shift by this value will be done before multiplication * * \return sum of multiplications - * - * \note array must be at least length+offset long! */ -static int sum_of_squares(const int16_t* speech, int length, int offset, int shift) +static int dot_product(const int16_t* a, const int16_t* b, int length, int shift) { - const int16_t* speech_end; int sum = 0; + int i; - for(speech_end=speech+length; speech<speech_end; speech++) - sum += (speech[0] * speech[offset]) >> shift; + for(i=0; i<length; i++) + sum += (a[i] * b[i]) >> shift; return sum; }