Update Output type to avoid saturation

pull/42/head
Silfurion 3 years ago committed by Christophe Favergeon
parent 1443d0625f
commit d2b8728b22

@ -1005,7 +1005,7 @@ const float64_t * pSrc,
void arm_accumulate_q7( void arm_accumulate_q7(
const q7_t * pSrc, const q7_t * pSrc,
uint32_t blockSize, uint32_t blockSize,
q7_t * pResult); q31_t * pResult);
/** /**
* @brief Accumulation value of a Q15 vector. * @brief Accumulation value of a Q15 vector.
@ -1017,7 +1017,7 @@ const q7_t * pSrc,
void arm_accumulate_q15( void arm_accumulate_q15(
const q15_t * pSrc, const q15_t * pSrc,
uint32_t blockSize, uint32_t blockSize,
q15_t * pResult); q63_t * pResult);
/** /**
* @brief Accumulation value of a Q31 vector. * @brief Accumulation value of a Q31 vector.
@ -1029,7 +1029,7 @@ const q15_t * pSrc,
void arm_accumulate_q31( void arm_accumulate_q31(
const q31_t * pSrc, const q31_t * pSrc,
uint32_t blockSize, uint32_t blockSize,
q31_t * pResult); q63_t * pResult);
#ifdef __cplusplus #ifdef __cplusplus
} }

@ -57,11 +57,11 @@
void arm_accumulate_q15( void arm_accumulate_q15(
const q15_t * pSrc, const q15_t * pSrc,
uint32_t blockSize, uint32_t blockSize,
q15_t * pResult) q63_t * pResult)
{ {
uint32_t blkCnt; /* loop counters */ uint32_t blkCnt; /* loop counters */
q15x8_t vecSrc; q15x8_t vecSrc;
q31_t sum = 0L; q63_t sum = 0L;
/* Compute 8 outputs at a time */ /* Compute 8 outputs at a time */
blkCnt = blockSize >> 3U; blkCnt = blockSize >> 3U;
@ -97,10 +97,10 @@ void arm_accumulate_q15(
void arm_accumulate_q15( void arm_accumulate_q15(
const q15_t * pSrc, const q15_t * pSrc,
uint32_t blockSize, uint32_t blockSize,
q15_t * pResult) q63_t * pResult)
{ {
uint32_t blkCnt; /* Loop counter */ uint32_t blkCnt; /* Loop counter */
q31_t sum = 0; /* Temporary result storage */ q63_t sum = 0; /* Temporary result storage */
#if defined (ARM_MATH_LOOPUNROLL) #if defined (ARM_MATH_LOOPUNROLL)
q31_t in; q31_t in;

@ -56,7 +56,7 @@
void arm_accumulate_q31( void arm_accumulate_q31(
const q31_t * pSrc, const q31_t * pSrc,
uint32_t blockSize, uint32_t blockSize,
q31_t * pResult) q63_t * pResult)
{ {
uint32_t blkCnt; /* loop counters */ uint32_t blkCnt; /* loop counters */
q31x4_t vecSrc; q31x4_t vecSrc;
@ -94,7 +94,7 @@ void arm_accumulate_q31(
void arm_accumulate_q31( void arm_accumulate_q31(
const q31_t * pSrc, const q31_t * pSrc,
uint32_t blockSize, uint32_t blockSize,
q31_t * pResult) q63_t * pResult)
{ {
uint32_t blkCnt; /* Loop counter */ uint32_t blkCnt; /* Loop counter */
q63_t sum = 0; /* Temporary result storage */ q63_t sum = 0; /* Temporary result storage */

@ -58,7 +58,7 @@
void arm_accumulate_q7( void arm_accumulate_q7(
const q7_t * pSrc, const q7_t * pSrc,
uint32_t blockSize, uint32_t blockSize,
q7_t * pResult) q31_t * pResult)
{ {
uint32_t blkCnt; /* loop counters */ uint32_t blkCnt; /* loop counters */
q7x16_t vecSrc; q7x16_t vecSrc;
@ -96,7 +96,7 @@ void arm_accumulate_q7(
void arm_accumulate_q7( void arm_accumulate_q7(
const q7_t * pSrc, const q7_t * pSrc,
uint32_t blockSize, uint32_t blockSize,
q7_t * pResult) q31_t * pResult)
{ {
uint32_t blkCnt; /* Loop counter */ uint32_t blkCnt; /* Loop counter */
q31_t sum = 0; /* Temporary result storage */ q31_t sum = 0; /* Temporary result storage */

Loading…
Cancel
Save