138 uint32_t delaySize = S->
maxDelay + blockSize;
141 uint32_t tapCnt, blkCnt;
148 arm_circularWrite_f32((int32_t *) py, delaySize, &S->
stateIndex, 1,
149 (int32_t *) pSrc, 1, blockSize);
153 readIndex = ((int32_t) S->
stateIndex - (int32_t) blockSize) - *pTapDelay++;
158 readIndex += (int32_t) delaySize;
165 arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1,
166 (int32_t *) pb, (int32_t *) pb, blockSize, 1,
176 #ifndef ARM_MATH_CM0_FAMILY 182 blkCnt = blockSize >> 2u;
187 *pOut++ = *px++ * coeff;
188 *pOut++ = *px++ * coeff;
189 *pOut++ = *px++ * coeff;
190 *pOut++ = *px++ * coeff;
198 blkCnt = blockSize % 0x4u;
203 *pOut++ = *px++ * coeff;
214 readIndex = ((int32_t) S->
stateIndex - (int32_t) blockSize) - *pTapDelay++;
219 readIndex += (int32_t) delaySize;
223 tapCnt = (uint32_t) numTaps - 2u;
232 arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1,
233 (int32_t *) pb, (int32_t *) pb, blockSize, 1,
244 blkCnt = blockSize >> 2u;
249 *pOut++ += *px++ * coeff;
250 *pOut++ += *px++ * coeff;
251 *pOut++ += *px++ * coeff;
252 *pOut++ += *px++ * coeff;
260 blkCnt = blockSize % 0x4u;
265 *pOut++ += *px++ * coeff;
277 (int32_t) blockSize) - *pTapDelay++;
282 readIndex += (int32_t) delaySize;
295 arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1,
296 (int32_t *) pb, (int32_t *) pb, blockSize, 1,
307 blkCnt = blockSize >> 2u;
312 *pOut++ += *px++ * coeff;
313 *pOut++ += *px++ * coeff;
314 *pOut++ += *px++ * coeff;
315 *pOut++ += *px++ * coeff;
323 blkCnt = blockSize % 0x4u;
328 *pOut++ += *px++ * coeff;
343 *pOut++ = *px++ * coeff;
354 readIndex = ((int32_t) S->
stateIndex - (int32_t) blockSize) - *pTapDelay++;
359 readIndex += (int32_t) delaySize;
363 tapCnt = (uint32_t) numTaps - 2u;
372 arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1,
373 (int32_t *) pb, (int32_t *) pb, blockSize, 1,
387 *pOut++ += *px++ * coeff;
399 ((int32_t) S->
stateIndex - (int32_t) blockSize) - *pTapDelay++;
404 readIndex += (int32_t) delaySize;
417 arm_circularRead_f32((int32_t *) py, delaySize, &readIndex, 1,
418 (int32_t *) pb, (int32_t *) pb, blockSize, 1,
432 *pOut++ += *px++ * coeff;
float float32_t
32-bit floating-point type definition.
void arm_fir_sparse_f32(arm_fir_sparse_instance_f32 *S, float32_t *pSrc, float32_t *pDst, float32_t *pScratchIn, uint32_t blockSize)
Processing function for the floating-point sparse FIR filter.
Instance structure for the floating-point sparse FIR filter.