Lines Matching full:in

14 * Redistribution and use in source and binary forms, with or without
19 * - Redistributions in binary form must reproduce the above copyright
20 * notice, this list of conditions and the following disclaimer in
30 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
35 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
66 …* The library installer contains prebuilt versions of the libraries in the <code>Lib</code> folder.
76 …* The library functions are declared in the public file <code>arm_math.h</code> which is placed in
77 …* Simply include this file and link the appropriate library in the application and begin calling t…
80 * ARM_MATH_CM0 or ARM_MATH_CM0PLUS depending on the target processor in the application.
89 …* The library is being tested in GCC and IAR toolchains and updates on this activity will be made …
93 …* The library installer contains project files to re build libraries on MDK Tool chain in the <cod…
104 …* The project can be built by opening the appropriate project in MDK-ARM 4.60 chain and defining t…
148 * As compared to most of the other functions in the CMSIS math library, the fast math functions
157 * The data in the complex arrays is stored in an interleaved fashion
159 * In the API functions, the number of samples in a complex array refers
188 * and the values are arranged in row order. That is, the
204 * To place the instance structure in a const data
294 * @brief Macros required for reciprocal calculation in Normalized LMS
333 * @brief Error status returned by some functions in the library.
348 * @brief 8-bit fractional data type in 1.7 format.
353 * @brief 16-bit fractional data type in 1.15 format.
358 * @brief 32-bit fractional data type in 1.31 format.
363 * @brief 64-bit fractional data type in 1.63 format.
472 * @brief Multiplies 32 X 64 and returns 32 bit result in 2.30 format.
513 * @brief Function to Calculates 1/in (reciprocal) value of Q31 Data type.
517 q31_t in, in arm_recip_q31() argument
526 if(in > 0) in arm_recip_q31()
528 signBits = __CLZ(in) - 1; in arm_recip_q31()
532 signBits = __CLZ(-in) - 1; in arm_recip_q31()
536 in = in << signBits; in arm_recip_q31()
539 index = (uint32_t) (in >> 24u); in arm_recip_q31()
549 tempVal = (q31_t) (((q63_t) in * out) >> 31u); in arm_recip_q31()
559 /* return num of signbits of out = 1/in value */ in arm_recip_q31()
565 * @brief Function to Calculates 1/in (reciprocal) value of Q15 Data type.
568 q15_t in, in arm_recip_q15() argument
577 if(in > 0) in arm_recip_q15()
579 signBits = __CLZ(in) - 17; in arm_recip_q15()
583 signBits = __CLZ(-in) - 17; in arm_recip_q15()
587 in = in << signBits; in arm_recip_q15()
590 index = in >> 8; in arm_recip_q15()
600 tempVal = (q15_t) (((q31_t) in * out) >> 15); in arm_recip_q15()
609 /* return num of signbits of out = 1/in value */ in arm_recip_q15()
1047 uint16_t numTaps; /**< number of filter coefficients in the filter. */
1057 uint16_t numTaps; /**< number of filter coefficients in the filter. */
1067 uint16_t numTaps; /**< number of filter coefficients in the filter. */
1077 uint16_t numTaps; /**< number of filter coefficients in the filter. */
1085 * @param[in] *S points to an instance of the Q7 FIR filter structure.
1086 * @param[in] *pSrc points to the block of input data.
1088 * @param[in] blockSize number of samples to process.
1100 * @param[in,out] *S points to an instance of the Q7 FIR structure.
1101 * @param[in] numTaps Number of filter coefficients in the filter.
1102 * @param[in] *pCoeffs points to the filter coefficients.
1103 * @param[in] *pState points to the state buffer.
1104 * @param[in] blockSize number of samples that are processed.
1117 * @param[in] *S points to an instance of the Q15 FIR structure.
1118 * @param[in] *pSrc points to the block of input data.
1120 * @param[in] blockSize number of samples to process.
1131 * @param[in] *S points to an instance of the Q15 FIR filter structure.
1132 * @param[in] *pSrc points to the block of input data.
1134 * @param[in] blockSize number of samples to process.
1145 * @param[in,out] *S points to an instance of the Q15 FIR filter structure.
1146 …* @param[in] numTaps Number of filter coefficients in the filter. Must be even and greater than o…
1147 * @param[in] *pCoeffs points to the filter coefficients.
1148 * @param[in] *pState points to the state buffer.
1149 * @param[in] blockSize number of samples that are processed at a time.
1163 * @param[in] *S points to an instance of the Q31 FIR filter structure.
1164 * @param[in] *pSrc points to the block of input data.
1166 * @param[in] blockSize number of samples to process.
1177 * @param[in] *S points to an instance of the Q31 FIR structure.
1178 * @param[in] *pSrc points to the block of input data.
1180 * @param[in] blockSize number of samples to process.
1191 * @param[in,out] *S points to an instance of the Q31 FIR structure.
1192 * @param[in] numTaps Number of filter coefficients in the filter.
1193 * @param[in] *pCoeffs points to the filter coefficients.
1194 * @param[in] *pState points to the state buffer.
1195 * @param[in] blockSize number of samples that are processed at a time.
1207 * @param[in] *S points to an instance of the floating-point FIR structure.
1208 * @param[in] *pSrc points to the block of input data.
1210 * @param[in] blockSize number of samples to process.
1221 * @param[in,out] *S points to an instance of the floating-point FIR filter structure.
1222 * @param[in] numTaps Number of filter coefficients in the filter.
1223 * @param[in] *pCoeffs points to the filter coefficients.
1224 * @param[in] *pState points to the state buffer.
1225 * @param[in] blockSize number of samples that are processed at a time.
1241 …int8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numSt…
1244 int8_t postShift; /**< Additional shift, in bits, applied to each output sample. */
1254 …uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numSta…
1257 uint8_t postShift; /**< Additional shift, in bits, applied to each output sample. */
1266 …uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*num…
1277 * @param[in] *S points to an instance of the Q15 Biquad cascade structure.
1278 * @param[in] *pSrc points to the block of input data.
1280 * @param[in] blockSize number of samples to process.
1292 * @param[in,out] *S points to an instance of the Q15 Biquad cascade structure.
1293 * @param[in] numStages number of 2nd order stages in the filter.
1294 * @param[in] *pCoeffs points to the filter coefficients.
1295 * @param[in] *pState points to the state buffer.
1296 …* @param[in] postShift Shift to be applied to the output. Varies according to the coefficie…
1310 * @param[in] *S points to an instance of the Q15 Biquad cascade structure.
1311 * @param[in] *pSrc points to the block of input data.
1313 * @param[in] blockSize number of samples to process.
1326 * @param[in] *S points to an instance of the Q31 Biquad cascade structure.
1327 * @param[in] *pSrc points to the block of input data.
1329 * @param[in] blockSize number of samples to process.
1341 * @param[in] *S points to an instance of the Q31 Biquad cascade structure.
1342 * @param[in] *pSrc points to the block of input data.
1344 * @param[in] blockSize number of samples to process.
1356 * @param[in,out] *S points to an instance of the Q31 Biquad cascade structure.
1357 * @param[in] numStages number of 2nd order stages in the filter.
1358 * @param[in] *pCoeffs points to the filter coefficients.
1359 * @param[in] *pState points to the state buffer.
1360 …* @param[in] postShift Shift to be applied to the output. Varies according to the coefficie…
1373 * @param[in] *S points to an instance of the floating-point Biquad cascade structure.
1374 * @param[in] *pSrc points to the block of input data.
1376 * @param[in] blockSize number of samples to process.
1388 …* @param[in,out] *S points to an instance of the floating-point Biquad cascade structure.
1389 * @param[in] numStages number of 2nd order stages in the filter.
1390 * @param[in] *pCoeffs points to the filter coefficients.
1391 * @param[in] *pState points to the state buffer.
1441 * @param[in] *pSrcA points to the first input matrix structure
1442 * @param[in] *pSrcB points to the second input matrix structure
1455 * @param[in] *pSrcA points to the first input matrix structure
1456 * @param[in] *pSrcB points to the second input matrix structure
1469 * @param[in] *pSrcA points to the first input matrix structure
1470 * @param[in] *pSrcB points to the second input matrix structure
1484 * @param[in] *pSrc points to the input matrix
1497 * @param[in] *pSrc points to the input matrix
1509 * @param[in] *pSrc points to the input matrix
1522 * @param[in] *pSrcA points to the first input matrix structure
1523 * @param[in] *pSrcB points to the second input matrix structure
1536 * @param[in] *pSrcA points to the first input matrix structure
1537 * @param[in] *pSrcB points to the second input matrix structure
1539 * @param[in] *pState points to the array for storing intermediate results
1552 * @param[in] *pSrcA points to the first input matrix structure
1553 * @param[in] *pSrcB points to the second input matrix structure
1555 * @param[in] *pState points to the array for storing intermediate results
1568 * @param[in] *pSrcA points to the first input matrix structure
1569 * @param[in] *pSrcB points to the second input matrix structure
1582 * @param[in] *pSrcA points to the first input matrix structure
1583 * @param[in] *pSrcB points to the second input matrix structure
1597 * @param[in] *pSrcA points to the first input matrix structure
1598 * @param[in] *pSrcB points to the second input matrix structure
1611 * @param[in] *pSrcA points to the first input matrix structure
1612 * @param[in] *pSrcB points to the second input matrix structure
1625 * @param[in] *pSrcA points to the first input matrix structure
1626 * @param[in] *pSrcB points to the second input matrix structure
1639 * @param[in] *pSrc points to the input matrix
1640 * @param[in] scale scale factor
1653 * @param[in] *pSrc points to input matrix
1654 * @param[in] scaleFract fractional portion of the scale factor
1655 * @param[in] shift number of bits to shift the result by
1669 * @param[in] *pSrc points to input matrix
1670 * @param[in] scaleFract fractional portion of the scale factor
1671 * @param[in] shift number of bits to shift the result by
1686 * @param[in,out] *S points to an instance of the floating-point matrix structure.
1687 * @param[in] nRows number of rows in the matrix.
1688 * @param[in] nColumns number of columns in the matrix.
1689 * @param[in] *pData points to the matrix data array.
1701 * @param[in,out] *S points to an instance of the floating-point matrix structure.
1702 * @param[in] nRows number of rows in the matrix.
1703 * @param[in] nColumns number of columns in the matrix.
1704 * @param[in] *pData points to the matrix data array.
1716 * @param[in,out] *S points to an instance of the floating-point matrix structure.
1717 * @param[in] nRows number of rows in the matrix.
1718 * @param[in] nColumns number of columns in the matrix.
1719 * @param[in] *pData points to the matrix data array.
1782 * @param[in,out] *S points to an instance of the PID structure.
1783 …* @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the sta…
1792 * @param[in,out] *S is an instance of the floating-point PID Control structure
1801 * @param[in,out] *S points to an instance of the Q15 PID structure.
1802 …* @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the sta…
1812 * @param[in,out] *S points to an instance of the Q31 PID Control structure
1821 * @param[in,out] *S points to an instance of the Q15 PID structure.
1822 * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the state.
1831 * @param[in,out] *S points to an instance of the q15 PID Control structure
1855 uint16_t numRows; /**< number of rows in the data table. */
1856 uint16_t numCols; /**< number of columns in the data table. */
1866 uint16_t numRows; /**< number of rows in the data table. */
1867 uint16_t numCols; /**< number of columns in the data table. */
1877 uint16_t numRows; /**< number of rows in the data table. */
1878 uint16_t numCols; /**< number of columns in the data table. */
1888 uint16_t numRows; /**< number of rows in the data table. */
1889 uint16_t numCols; /**< number of columns in the data table. */
1896 * @param[in] *pSrcA points to the first input vector
1897 * @param[in] *pSrcB points to the second input vector
1899 * @param[in] blockSize number of samples in each vector
1911 * @param[in] *pSrcA points to the first input vector
1912 * @param[in] *pSrcB points to the second input vector
1914 * @param[in] blockSize number of samples in each vector
1926 * @param[in] *pSrcA points to the first input vector
1927 * @param[in] *pSrcB points to the second input vector
1929 * @param[in] blockSize number of samples in each vector
1941 * @param[in] *pSrcA points to the first input vector
1942 * @param[in] *pSrcB points to the second input vector
1944 * @param[in] blockSize number of samples in each vector
2257 * @param[in,out] *S points to an instance of floating-point DCT4/IDCT4 structure.
2258 * @param[in] *S_RFFT points to an instance of floating-point RFFT/RIFFT structure.
2259 * @param[in] *S_CFFT points to an instance of floating-point CFFT/CIFFT structure.
2260 * @param[in] N length of the DCT4.
2261 * @param[in] Nby2 half of the length of the DCT4.
2262 * @param[in] normalize normalizing factor.
2276 …* @param[in] *S points to an instance of the floating-point DCT4/IDCT4 structure.
2277 * @param[in] *pState points to state buffer.
2278 * @param[in,out] *pInlineBuffer points to the in-place input and output buffer.
2304 * @param[in,out] *S points to an instance of Q31 DCT4/IDCT4 structure.
2305 * @param[in] *S_RFFT points to an instance of Q31 RFFT/RIFFT structure
2306 * @param[in] *S_CFFT points to an instance of Q31 CFFT/CIFFT structure
2307 * @param[in] N length of the DCT4.
2308 * @param[in] Nby2 half of the length of the DCT4.
2309 * @param[in] normalize normalizing factor.
2323 * @param[in] *S points to an instance of the Q31 DCT4 structure.
2324 * @param[in] *pState points to state buffer.
2325 * @param[in,out] *pInlineBuffer points to the in-place input and output buffer.
2351 * @param[in,out] *S points to an instance of Q15 DCT4/IDCT4 structure.
2352 * @param[in] *S_RFFT points to an instance of Q15 RFFT/RIFFT structure.
2353 * @param[in] *S_CFFT points to an instance of Q15 CFFT/CIFFT structure.
2354 * @param[in] N length of the DCT4.
2355 * @param[in] Nby2 half of the length of the DCT4.
2356 * @param[in] normalize normalizing factor.
2370 * @param[in] *S points to an instance of the Q15 DCT4 structure.
2371 * @param[in] *pState points to state buffer.
2372 * @param[in,out] *pInlineBuffer points to the in-place input and output buffer.
2383 * @param[in] *pSrcA points to the first input vector
2384 * @param[in] *pSrcB points to the second input vector
2386 * @param[in] blockSize number of samples in each vector
2398 * @param[in] *pSrcA points to the first input vector
2399 * @param[in] *pSrcB points to the second input vector
2401 * @param[in] blockSize number of samples in each vector
2413 * @param[in] *pSrcA points to the first input vector
2414 * @param[in] *pSrcB points to the second input vector
2416 * @param[in] blockSize number of samples in each vector
2428 * @param[in] *pSrcA points to the first input vector
2429 * @param[in] *pSrcB points to the second input vector
2431 * @param[in] blockSize number of samples in each vector
2443 * @param[in] *pSrcA points to the first input vector
2444 * @param[in] *pSrcB points to the second input vector
2446 * @param[in] blockSize number of samples in each vector
2458 * @param[in] *pSrcA points to the first input vector
2459 * @param[in] *pSrcB points to the second input vector
2461 * @param[in] blockSize number of samples in each vector
2473 * @param[in] *pSrcA points to the first input vector
2474 * @param[in] *pSrcB points to the second input vector
2476 * @param[in] blockSize number of samples in each vector
2488 * @param[in] *pSrcA points to the first input vector
2489 * @param[in] *pSrcB points to the second input vector
2491 * @param[in] blockSize number of samples in each vector
2503 * @param[in] *pSrc points to the input vector
2504 * @param[in] scale scale factor to be applied
2506 * @param[in] blockSize number of samples in the vector
2518 * @param[in] *pSrc points to the input vector
2519 * @param[in] scaleFract fractional portion of the scale value
2520 * @param[in] shift number of bits to shift the result by
2522 * @param[in] blockSize number of samples in the vector
2535 * @param[in] *pSrc points to the input vector
2536 * @param[in] scaleFract fractional portion of the scale value
2537 * @param[in] shift number of bits to shift the result by
2539 * @param[in] blockSize number of samples in the vector
2552 * @param[in] *pSrc points to the input vector
2553 * @param[in] scaleFract fractional portion of the scale value
2554 * @param[in] shift number of bits to shift the result by
2556 * @param[in] blockSize number of samples in the vector
2569 * @param[in] *pSrc points to the input buffer
2571 * @param[in] blockSize number of samples in each vector
2582 * @param[in] *pSrc points to the input buffer
2584 * @param[in] blockSize number of samples in each vector
2595 * @param[in] *pSrc points to the input buffer
2597 * @param[in] blockSize number of samples in each vector
2608 * @param[in] *pSrc points to the input buffer
2610 * @param[in] blockSize number of samples in each vector
2621 * @param[in] *pSrcA points to the first input vector
2622 * @param[in] *pSrcB points to the second input vector
2623 * @param[in] blockSize number of samples in each vector
2636 * @param[in] *pSrcA points to the first input vector
2637 * @param[in] *pSrcB points to the second input vector
2638 * @param[in] blockSize number of samples in each vector
2651 * @param[in] *pSrcA points to the first input vector
2652 * @param[in] *pSrcB points to the second input vector
2653 * @param[in] blockSize number of samples in each vector
2666 * @param[in] *pSrcA points to the first input vector
2667 * @param[in] *pSrcB points to the second input vector
2668 * @param[in] blockSize number of samples in each vector
2681 * @param[in] *pSrc points to the input vector
2682 …* @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value s…
2684 * @param[in] blockSize number of samples in the vector
2696 * @param[in] *pSrc points to the input vector
2697 …* @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value s…
2699 * @param[in] blockSize number of samples in the vector
2711 * @param[in] *pSrc points to the input vector
2712 …* @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative value s…
2714 * @param[in] blockSize number of samples in the vector
2726 * @param[in] *pSrc points to the input vector
2727 * @param[in] offset is the offset to be added
2729 * @param[in] blockSize number of samples in the vector
2741 * @param[in] *pSrc points to the input vector
2742 * @param[in] offset is the offset to be added
2744 * @param[in] blockSize number of samples in the vector
2756 * @param[in] *pSrc points to the input vector
2757 * @param[in] offset is the offset to be added
2759 * @param[in] blockSize number of samples in the vector
2771 * @param[in] *pSrc points to the input vector
2772 * @param[in] offset is the offset to be added
2774 * @param[in] blockSize number of samples in the vector
2786 * @param[in] *pSrc points to the input vector
2788 * @param[in] blockSize number of samples in the vector
2799 * @param[in] *pSrc points to the input vector
2801 * @param[in] blockSize number of samples in the vector
2812 * @param[in] *pSrc points to the input vector
2814 * @param[in] blockSize number of samples in the vector
2825 * @param[in] *pSrc points to the input vector
2827 * @param[in] blockSize number of samples in the vector
2837 * @param[in] *pSrc input pointer
2839 * @param[in] blockSize number of samples to process
2849 * @param[in] *pSrc input pointer
2851 * @param[in] blockSize number of samples to process
2861 * @param[in] *pSrc input pointer
2863 * @param[in] blockSize number of samples to process
2873 * @param[in] *pSrc input pointer
2875 * @param[in] blockSize number of samples to process
2884 * @param[in] value input value to be filled
2886 * @param[in] blockSize number of samples to process
2896 * @param[in] value input value to be filled
2898 * @param[in] blockSize number of samples to process
2908 * @param[in] value input value to be filled
2910 * @param[in] blockSize number of samples to process
2920 * @param[in] value input value to be filled
2922 * @param[in] blockSize number of samples to process
2932 * @param[in] *pSrcA points to the first input sequence.
2933 * @param[in] srcALen length of the first input sequence.
2934 * @param[in] *pSrcB points to the second input sequence.
2935 * @param[in] srcBLen length of the second input sequence.
2950 * @param[in] *pSrcA points to the first input sequence.
2951 * @param[in] srcALen length of the first input sequence.
2952 * @param[in] *pSrcB points to the second input sequence.
2953 * @param[in] srcBLen length of the second input sequence.
2955 …* @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, s…
2956 * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
2973 * @param[in] *pSrcA points to the first input sequence.
2974 * @param[in] srcALen length of the first input sequence.
2975 * @param[in] *pSrcB points to the second input sequence.
2976 * @param[in] srcBLen length of the second input sequence.
2990 * @param[in] *pSrcA points to the first input sequence.
2991 * @param[in] srcALen length of the first input sequence.
2992 * @param[in] *pSrcB points to the second input sequence.
2993 * @param[in] srcBLen length of the second input sequence.
3007 * @param[in] *pSrcA points to the first input sequence.
3008 * @param[in] srcALen length of the first input sequence.
3009 * @param[in] *pSrcB points to the second input sequence.
3010 * @param[in] srcBLen length of the second input sequence.
3012 …* @param[in] *pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, s…
3013 * @param[in] *pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
3030 * @param[in] *pSrcA points to the first input sequence.
3031 * @param[in] srcALen length of the first input sequence.
3032 * @param[in] *pSrcB points to the second input sequence.
3033 * @param[in] srcBLen length of the second input sequence.
3047 * @param[in] *pSrcA points to the first input sequence.
3048 * @param[in] srcALen length of the first input sequence.
3049 * @param[in] *pSrcB points to the second input sequence.
3050 * @param[in] srcBLen length of the second input sequence.
3065 * @param[in] *pSrcA points to the first input sequence.
3066 * @param[in] srcALen length of the first input sequence.
3067 * @param[in] *pSrcB points to the second input sequence.
3068 * @param[in] srcBLen length of the second input sequence.
3070 …* @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2…
3071 * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
3088 * @param[in] *pSrcA points to the first input sequence.
3089 * @param[in] srcALen length of the first input sequence.
3090 * @param[in] *pSrcB points to the second input sequence.
3091 * @param[in] srcBLen length of the second input sequence.
3106 * @param[in] *pSrcA points to the first input sequence.
3107 * @param[in] srcALen length of the first input sequence.
3108 * @param[in] *pSrcB points to the second input sequence.
3109 * @param[in] srcBLen length of the second input sequence.
3111 * @param[in] firstIndex is the first output sample to start with.
3112 * @param[in] numPoints is the number of output points to be computed.
3113 …pleted correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen…
3127 * @param[in] *pSrcA points to the first input sequence.
3128 * @param[in] srcALen length of the first input sequence.
3129 * @param[in] *pSrcB points to the second input sequence.
3130 * @param[in] srcBLen length of the second input sequence.
3132 * @param[in] firstIndex is the first output sample to start with.
3133 * @param[in] numPoints is the number of output points to be computed.
3134 …* @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcA…
3135 * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
3136 …pleted correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen…
3153 * @param[in] *pSrcA points to the first input sequence.
3154 * @param[in] srcALen length of the first input sequence.
3155 * @param[in] *pSrcB points to the second input sequence.
3156 * @param[in] srcBLen length of the second input sequence.
3158 * @param[in] firstIndex is the first output sample to start with.
3159 * @param[in] numPoints is the number of output points to be computed.
3160 …pleted correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen…
3174 * @param[in] *pSrcA points to the first input sequence.
3175 * @param[in] srcALen length of the first input sequence.
3176 * @param[in] *pSrcB points to the second input sequence.
3177 * @param[in] srcBLen length of the second input sequence.
3179 * @param[in] firstIndex is the first output sample to start with.
3180 * @param[in] numPoints is the number of output points to be computed.
3181 …pleted correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen…
3196 * @param[in] *pSrcA points to the first input sequence.
3197 * @param[in] srcALen length of the first input sequence.
3198 * @param[in] *pSrcB points to the second input sequence.
3199 * @param[in] srcBLen length of the second input sequence.
3201 * @param[in] firstIndex is the first output sample to start with.
3202 * @param[in] numPoints is the number of output points to be computed.
3203 …* @param[in] * pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcA…
3204 * @param[in] * pScratch2 points to scratch buffer of size min(srcALen, srcBLen).
3205 …pleted correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen…
3222 * @param[in] *pSrcA points to the first input sequence.
3223 * @param[in] srcALen length of the first input sequence.
3224 * @param[in] *pSrcB points to the second input sequence.
3225 * @param[in] srcBLen length of the second input sequence.
3227 * @param[in] firstIndex is the first output sample to start with.
3228 * @param[in] numPoints is the number of output points to be computed.
3229 …pleted correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen…
3244 * @param[in] *pSrcA points to the first input sequence.
3245 * @param[in] srcALen length of the first input sequence.
3246 * @param[in] *pSrcB points to the second input sequence.
3247 * @param[in] srcBLen length of the second input sequence.
3249 * @param[in] firstIndex is the first output sample to start with.
3250 * @param[in] numPoints is the number of output points to be computed.
3251 …pleted correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen…
3266 * @param[in] *pSrcA points to the first input sequence.
3267 * @param[in] srcALen length of the first input sequence.
3268 * @param[in] *pSrcB points to the second input sequence.
3269 * @param[in] srcBLen length of the second input sequence.
3271 * @param[in] firstIndex is the first output sample to start with.
3272 * @param[in] numPoints is the number of output points to be computed.
3273 …* @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2…
3274 * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
3275 …pleted correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen…
3292 * @param[in] *pSrcA points to the first input sequence.
3293 * @param[in] srcALen length of the first input sequence.
3294 * @param[in] *pSrcB points to the second input sequence.
3295 * @param[in] srcBLen length of the second input sequence.
3297 * @param[in] firstIndex is the first output sample to start with.
3298 * @param[in] numPoints is the number of output points to be computed.
3299 …pleted correctly or ARM_MATH_ARGUMENT_ERROR if the requested subset is not in the range [0 srcALen…
3320 uint16_t numTaps; /**< number of coefficients in the filter. */
3332 uint16_t numTaps; /**< number of coefficients in the filter. */
3345 uint16_t numTaps; /**< number of coefficients in the filter. */
3355 * @param[in] *S points to an instance of the floating-point FIR decimator structure.
3356 * @param[in] *pSrc points to the block of input data.
3358 * @param[in] blockSize number of input samples to process per call.
3371 * @param[in,out] *S points to an instance of the floating-point FIR decimator structure.
3372 * @param[in] numTaps number of coefficients in the filter.
3373 * @param[in] M decimation factor.
3374 * @param[in] *pCoeffs points to the filter coefficients.
3375 * @param[in] *pState points to the state buffer.
3376 * @param[in] blockSize number of input samples to process per call.
3391 * @param[in] *S points to an instance of the Q15 FIR decimator structure.
3392 * @param[in] *pSrc points to the block of input data.
3394 * @param[in] blockSize number of input samples to process per call.
3406 * @param[in] *S points to an instance of the Q15 FIR decimator structure.
3407 * @param[in] *pSrc points to the block of input data.
3409 * @param[in] blockSize number of input samples to process per call.
3423 * @param[in,out] *S points to an instance of the Q15 FIR decimator structure.
3424 * @param[in] numTaps number of coefficients in the filter.
3425 * @param[in] M decimation factor.
3426 * @param[in] *pCoeffs points to the filter coefficients.
3427 * @param[in] *pState points to the state buffer.
3428 * @param[in] blockSize number of input samples to process per call.
3443 * @param[in] *S points to an instance of the Q31 FIR decimator structure.
3444 * @param[in] *pSrc points to the block of input data.
3446 * @param[in] blockSize number of input samples to process per call.
3458 * @param[in] *S points to an instance of the Q31 FIR decimator structure.
3459 * @param[in] *pSrc points to the block of input data.
3461 * @param[in] blockSize number of input samples to process per call.
3474 * @param[in,out] *S points to an instance of the Q31 FIR decimator structure.
3475 * @param[in] numTaps number of coefficients in the filter.
3476 * @param[in] M decimation factor.
3477 * @param[in] *pCoeffs points to the filter coefficients.
3478 * @param[in] *pState points to the state buffer.
3479 * @param[in] blockSize number of input samples to process per call.
3533 * @param[in] *S points to an instance of the Q15 FIR interpolator structure.
3534 * @param[in] *pSrc points to the block of input data.
3536 * @param[in] blockSize number of input samples to process per call.
3549 * @param[in,out] *S points to an instance of the Q15 FIR interpolator structure.
3550 * @param[in] L upsample factor.
3551 * @param[in] numTaps number of filter coefficients in the filter.
3552 * @param[in] *pCoeffs points to the filter coefficient buffer.
3553 * @param[in] *pState points to the state buffer.
3554 * @param[in] blockSize number of input samples to process per call.
3569 * @param[in] *S points to an instance of the Q15 FIR interpolator structure.
3570 * @param[in] *pSrc points to the block of input data.
3572 * @param[in] blockSize number of input samples to process per call.
3584 * @param[in,out] *S points to an instance of the Q31 FIR interpolator structure.
3585 * @param[in] L upsample factor.
3586 * @param[in] numTaps number of filter coefficients in the filter.
3587 * @param[in] *pCoeffs points to the filter coefficient buffer.
3588 * @param[in] *pState points to the state buffer.
3589 * @param[in] blockSize number of input samples to process per call.
3605 * @param[in] *S points to an instance of the floating-point FIR interpolator structure.
3606 * @param[in] *pSrc points to the block of input data.
3608 * @param[in] blockSize number of input samples to process per call.
3620 … * @param[in,out] *S points to an instance of the floating-point FIR interpolator structure.
3621 * @param[in] L upsample factor.
3622 * @param[in] numTaps number of filter coefficients in the filter.
3623 * @param[in] *pCoeffs points to the filter coefficient buffer.
3624 * @param[in] *pState points to the state buffer.
3625 * @param[in] blockSize number of input samples to process per call.
3644 …uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numSta…
3647 uint8_t postShift; /**< additional shift, in bits, applied to each output sample. */
3653 …* @param[in] *S points to an instance of the high precision Q31 Biquad cascade filter stru…
3654 * @param[in] *pSrc points to the block of input data.
3656 * @param[in] blockSize number of samples to process.
3668 …* @param[in,out] *S points to an instance of the high precision Q31 Biquad cascade filte…
3669 * @param[in] numStages number of 2nd order stages in the filter.
3670 * @param[in] *pCoeffs points to the filter coefficients.
3671 * @param[in] *pState points to the state buffer.
3672 …* @param[in] postShift shift to be applied to the output. Varies according to the coefficie…
3691 …uint8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 2*numS…
3699 * @param[in] *S points to an instance of the filter data structure.
3700 * @param[in] *pSrc points to the block of input data.
3702 * @param[in] blockSize number of samples to process.
3715 * @param[in,out] *S points to an instance of the filter data structure.
3716 * @param[in] numStages number of 2nd order stages in the filter.
3717 * @param[in] *pCoeffs points to the filter coefficients.
3718 * @param[in] *pState points to the state buffer.
3765 * @param[in] *S points to an instance of the Q15 FIR lattice structure.
3766 * @param[in] numStages number of filter stages.
3767 * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages.
3768 * @param[in] *pState points to the state buffer. The array is of length numStages.
3781 * @param[in] *S points to an instance of the Q15 FIR lattice structure.
3782 * @param[in] *pSrc points to the block of input data.
3784 * @param[in] blockSize number of samples to process.
3795 * @param[in] *S points to an instance of the Q31 FIR lattice structure.
3796 * @param[in] numStages number of filter stages.
3797 * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages.
3798 * @param[in] *pState points to the state buffer. The array is of length numStages.
3811 * @param[in] *S points to an instance of the Q31 FIR lattice structure.
3812 * @param[in] *pSrc points to the block of input data.
3814 * @param[in] blockSize number of samples to process.
3826 * @param[in] *S points to an instance of the floating-point FIR lattice structure.
3827 * @param[in] numStages number of filter stages.
3828 * @param[in] *pCoeffs points to the coefficient buffer. The array is of length numStages.
3829 * @param[in] *pState points to the state buffer. The array is of length numStages.
3841 * @param[in] *S points to an instance of the floating-point FIR lattice structure.
3842 * @param[in] *pSrc points to the block of input data.
3844 * @param[in] blockSize number of samples to process.
3859 uint16_t numStages; /**< number of stages in the filter. */
3870 uint16_t numStages; /**< number of stages in the filter. */
3881 uint16_t numStages; /**< number of stages in the filter. */
3889 * @param[in] *S points to an instance of the floating-point IIR lattice structure.
3890 * @param[in] *pSrc points to the block of input data.
3892 * @param[in] blockSize number of samples to process.
3904 * @param[in] *S points to an instance of the floating-point IIR lattice structure.
3905 * @param[in] numStages number of stages in the filter.
3906 …* @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numSta…
3907 …* @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+…
3908 * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize-1.
3909 * @param[in] blockSize number of samples to process.
3924 * @param[in] *S points to an instance of the Q31 IIR lattice structure.
3925 * @param[in] *pSrc points to the block of input data.
3927 * @param[in] blockSize number of samples to process.
3940 * @param[in] *S points to an instance of the Q31 IIR lattice structure.
3941 * @param[in] numStages number of stages in the filter.
3942 …* @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numSta…
3943 …* @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+…
3944 * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize.
3945 * @param[in] blockSize number of samples to process.
3960 * @param[in] *S points to an instance of the Q15 IIR lattice structure.
3961 * @param[in] *pSrc points to the block of input data.
3963 * @param[in] blockSize number of samples to process.
3976 * @param[in] *S points to an instance of the fixed-point Q15 IIR lattice structure.
3977 * @param[in] numStages number of stages in the filter.
3978 * @param[in] *pkCoeffs points to reflection coefficient buffer. The array is of length numStages.
3979 * @param[in] *pvCoeffs points to ladder coefficient buffer. The array is of length numStages+1.
3980 * @param[in] *pState points to state buffer. The array is of length numStages+blockSize.
3981 * @param[in] blockSize number of samples to process per call.
3999 uint16_t numTaps; /**< number of coefficients in the filter. */
4007 * @param[in] *S points to an instance of the floating-point LMS filter structure.
4008 * @param[in] *pSrc points to the block of input data.
4009 * @param[in] *pRef points to the block of reference data.
4012 * @param[in] blockSize number of samples to process.
4026 * @param[in] *S points to an instance of the floating-point LMS filter structure.
4027 * @param[in] numTaps number of filter coefficients.
4028 * @param[in] *pCoeffs points to the coefficient buffer.
4029 * @param[in] *pState points to state buffer.
4030 * @param[in] mu step size that controls filter coefficient updates.
4031 * @param[in] blockSize number of samples to process.
4049 uint16_t numTaps; /**< number of coefficients in the filter. */
4059 * @param[in] *S points to an instance of the Q15 LMS filter structure.
4060 * @param[in] numTaps number of filter coefficients.
4061 * @param[in] *pCoeffs points to the coefficient buffer.
4062 * @param[in] *pState points to the state buffer.
4063 * @param[in] mu step size that controls filter coefficient updates.
4064 * @param[in] blockSize number of samples to process.
4065 * @param[in] postShift bit shift applied to coefficients.
4080 * @param[in] *S points to an instance of the Q15 LMS filter structure.
4081 * @param[in] *pSrc points to the block of input data.
4082 * @param[in] *pRef points to the block of reference data.
4085 * @param[in] blockSize number of samples to process.
4104 uint16_t numTaps; /**< number of coefficients in the filter. */
4114 * @param[in] *S points to an instance of the Q15 LMS filter structure.
4115 * @param[in] *pSrc points to the block of input data.
4116 * @param[in] *pRef points to the block of reference data.
4119 * @param[in] blockSize number of samples to process.
4133 * @param[in] *S points to an instance of the Q31 LMS filter structure.
4134 * @param[in] numTaps number of filter coefficients.
4135 * @param[in] *pCoeffs points to coefficient buffer.
4136 * @param[in] *pState points to state buffer.
4137 * @param[in] mu step size that controls filter coefficient updates.
4138 * @param[in] blockSize number of samples to process.
4139 * @param[in] postShift bit shift applied to coefficients.
4158 uint16_t numTaps; /**< number of coefficients in the filter. */
4168 * @param[in] *S points to an instance of the floating-point normalized LMS filter structure.
4169 * @param[in] *pSrc points to the block of input data.
4170 * @param[in] *pRef points to the block of reference data.
4173 * @param[in] blockSize number of samples to process.
4187 * @param[in] *S points to an instance of the floating-point LMS filter structure.
4188 * @param[in] numTaps number of filter coefficients.
4189 * @param[in] *pCoeffs points to coefficient buffer.
4190 * @param[in] *pState points to state buffer.
4191 * @param[in] mu step size that controls filter coefficient updates.
4192 * @param[in] blockSize number of samples to process.
4210 uint16_t numTaps; /**< number of coefficients in the filter. */
4222 * @param[in] *S points to an instance of the Q31 normalized LMS filter structure.
4223 * @param[in] *pSrc points to the block of input data.
4224 * @param[in] *pRef points to the block of reference data.
4227 * @param[in] blockSize number of samples to process.
4241 * @param[in] *S points to an instance of the Q31 normalized LMS filter structure.
4242 * @param[in] numTaps number of filter coefficients.
4243 * @param[in] *pCoeffs points to coefficient buffer.
4244 * @param[in] *pState points to state buffer.
4245 * @param[in] mu step size that controls filter coefficient updates.
4246 * @param[in] blockSize number of samples to process.
4247 * @param[in] postShift bit shift applied to coefficients.
4266 uint16_t numTaps; /**< Number of coefficients in the filter. */
4278 * @param[in] *S points to an instance of the Q15 normalized LMS filter structure.
4279 * @param[in] *pSrc points to the block of input data.
4280 * @param[in] *pRef points to the block of reference data.
4283 * @param[in] blockSize number of samples to process.
4298 * @param[in] *S points to an instance of the Q15 normalized LMS filter structure.
4299 * @param[in] numTaps number of filter coefficients.
4300 * @param[in] *pCoeffs points to coefficient buffer.
4301 * @param[in] *pState points to state buffer.
4302 * @param[in] mu step size that controls filter coefficient updates.
4303 * @param[in] blockSize number of samples to process.
4304 * @param[in] postShift bit shift applied to coefficients.
4319 * @param[in] *pSrcA points to the first input sequence.
4320 * @param[in] srcALen length of the first input sequence.
4321 * @param[in] *pSrcB points to the second input sequence.
4322 * @param[in] srcBLen length of the second input sequence.
4337 * @param[in] *pSrcA points to the first input sequence.
4338 * @param[in] srcALen length of the first input sequence.
4339 * @param[in] *pSrcB points to the second input sequence.
4340 * @param[in] srcBLen length of the second input sequence.
4342 …* @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, sr…
4356 * @param[in] *pSrcA points to the first input sequence.
4357 * @param[in] srcALen length of the first input sequence.
4358 * @param[in] *pSrcB points to the second input sequence.
4359 * @param[in] srcBLen length of the second input sequence.
4373 * @param[in] *pSrcA points to the first input sequence.
4374 * @param[in] srcALen length of the first input sequence.
4375 * @param[in] *pSrcB points to the second input sequence.
4376 * @param[in] srcBLen length of the second input sequence.
4392 * @param[in] *pSrcA points to the first input sequence.
4393 * @param[in] srcALen length of the first input sequence.
4394 * @param[in] *pSrcB points to the second input sequence.
4395 * @param[in] srcBLen length of the second input sequence.
4397 …* @param[in] *pScratch points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, sr…
4411 * @param[in] *pSrcA points to the first input sequence.
4412 * @param[in] srcALen length of the first input sequence.
4413 * @param[in] *pSrcB points to the second input sequence.
4414 * @param[in] srcBLen length of the second input sequence.
4428 * @param[in] *pSrcA points to the first input sequence.
4429 * @param[in] srcALen length of the first input sequence.
4430 * @param[in] *pSrcB points to the second input sequence.
4431 * @param[in] srcBLen length of the second input sequence.
4447 * @param[in] *pSrcA points to the first input sequence.
4448 * @param[in] srcALen length of the first input sequence.
4449 * @param[in] *pSrcB points to the second input sequence.
4450 * @param[in] srcBLen length of the second input sequence.
4452 …* @param[in] *pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 2…
4453 * @param[in] *pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen).
4469 * @param[in] *pSrcA points to the first input sequence.
4470 * @param[in] srcALen length of the first input sequence.
4471 * @param[in] *pSrcB points to the second input sequence.
4472 * @param[in] srcBLen length of the second input sequence.
4490 uint16_t numTaps; /**< number of coefficients in the filter. */
4491 …uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state b…
4504 uint16_t numTaps; /**< number of coefficients in the filter. */
4505 …uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state b…
4518 uint16_t numTaps; /**< number of coefficients in the filter. */
4519 …uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state b…
4532 uint16_t numTaps; /**< number of coefficients in the filter. */
4533 …uint16_t stateIndex; /**< state buffer index. Points to the oldest sample in the state b…
4542 * @param[in] *S points to an instance of the floating-point sparse FIR structure.
4543 * @param[in] *pSrc points to the block of input data.
4545 * @param[in] *pScratchIn points to a temporary buffer of size blockSize.
4546 * @param[in] blockSize number of input samples to process per call.
4559 * @param[in,out] *S points to an instance of the floating-point sparse FIR structure.
4560 * @param[in] numTaps number of nonzero coefficients in the filter.
4561 * @param[in] *pCoeffs points to the array of filter coefficients.
4562 * @param[in] *pState points to the state buffer.
4563 * @param[in] *pTapDelay points to the array of offset times.
4564 * @param[in] maxDelay maximum offset time supported.
4565 * @param[in] blockSize number of samples that will be processed per block.
4580 * @param[in] *S points to an instance of the Q31 sparse FIR structure.
4581 * @param[in] *pSrc points to the block of input data.
4583 * @param[in] *pScratchIn points to a temporary buffer of size blockSize.
4584 * @param[in] blockSize number of input samples to process per call.
4597 * @param[in,out] *S points to an instance of the Q31 sparse FIR structure.
4598 * @param[in] numTaps number of nonzero coefficients in the filter.
4599 * @param[in] *pCoeffs points to the array of filter coefficients.
4600 * @param[in] *pState points to the state buffer.
4601 * @param[in] *pTapDelay points to the array of offset times.
4602 * @param[in] maxDelay maximum offset time supported.
4603 * @param[in] blockSize number of samples that will be processed per block.
4618 * @param[in] *S points to an instance of the Q15 sparse FIR structure.
4619 * @param[in] *pSrc points to the block of input data.
4621 * @param[in] *pScratchIn points to a temporary buffer of size blockSize.
4622 * @param[in] *pScratchOut points to a temporary buffer of size blockSize.
4623 * @param[in] blockSize number of input samples to process per call.
4638 * @param[in,out] *S points to an instance of the Q15 sparse FIR structure.
4639 * @param[in] numTaps number of nonzero coefficients in the filter.
4640 * @param[in] *pCoeffs points to the array of filter coefficients.
4641 * @param[in] *pState points to the state buffer.
4642 * @param[in] *pTapDelay points to the array of offset times.
4643 * @param[in] maxDelay maximum offset time supported.
4644 * @param[in] blockSize number of samples that will be processed per block.
4659 * @param[in] *S points to an instance of the Q7 sparse FIR structure.
4660 * @param[in] *pSrc points to the block of input data.
4662 * @param[in] *pScratchIn points to a temporary buffer of size blockSize.
4663 * @param[in] *pScratchOut points to a temporary buffer of size blockSize.
4664 * @param[in] blockSize number of input samples to process per call.
4678 * @param[in,out] *S points to an instance of the Q7 sparse FIR structure.
4679 * @param[in] numTaps number of nonzero coefficients in the filter.
4680 * @param[in] *pCoeffs points to the array of filter coefficients.
4681 * @param[in] *pState points to the state buffer.
4682 * @param[in] *pTapDelay points to the array of offset times.
4683 * @param[in] maxDelay maximum offset time supported.
4684 * @param[in] blockSize number of samples that will be processed per block.
4700 * @param[in] theta input value in degrees
4713 * @param[in] theta scaled input value in degrees
4727 * @param[in] *pSrc points to the input vector
4729 * @param[in] numSamples number of complex samples in each vector
4740 * @param[in] *pSrc points to the input vector
4742 * @param[in] numSamples number of complex samples in each vector
4753 * @param[in] *pSrc points to the input vector
4755 * @param[in] numSamples number of complex samples in each vector
4768 * @param[in] *pSrc points to the complex input vector
4770 * @param[in] numSamples number of complex samples in the input vector
4781 * @param[in] *pSrc points to the complex input vector
4783 * @param[in] numSamples number of complex samples in the input vector
4794 * @param[in] *pSrc points to the complex input vector
4796 * @param[in] numSamples number of complex samples in the input vector
4814 * loop mechanism widely used in industrial control systems.
4820 * <code>S</code> points to an instance of the PID control data structure. <code>in</code>
4845 …* The Gains A0, A1, A2 and state variables for a PID controller are stored together in an instance…
4856 * - Zeros out the values in the state buffer.
4863 …* In particular, the overflow and saturation behavior of the accumulator used in each function mus…
4874 * @param[in,out] *S is an instance of the floating-point PID Control structure
4875 * @param[in] in input sample to process
4882 float32_t in) in arm_pid_f32() argument
4887 out = (S->A0 * in) + in arm_pid_f32()
4892 S->state[0] = in; in arm_pid_f32()
4902 * @param[in,out] *S points to an instance of the Q31 PID Control structure
4903 * @param[in] in input sample to process
4911 …* In order to avoid overflows completely the input signal must be scaled down by 2 bits as there a…
4917 q31_t in) in arm_pid_q31() argument
4923 acc = (q63_t) S->A0 * in; in arm_pid_q31()
4939 S->state[0] = in; in arm_pid_q31()
4949 * @param[in,out] *S points to an instance of the Q15 PID Control structure
4950 * @param[in] in input sample to process
4956 …* Both Gains and state variables are represented in 1.15 format and multiplications yield a 2.30 r…
4957 * The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format.
4960 * Lastly, the accumulator is saturated to yield a result in 1.15 format.
4965 q15_t in) in arm_pid_q15() argument
4976 acc = (q31_t) __SMUAD(S->A0, in); in arm_pid_q15()
4984 acc = ((q31_t) S->A0) * in; in arm_pid_q15()
5000 S->state[0] = in; in arm_pid_q15()
5015 * @param[in] *src points to the instance of the input floating-point matrix structure.
5036 * in the two-phase orthogonal stator axis <code>Ialpha</code> and <code>Ibeta</code>.
5037 * When <code>Ialpha</code> is superposed with <code>Ia</code> as shown in the figure below
5038 * \image html clarke.gif Stator current space vector and its components in (a,b).
5039 * and <code>Ia + Ib + Ic = 0</code>, in this condition <code>Ialpha</code> and <code>Ibeta</code>
5050 * In particular, the overflow and saturation behavior of the accumulator used must be considered.
5062 * @param[in] Ia input three-phase coordinate <code>a</code>
5063 * @param[in] Ib input three-phase coordinate <code>b</code>
5086 * @param[in] Ia input three-phase coordinate <code>a</code>
5087 * @param[in] Ib input three-phase coordinate <code>b</code>
5095 …aintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format.
5126 * @param[in] *pSrc input pointer
5128 * @param[in] blockSize number of samples to process
5155 * In particular, the overflow and saturation behavior of the accumulator used must be considered.
5166 * @param[in] Ialpha input two-phase orthogonal vector axis alpha
5167 * @param[in] Ibeta input two-phase orthogonal vector axis beta
5190 * @param[in] Ialpha input two-phase orthogonal vector axis alpha
5191 * @param[in] Ibeta input two-phase orthogonal vector axis beta
5199 …aintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format.
5231 * @param[in] *pSrc input pointer
5233 * @param[in] blockSize number of samples to process
5256 …* \image html park.gif "Stator current space vector and its component in (a,b) and in the d,q rota…
5267 * In particular, the overflow and saturation behavior of the accumulator used must be considered.
5278 * @param[in] Ialpha input two-phase vector coordinate alpha
5279 * @param[in] Ibeta input two-phase vector coordinate beta
5282 * @param[in] sinVal sine value of rotation angle theta
5283 * @param[in] cosVal cosine value of rotation angle theta
5308 * @param[in] Ialpha input two-phase vector coordinate alpha
5309 * @param[in] Ibeta input two-phase vector coordinate beta
5312 * @param[in] sinVal sine value of rotation angle theta
5313 * @param[in] cosVal cosine value of rotation angle theta
5319 …aintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format.
5361 * @param[in] *pSrc is input pointer
5363 * @param[in] blockSize is the number of samples to process
5389 * In particular, the overflow and saturation behavior of the accumulator used must be considered.
5400 * @param[in] Id input coordinate of rotor reference frame d
5401 * @param[in] Iq input coordinate of rotor reference frame q
5404 * @param[in] sinVal sine value of rotation angle theta
5405 * @param[in] cosVal cosine value of rotation angle theta
5428 * @param[in] Id input coordinate of rotor reference frame d
5429 * @param[in] Iq input coordinate of rotor reference frame q
5432 * @param[in] sinVal sine value of rotation angle theta
5433 * @param[in] cosVal cosine value of rotation angle theta
5439 …aintains 1.31 format by truncating lower 31 bits of the intermediate multiplication in 2.62 format.
5483 * @param[in] *pSrc is input pointer
5485 * @param[in] blockSize is the number of samples to process
5536 * @param[in,out] *S is an instance of the floating-point Linear Interpolation structure
5537 * @param[in] x input sample to process
5589 * @param[in] *pYData pointer to Q31 Linear Interpolation table
5590 * @param[in] x input sample to process
5591 * @param[in] nValues number of table values
5595 …* Input sample <code>x</code> is in 12.20 format which contains 12 bits for table index and 20 bit…
5611 /* Input is in 12.20 format */ in arm_linear_interp_q31()
5628 /* shift left by 11 to keep fract in 1.31 format */ in arm_linear_interp_q31()
5631 /* Read two nearest output values from the index in 1.31(q31) format */ in arm_linear_interp_q31()
5635 /* Calculation of y0 * (1-fract) and y is in 2.30 format */ in arm_linear_interp_q31()
5638 /* Calculation of y0 * (1-fract) + y1 *fract and y is in 2.30 format */ in arm_linear_interp_q31()
5651 * @param[in] *pYData pointer to Q15 Linear Interpolation table
5652 * @param[in] x input sample to process
5653 * @param[in] nValues number of table values
5657 …* Input sample <code>x</code> is in 12.20 format which contains 12 bits for table index and 20 bit…
5673 /* Input is in 12.20 format */ in arm_linear_interp_q15()
5689 /* fract is in 12.20 format */ in arm_linear_interp_q15()
5696 /* Calculation of y0 * (1-fract) and y is in 13.35 format */ in arm_linear_interp_q15()
5699 /* Calculation of (y0 * (1-fract) + y1 * fract) and y is in 13.35 format */ in arm_linear_interp_q15()
5712 * @param[in] *pYData pointer to Q7 Linear Interpolation table
5713 * @param[in] x input sample to process
5714 * @param[in] nValues number of table values
5718 …* Input sample <code>x</code> is in 12.20 format which contains 12 bits for table index and 20 bit…
5733 /* Input is in 12.20 format */ in arm_linear_interp_q7()
5751 /* fract is in 12.20 format */ in arm_linear_interp_q7()
5754 /* Read two nearest output values from the index and are in 1.7(q7) format */ in arm_linear_interp_q7()
5758 /* Calculation of y0 * (1-fract ) and y is in 13.27(q27) format */ in arm_linear_interp_q7()
5761 /* Calculation of y1 * fract + y0 * (1-fract) and y is in 13.27(q27) format */ in arm_linear_interp_q7()
5776 * @param[in] x input value in radians.
5785 * @param[in] x Scaled input value in radians.
5794 * @param[in] x Scaled input value in radians.
5803 * @param[in] x input value in radians.
5812 * @param[in] x Scaled input value in radians.
5821 * @param[in] x Scaled input value in radians.
5849 * x0 = in/2 [initial guess]
5850 * x1 = 1/2 * ( x0 + in / x0) [each iteration]
5862 * @param[in] in input value.
5865 * <code>in</code> is negative value and returns zero output for negative values.
5869 float32_t in, in arm_sqrt_f32() argument
5872 if(in > 0) in arm_sqrt_f32()
5877 *pOut = __sqrtf(in); in arm_sqrt_f32()
5879 *pOut = sqrtf(in); in arm_sqrt_f32()
5895 …* @param[in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFF…
5898 * <code>in</code> is negative value and returns zero output for negative values.
5901 q31_t in,
5906 * @param[in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF.
5909 * <code>in</code> is negative value and returns zero output for negative values.
5912 q15_t in,
6230 * @param[in] *pSrc is input pointer
6231 * @param[in] blockSize is the number of samples to process
6243 * @param[in] *pSrc is input pointer
6244 * @param[in] blockSize is the number of samples to process
6256 * @param[in] *pSrc is input pointer
6257 * @param[in] blockSize is the number of samples to process
6269 * @param[in] *pSrc is input pointer
6270 * @param[in] blockSize is the number of samples to process
6282 * @param[in] *pSrc is input pointer
6283 * @param[in] blockSize is the number of samples to process
6295 * @param[in] *pSrc is input pointer
6296 * @param[in] blockSize is the number of samples to process
6307 * @param[in] *pSrc is input pointer
6308 * @param[in] blockSize is the number of samples to process
6319 * @param[in] *pSrc is input pointer
6320 * @param[in] blockSize is the number of samples to process
6331 * @param[in] *pSrc is input pointer
6332 * @param[in] blockSize is the number of samples to process
6344 * @param[in] *pSrc is input pointer
6345 * @param[in] blockSize is the number of samples to process
6357 * @param[in] *pSrc is input pointer
6358 * @param[in] blockSize is the number of samples to process
6370 * @param[in] *pSrc is input pointer
6371 * @param[in] blockSize is the number of samples to process
6383 * @param[in] *pSrc is input pointer
6384 * @param[in] blockSize is the number of samples to process
6396 * @param[in] *pSrc is input pointer
6397 * @param[in] blockSize is the number of samples to process
6409 * @param[in] *pSrc is input pointer
6410 * @param[in] blockSize is the number of samples to process
6422 * @param[in] *pSrc is input pointer
6423 * @param[in] blockSize is the number of samples to process
6435 * @param[in] *pSrc is input pointer
6436 * @param[in] blockSize is the number of samples to process
6448 * @param[in] *pSrc points to the complex input vector
6450 * @param[in] numSamples number of complex samples in the input vector
6461 * @param[in] *pSrc points to the complex input vector
6463 * @param[in] numSamples number of complex samples in the input vector
6474 * @param[in] *pSrc points to the complex input vector
6476 * @param[in] numSamples number of complex samples in the input vector
6487 * @param[in] *pSrcA points to the first input vector
6488 * @param[in] *pSrcB points to the second input vector
6489 * @param[in] numSamples number of complex samples in each vector
6504 * @param[in] *pSrcA points to the first input vector
6505 * @param[in] *pSrcB points to the second input vector
6506 * @param[in] numSamples number of complex samples in each vector
6521 * @param[in] *pSrcA points to the first input vector
6522 * @param[in] *pSrcB points to the second input vector
6523 * @param[in] numSamples number of complex samples in each vector
6538 * @param[in] *pSrcCmplx points to the complex input vector
6539 * @param[in] *pSrcReal points to the real input vector
6541 * @param[in] numSamples number of samples in each vector
6553 * @param[in] *pSrcCmplx points to the complex input vector
6554 * @param[in] *pSrcReal points to the real input vector
6556 * @param[in] numSamples number of samples in each vector
6568 * @param[in] *pSrcCmplx points to the complex input vector
6569 * @param[in] *pSrcReal points to the real input vector
6571 * @param[in] numSamples number of samples in each vector
6583 * @param[in] *pSrc is input pointer
6584 * @param[in] blockSize is the number of samples to process
6586 * @param[in] index is the array index of the minimum value in the input buffer.
6598 * @param[in] *pSrc is input pointer
6599 * @param[in] blockSize is the number of samples to process
6601 * @param[in] *pIndex is the array index of the minimum value in the input buffer.
6613 * @param[in] *pSrc is input pointer
6614 * @param[in] blockSize is the number of samples to process
6616 * @param[out] *pIndex is the array index of the minimum value in the input buffer.
6627 * @param[in] *pSrc is input pointer
6628 * @param[in] blockSize is the number of samples to process
6630 * @param[out] *pIndex is the array index of the minimum value in the input buffer.
6642 * @param[in] *pSrc points to the input buffer
6643 * @param[in] blockSize length of the input vector
6657 * @param[in] *pSrc points to the input buffer
6658 * @param[in] blockSize length of the input vector
6672 * @param[in] *pSrc points to the input buffer
6673 * @param[in] blockSize length of the input vector
6687 * @param[in] *pSrc points to the input buffer
6688 * @param[in] blockSize length of the input vector
6702 * @param[in] *pSrcA points to the first input vector
6703 * @param[in] *pSrcB points to the second input vector
6705 * @param[in] numSamples number of complex samples in each vector
6717 * @param[in] *pSrcA points to the first input vector
6718 * @param[in] *pSrcB points to the second input vector
6720 * @param[in] numSamples number of complex samples in each vector
6732 * @param[in] *pSrcA points to the first input vector
6733 * @param[in] *pSrcB points to the second input vector
6735 * @param[in] numSamples number of complex samples in each vector
6747 * @param[in] *pSrc points to the floating-point input vector
6749 * @param[in] blockSize length of the input vector
6759 * @param[in] *pSrc points to the floating-point input vector
6761 * @param[in] blockSize length of the input vector
6771 * @param[in] *pSrc points to the floating-point input vector
6773 * @param[in] blockSize length of the input vector
6784 * @param[in] *pSrc is input pointer
6786 * @param[in] blockSize is the number of samples to process
6796 * @param[in] *pSrc is input pointer
6798 * @param[in] blockSize is the number of samples to process
6808 * @param[in] *pSrc is input pointer
6810 * @param[in] blockSize is the number of samples to process
6821 * @param[in] *pSrc is input pointer
6823 * @param[in] blockSize is the number of samples to process
6834 * @param[in] *pSrc is input pointer
6836 * @param[in] blockSize is the number of samples to process
6855 …lation is equivalent to two step linear interpolation, first in the x-dimension and then in the y-…
6856 * Bilinear interpolation is often used in image processing to rescale images.
6873 * where <code>numRows</code> specifies the number of rows in the table;
6874 * <code>numCols</code> specifies the number of columns in the table;
6876 …* The data table <code>pTable</code> is organized in row order and the supplied data values fall o…
6909 * @param[in,out] *S points to an instance of the interpolation structure.
6910 * @param[in] X interpolation coordinate.
6911 * @param[in] Y interpolation coordinate.
6939 /* Calculation of index for two nearest points in X-direction */ in arm_bilinear_interp_f32()
6943 /* Read two nearest points in X-direction */ in arm_bilinear_interp_f32()
6947 /* Calculation of index for two nearest points in Y-direction */ in arm_bilinear_interp_f32()
6951 /* Read two nearest points in Y-direction */ in arm_bilinear_interp_f32()
6961 /* Calculation of fractional part in X */ in arm_bilinear_interp_f32()
6964 /* Calculation of fractional part in Y */ in arm_bilinear_interp_f32()
6978 * @param[in,out] *S points to an instance of the interpolation structure.
6979 * @param[in] X interpolation coordinate in 12.20 format.
6980 * @param[in] Y interpolation coordinate in 12.20 format.
6998 /* Input is in 12.20 format */ in arm_bilinear_interp_q31()
7003 /* Input is in 12.20 format */ in arm_bilinear_interp_q31()
7031 /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 3.29(q29) format */ in arm_bilinear_interp_q31()
7035 /* x2 * (xfract) * (1-yfract) in 3.29(q29) and adding to acc */ in arm_bilinear_interp_q31()
7039 /* y1 * (1 - xfract) * (yfract) in 3.29(q29) and adding to acc */ in arm_bilinear_interp_q31()
7043 /* y2 * (xfract) * (yfract) in 3.29(q29) and adding to acc */ in arm_bilinear_interp_q31()
7054 * @param[in,out] *S points to an instance of the interpolation structure.
7055 * @param[in] X interpolation coordinate in 12.20 format.
7056 * @param[in] Y interpolation coordinate in 12.20 format.
7073 /* Input is in 12.20 format */ in arm_bilinear_interp_q15()
7078 /* Input is in 12.20 format */ in arm_bilinear_interp_q15()
7091 /* xfract should be in 12.20 format */ in arm_bilinear_interp_q15()
7100 /* yfract should be in 12.20 format */ in arm_bilinear_interp_q15()
7107 /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 13.51 format */ in arm_bilinear_interp_q15()
7109 /* x1 is in 1.15(q15), xfract in 12.20 format and out is in 13.35 format */ in arm_bilinear_interp_q15()
7110 /* convert 13.35 to 13.31 by right shifting and out is in 1.31 */ in arm_bilinear_interp_q15()
7114 /* x2 * (xfract) * (1-yfract) in 1.51 and adding to acc */ in arm_bilinear_interp_q15()
7118 /* y1 * (1 - xfract) * (yfract) in 1.51 and adding to acc */ in arm_bilinear_interp_q15()
7122 /* y2 * (xfract) * (yfract) in 1.51 and adding to acc */ in arm_bilinear_interp_q15()
7126 /* acc is in 13.51 format and down shift acc by 36 times */ in arm_bilinear_interp_q15()
7134 * @param[in,out] *S points to an instance of the interpolation structure.
7135 * @param[in] X interpolation coordinate in 12.20 format.
7136 * @param[in] Y interpolation coordinate in 12.20 format.
7153 /* Input is in 12.20 format */ in arm_bilinear_interp_q7()
7158 /* Input is in 12.20 format */ in arm_bilinear_interp_q7()
7171 /* xfract should be in 12.20 format */ in arm_bilinear_interp_q7()
7180 /* yfract should be in 12.20 format */ in arm_bilinear_interp_q7()
7187 /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 16.47 format */ in arm_bilinear_interp_q7()
7191 /* x2 * (xfract) * (1-yfract) in 2.22 and adding to acc */ in arm_bilinear_interp_q7()
7195 /* y1 * (1 - xfract) * (yfract) in 2.22 and adding to acc */ in arm_bilinear_interp_q7()
7199 /* y2 * (xfract) * (yfract) in 2.22 and adding to acc */ in arm_bilinear_interp_q7()
7203 /* acc in 16.47 format and down shift by 40 to convert to 1.7 format */ in arm_bilinear_interp_q7()