132 pStateCurnt = & (S->
pState[ (numTaps - 1u)]);
142 blkCnt = blockSize >> 2;
149 *pStateCurnt++ = *pSrc++;
150 *pStateCurnt++ = *pSrc++;
151 *pStateCurnt++ = *pSrc++;
152 *pStateCurnt++ = *pSrc++;
172 tapCnt = numTaps >> 2u;
236 tapCnt = numTaps % 0x4u;
275 blkCnt = blockSize % 0x4u;
280 *pStateCurnt++ = *pSrc++;
296 acc0 += *px++ * *pb++;
318 tapCnt = (numTaps - 1u) >> 2u;
323 *pStateCurnt++ = *pState++;
324 *pStateCurnt++ = *pState++;
325 *pStateCurnt++ = *pState++;
326 *pStateCurnt++ = *pState++;
333 tapCnt = (numTaps - 1u) % 0x4u;
338 *pStateCurnt++ = *pState++;
448 pStateCurnt = S->
pState + (numTaps - 1u);
451 blkCnt = outBlockSize;
460 *pStateCurnt++ = *pSrc++;
475 tapCnt = numTaps >> 2;
522 tapCnt = numTaps % 0x4u;
541 pState = pState + S->
M;
557 i = (numTaps - 1u) >> 2;
562 *pStateCurnt++ = *pState++;
563 *pStateCurnt++ = *pState++;
564 *pStateCurnt++ = *pState++;
565 *pStateCurnt++ = *pState++;
571 i = (numTaps - 1u) % 0x04u;
576 *pStateCurnt++ = *pState++;
700 pStateCurnt = S->
pState + (phaseLen - 1u);
709 *pStateCurnt++ = *pSrc++;
725 ptr2 = pCoeffs + (S->
L - j);
729 tapCnt = phaseLen >> 2u;
788 tapCnt = phaseLen % 0x4u;
793 sum0 += * (ptr1++) * (*ptr2);
827 tapCnt = (phaseLen - 1u) >> 2u;
832 *pStateCurnt++ = *pState++;
833 *pStateCurnt++ = *pState++;
834 *pStateCurnt++ = *pState++;
835 *pStateCurnt++ = *pState++;
841 tapCnt = (phaseLen - 1u) % 0x04u;
845 *pStateCurnt++ = *pState++;
952 blkCnt = blockSize >> 2;
975 fnext1 = fcurr1 + ( (*pk) * gcurr1);
977 gnext1 = (fcurr1 * (*pk)) + gcurr1;
981 fnext2 = fcurr2 + ( (*pk) * fcurr1);
982 gnext2 = (fcurr2 * (*pk)) + fcurr1;
994 fnext3 = fcurr3 + ( (*pk) * fcurr2);
995 gnext3 = (fcurr3 * (*pk)) + fcurr2;
998 fnext4 = fcurr4 + ( (*pk) * fcurr3);
999 gnext4 = (fcurr4 * (*pk++)) + fcurr3;
1008 stageCnt = (numStages - 1u) >> 2u;
1014 while (stageCnt > 0u)
1025 fnext1 = fcurr1 + ( (*pk) * gcurr1);
1028 fnext2 = fcurr2 + ( (*pk) * gnext1);
1030 fnext3 = fcurr3 + ( (*pk) * gnext2);
1032 fnext4 = fcurr4 + ( (*pk) * gnext3);
1036 gnext4 = (fcurr4 * (*pk)) + gnext3;
1037 gnext3 = (fcurr3 * (*pk)) + gnext2;
1038 gnext2 = (fcurr2 * (*pk)) + gnext1;
1039 gnext1 = (fcurr1 * (*pk++)) + gcurr1;
1051 fcurr1 = fnext1 + ( (*pk) * gcurr1);
1053 fcurr2 = fnext2 + ( (*pk) * gnext1);
1055 fcurr3 = fnext3 + ( (*pk) * gnext2);
1057 fcurr4 = fnext4 + ( (*pk) * gnext3);
1061 gnext4 = (fnext4 * (*pk)) + gnext3;
1062 gnext3 = (fnext3 * (*pk)) + gnext2;
1063 gnext2 = (fnext2 * (*pk)) + gnext1;
1064 gnext1 = (fnext1 * (*pk++)) + gcurr1;
1076 fnext1 = fcurr1 + ( (*pk) * gcurr1);
1079 fnext2 = fcurr2 + ( (*pk) * gnext1);
1081 fnext3 = fcurr3 + ( (*pk) * gnext2);
1083 fnext4 = fcurr4 + ( (*pk) * gnext3);
1087 gnext4 = (fcurr4 * (*pk)) + gnext3;
1088 gnext3 = (fcurr3 * (*pk)) + gnext2;
1089 gnext2 = (fcurr2 * (*pk)) + gnext1;
1090 gnext1 = (fcurr1 * (*pk++)) + gcurr1;
1101 fcurr1 = fnext1 + ( (*pk) * gcurr1);
1103 fcurr2 = fnext2 + ( (*pk) * gnext1);
1105 fcurr3 = fnext3 + ( (*pk) * gnext2);
1107 fcurr4 = fnext4 + ( (*pk) * gnext3);
1111 gnext4 = (fnext4 * (*pk)) + gnext3;
1112 gnext3 = (fnext3 * (*pk)) + gnext2;
1113 gnext2 = (fnext2 * (*pk)) + gnext1;
1114 gnext1 = (fnext1 * (*pk++)) + gcurr1;
1120 stageCnt = (numStages - 1u) % 0x4u;
1122 while (stageCnt > 0u)
1130 fnext1 = fcurr1 + ( (*pk) * gcurr1);
1131 fnext2 = fcurr2 + ( (*pk) * gnext1);
1132 fnext3 = fcurr3 + ( (*pk) * gnext2);
1133 fnext4 = fcurr4 + ( (*pk) * gnext3);
1136 gnext4 = (fcurr4 * (*pk)) + gnext3;
1137 gnext3 = (fcurr3 * (*pk)) + gnext2;
1138 gnext2 = (fcurr2 * (*pk)) + gnext1;
1139 gnext1 = (fcurr1 * (*pk++)) + gcurr1;
1163 blkCnt = blockSize % 0x4u;
1181 fnext1 = fcurr1 + ( (*pk) * gcurr1);
1183 gnext1 = (fcurr1 * (*pk++)) + gcurr1;
1192 stageCnt = (numStages - 1u);
1195 while (stageCnt > 0u)
1205 fnext1 = fcurr1 + ( (*pk) * gcurr1);
1207 gnext1 = (fcurr1 * (*pk++)) + gcurr1;
1230 static void ne10_circular_write_float (
ne10_int32_t * circBuffer,
1243 wOffset = *writeOffset;
1251 circBuffer[wOffset] = *src;
1257 wOffset += bufferInc;
1266 *writeOffset = wOffset;
1274 static void ne10_circular_read_float (
ne10_int32_t * circBuffer,
1289 rOffset = *readOffset;
1290 dst_end = dst_base + dst_length;
1298 *dst = circBuffer[rOffset];
1309 rOffset += bufferInc;
1321 *readOffset = rOffset;
1427 ne10_circular_read_float ( (
ne10_int32_t *) py, delaySize, &readIndex, 1,
1442 blkCnt = blockSize >> 2u;
1447 *pOut++ = *px++ * coeff;
1448 *pOut++ = *px++ * coeff;
1449 *pOut++ = *px++ * coeff;
1450 *pOut++ = *px++ * coeff;
1458 blkCnt = blockSize % 0x4u;
1463 *pOut++ = *px++ * coeff;
1492 ne10_circular_read_float ( (
ne10_int32_t *) py, delaySize, &readIndex, 1,
1504 blkCnt = blockSize >> 2u;
1509 *pOut++ += *px++ * coeff;
1510 *pOut++ += *px++ * coeff;
1511 *pOut++ += *px++ * coeff;
1512 *pOut++ += *px++ * coeff;
1520 blkCnt = blockSize % 0x4u;
1525 *pOut++ += *px++ * coeff;
ne10_float32_t * pCoeffs
Points to the coefficient array.
Instance structure for the floating-point FIR Sparse filter.
ne10_uint16_t numTaps
Length of the filter.
ne10_float32_t * pCoeffs
Points to the coefficient array.
ne10_uint16_t phaseLength
Length of each polyphase filter component.
ne10_float32_t * pState
Points to the state variable array.
void ne10_fir_decimate_float_c(const ne10_fir_decimate_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Specific implementation of ne10_fir_decimate_float using plain C.
ne10_uint16_t numTaps
Length of the filter.
Instance structure for the floating-point FIR Interpolation.
ne10_float32_t * pState
Points to the state variable array.
Instance structure for the floating-point FIR filter.
ne10_uint8_t L
Interpolation Factor.
ne10_float32_t * pState
Points to the state variable array.
ne10_float32_t * pCoeffs
Points to the coefficient array.
ne10_float32_t * pCoeffs
Points to the coefficient array.
ne10_float32_t * pState
Points to the state variable array.
Instance structure for the floating point FIR Lattice filter.
void ne10_fir_float_c(const ne10_fir_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Specific implementation of ne10_fir_float using plain C.
ne10_float32_t * pCoeffs
Points to the coefficient array.
Instance structure for the floating-point FIR Decimation.
void ne10_fir_lattice_float_c(const ne10_fir_lattice_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Specific implementation of ne10_fir_lattice_float using plain C.
ne10_uint16_t numTaps
Length of the filter.
void ne10_fir_interpolate_float_c(const ne10_fir_interpolate_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_uint32_t blockSize)
Specific implementation of ne10_fir_interpolate_float using plain C.
ne10_uint16_t numStages
numStages of the of lattice filter.
ne10_uint16_t maxDelay
the largest number of delay line values .
ne10_float32_t * pState
Points to the state variable array.
ne10_int32_t * pTapDelay
Pointer to the array containing positions of the non-zero tap values.
ne10_uint8_t M
Decimation Factor.
ne10_uint16_t stateIndex
Index pointer for the state buffer .
void ne10_fir_sparse_float_c(ne10_fir_sparse_instance_f32_t *S, ne10_float32_t *pSrc, ne10_float32_t *pDst, ne10_float32_t *pScratchIn, ne10_uint32_t blockSize)
Specific implementation of ne10_fir_sparse_float using plain C.