76 q31_t fcurr, fnext = 0, gcurr = 0, gnext;
78 uint32_t blkCnt, tapCnt;
79 q31_t *px1, *px2, *pk, *pv;
89 #ifndef ARM_MATH_CM0_FAMILY 115 fnext = __QSUB(fcurr, (
q31_t) (((
q63_t) gcurr * (*pk)) >> 31));
117 gnext = __QADD(gcurr, (
q31_t) (((
q63_t) fnext * (*pk++)) >> 31));
121 acc += ((
q63_t) gnext * *pv++);
127 tapCnt = (numStages - 1u) >> 2;
136 fnext = __QSUB(fcurr, (
q31_t) (((
q63_t) gcurr * (*pk)) >> 31));
138 gnext = __QADD(gcurr, (
q31_t) (((
q63_t) fnext * (*pk++)) >> 31));
141 acc += ((
q63_t) gnext * *pv++);
150 fcurr = __QSUB(fnext, (
q31_t) (((
q63_t) gcurr * (*pk)) >> 31));
152 gnext = __QADD(gcurr, (
q31_t) (((
q63_t) fcurr * (*pk++)) >> 31));
155 acc += ((
q63_t) gnext * *pv++);
165 fnext = __QSUB(fcurr, (
q31_t) (((
q63_t) gcurr * (*pk)) >> 31));
167 gnext = __QADD(gcurr, (
q31_t) (((
q63_t) fnext * (*pk++)) >> 31));
170 acc += ((
q63_t) gnext * *pv++);
180 fcurr = __QSUB(fnext, (
q31_t) (((
q63_t) gcurr * (*pk)) >> 31));
182 gnext = __QADD(gcurr, (
q31_t) (((
q63_t) fcurr * (*pk++)) >> 31));
185 acc += ((
q63_t) gnext * *pv++);
196 tapCnt = (numStages - 1u) % 0x4u;
202 fnext = __QSUB(fcurr, (
q31_t) (((
q63_t) gcurr * (*pk)) >> 31));
203 gnext = __QADD(gcurr, (
q31_t) (((
q63_t) fnext * (*pk++)) >> 31));
205 acc += ((
q63_t) gnext * *pv++);
214 acc += (
q63_t) fnext *(
220 *pDst++ = (
q31_t) (acc >> 31u);
223 pState = pState + 1u;
232 pStateCurnt = &S->
pState[0];
233 pState = &S->
pState[blockSize];
235 tapCnt = numStages >> 2u;
240 *pStateCurnt++ = *pState++;
241 *pStateCurnt++ = *pState++;
242 *pStateCurnt++ = *pState++;
243 *pStateCurnt++ = *pState++;
251 tapCnt = (numStages) % 0x4u;
256 *pStateCurnt++ = *pState++;
291 clip_q63_to_q31(((
q63_t) fcurr -
295 clip_q63_to_q31(((
q63_t) gcurr +
296 ((
q31_t) (((
q63_t) fnext * (*pk++)) >> 31))));
299 acc += ((
q63_t) gnext * *pv++);
309 acc += (
q63_t) fnext *(
315 *pDst++ = (
q31_t) (acc >> 31u);
318 pState = pState + 1u;
327 pStateCurnt = &S->
pState[0];
328 pState = &S->
pState[blockSize];
335 *pStateCurnt++ = *pState++;
void arm_iir_lattice_q31(const arm_iir_lattice_instance_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 IIR lattice filter.
Instance structure for the Q31 IIR lattice filter.
int64_t q63_t
64-bit fractional data type in 1.63 format.
int32_t q31_t
32-bit fractional data type in 1.31 format.