| #include "ref.h" |
| |
| void ref_dot_prod_f32( |
| float32_t * pSrcA, |
| float32_t * pSrcB, |
| uint32_t blockSize, |
| float32_t * result) |
| { |
| uint32_t i; |
| float32_t sum = 0.0f; |
| |
| for(i=0;i<blockSize;i++) |
| { |
| sum += pSrcA[i] * pSrcB[i]; |
| } |
| *result = sum; |
| } |
| |
| void ref_dot_prod_q31( |
| q31_t * pSrcA, |
| q31_t * pSrcB, |
| uint32_t blockSize, |
| q63_t * result) |
| { |
| uint32_t i; |
| q63_t sum = 0.0f; |
| |
| for(i=0;i<blockSize;i++) |
| { |
| sum += ((q63_t)pSrcA[i] * pSrcB[i]) >> 14; //16.48 |
| } |
| *result = sum; |
| } |
| |
| void ref_dot_prod_q15( |
| q15_t * pSrcA, |
| q15_t * pSrcB, |
| uint32_t blockSize, |
| q63_t * result) |
| { |
| uint32_t i; |
| q63_t sum = 0.0f; |
| |
| for(i=0;i<blockSize;i++) |
| { |
| sum += (q31_t)pSrcA[i] * pSrcB[i]; //34.30 |
| } |
| *result = sum; |
| } |
| |
| void ref_dot_prod_q7( |
| q7_t * pSrcA, |
| q7_t * pSrcB, |
| uint32_t blockSize, |
| q31_t * result) |
| { |
| uint32_t i; |
| q31_t sum = 0.0f; |
| |
| for(i=0;i<blockSize;i++) |
| { |
| sum += (q31_t)pSrcA[i] * pSrcB[i]; //18.14 |
| } |
| *result = sum; |
| } |