Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 2 | mjames | 1 | #include "ref.h" |
| 2 | |||
| 3 | void ref_dot_prod_f32( |
||
| 4 | float32_t * pSrcA, |
||
| 5 | float32_t * pSrcB, |
||
| 6 | uint32_t blockSize, |
||
| 7 | float32_t * result) |
||
| 8 | { |
||
| 9 | uint32_t i; |
||
| 10 | float32_t sum = 0.0f; |
||
| 11 | |||
| 12 | for(i=0;i<blockSize;i++) |
||
| 13 | { |
||
| 14 | sum += pSrcA[i] * pSrcB[i]; |
||
| 15 | } |
||
| 16 | *result = sum; |
||
| 17 | } |
||
| 18 | |||
| 19 | void ref_dot_prod_q31( |
||
| 20 | q31_t * pSrcA, |
||
| 21 | q31_t * pSrcB, |
||
| 22 | uint32_t blockSize, |
||
| 23 | q63_t * result) |
||
| 24 | { |
||
| 25 | uint32_t i; |
||
| 26 | q63_t sum = 0.0f; |
||
| 27 | |||
| 28 | for(i=0;i<blockSize;i++) |
||
| 29 | { |
||
| 30 | sum += ((q63_t)pSrcA[i] * pSrcB[i]) >> 14; //16.48 |
||
| 31 | } |
||
| 32 | *result = sum; |
||
| 33 | } |
||
| 34 | |||
| 35 | void ref_dot_prod_q15( |
||
| 36 | q15_t * pSrcA, |
||
| 37 | q15_t * pSrcB, |
||
| 38 | uint32_t blockSize, |
||
| 39 | q63_t * result) |
||
| 40 | { |
||
| 41 | uint32_t i; |
||
| 42 | q63_t sum = 0.0f; |
||
| 43 | |||
| 44 | for(i=0;i<blockSize;i++) |
||
| 45 | { |
||
| 46 | sum += (q31_t)pSrcA[i] * pSrcB[i]; //34.30 |
||
| 47 | } |
||
| 48 | *result = sum; |
||
| 49 | } |
||
| 50 | |||
| 51 | void ref_dot_prod_q7( |
||
| 52 | q7_t * pSrcA, |
||
| 53 | q7_t * pSrcB, |
||
| 54 | uint32_t blockSize, |
||
| 55 | q31_t * result) |
||
| 56 | { |
||
| 57 | uint32_t i; |
||
| 58 | q31_t sum = 0.0f; |
||
| 59 | |||
| 60 | for(i=0;i<blockSize;i++) |
||
| 61 | { |
||
| 62 | sum += (q31_t)pSrcA[i] * pSrcB[i]; //18.14 |
||
| 63 | } |
||
| 64 | *result = sum; |
||
| 65 | } |