arm_math.h
Go to the documentation of this file.
1 /******************************************************************************
2  * @file arm_math.h
3  * @brief Public header file for CMSIS DSP Library
4  * @version V1.6.0
5  * @date 18. March 2019
6  ******************************************************************************/
7 /*
8  * Copyright (c) 2010-2019 Arm Limited or its affiliates. All rights reserved.
9  *
10  * SPDX-License-Identifier: Apache-2.0
11  *
12  * Licensed under the Apache License, Version 2.0 (the License); you may
13  * not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  * www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing, software
19  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  * See the License for the specific language governing permissions and
22  * limitations under the License.
23  */
24 
279 #ifndef _ARM_MATH_H
280 #define _ARM_MATH_H
281 
282 /* Compiler specific diagnostic adjustment */
283 #if defined ( __CC_ARM )
284 
285 #elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 )
286 
287 #elif defined ( __GNUC__ )
288  #pragma GCC diagnostic push
289  #pragma GCC diagnostic ignored "-Wsign-conversion"
290  #pragma GCC diagnostic ignored "-Wconversion"
291  #pragma GCC diagnostic ignored "-Wunused-parameter"
292 
293 #elif defined ( __ICCARM__ )
294 
295 #elif defined ( __TI_ARM__ )
296 
297 #elif defined ( __CSMC__ )
298 
299 #elif defined ( __TASKING__ )
300 
301 #elif defined ( _MSC_VER )
302 
303 #else
304  #error Unknown compiler
305 #endif
306 
307 
308 /* Included for instrinsics definitions */
309 #if !defined ( _MSC_VER )
310 #include "cmsis_compiler.h"
311 #else
312 #include <stdint.h>
313 #define __STATIC_FORCEINLINE static __forceinline
314 #define __ALIGNED(x) __declspec(align(x))
315 #define LOW_OPTIMIZATION_ENTER
316 #define LOW_OPTIMIZATION_EXIT
317 #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
318 #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
319 #endif
320 
321 #include "string.h"
322 #include "math.h"
323 #include "float.h"
324 
325 /* evaluate ARM DSP feature */
326 #if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1))
327  #define ARM_MATH_DSP 1
328 #endif
329 
330 #if defined(__ARM_NEON)
331 #include <arm_neon.h>
332 #endif
333 
334 
335 #ifdef __cplusplus
336 extern "C"
337 {
338 #endif
339 
340 
345 #define DELTA_Q31 (0x100)
346 #define DELTA_Q15 0x5
347 #define INDEX_MASK 0x0000003F
348 #ifndef PI
349  #define PI 3.14159265358979f
350 #endif
351 
356 #define FAST_MATH_TABLE_SIZE 512
357 #define FAST_MATH_Q31_SHIFT (32 - 10)
358 #define FAST_MATH_Q15_SHIFT (16 - 10)
359 #define CONTROLLER_Q31_SHIFT (32 - 9)
360 #define TABLE_SPACING_Q31 0x400000
361 #define TABLE_SPACING_Q15 0x80
362 
366  /* 1.31(q31) Fixed value of 2/360 */
367  /* -1 to +1 is divided into 360 values so total spacing is (2/360) */
368 #define INPUT_SPACING 0xB60B61
369 
370 
375  typedef enum
376  {
384  } arm_status;
385 
389  typedef int8_t q7_t;
390 
394  typedef int16_t q15_t;
395 
399  typedef int32_t q31_t;
400 
404  typedef int64_t q63_t;
405 
409  typedef float float32_t;
410 
414  typedef double float64_t;
415 
416 
421 #if defined ( __CC_ARM )
422  #define __SIMD32_TYPE int32_t __packed
423 #elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 )
424  #define __SIMD32_TYPE int32_t
425 #elif defined ( __GNUC__ )
426  #define __SIMD32_TYPE int32_t
427 #elif defined ( __ICCARM__ )
428  #define __SIMD32_TYPE int32_t __packed
429 #elif defined ( __TI_ARM__ )
430  #define __SIMD32_TYPE int32_t
431 #elif defined ( __CSMC__ )
432  #define __SIMD32_TYPE int32_t
433 #elif defined ( __TASKING__ )
434  #define __SIMD32_TYPE __un(aligned) int32_t
435 #elif defined(_MSC_VER )
436  #define __SIMD32_TYPE int32_t
437 #else
438  #error Unknown compiler
439 #endif
440 
441 #define __SIMD32(addr) (*(__SIMD32_TYPE **) & (addr))
442 #define __SIMD32_CONST(addr) ( (__SIMD32_TYPE * ) (addr))
443 #define _SIMD32_OFFSET(addr) (*(__SIMD32_TYPE * ) (addr))
444 #define __SIMD64(addr) (*( int64_t **) & (addr))
445 
446 /* SIMD replacement */
447 
448 
455  q15_t * pQ15)
456 {
457  q31_t val;
458 
459  memcpy (&val, pQ15, 4);
460 
461  return (val);
462 }
463 
470  q15_t ** pQ15)
471 {
472  q31_t val;
473 
474  memcpy (&val, *pQ15, 4);
475  *pQ15 += 2;
476 
477  return (val);
478 }
479 
486  q15_t ** pQ15)
487 {
488  q31_t val;
489 
490  memcpy (&val, *pQ15, 4);
491  *pQ15 -= 2;
492 
493  return (val);
494 }
495 
503  q15_t ** pQ15,
504  q31_t value)
505 {
506  q31_t val = value;
507 
508  memcpy (*pQ15, &val, 4);
509  *pQ15 += 2;
510 }
511 
519  q15_t * pQ15,
520  q31_t value)
521 {
522  q31_t val = value;
523 
524  memcpy (pQ15, &val, 4);
525 }
526 
527 
534  q7_t ** pQ7)
535 {
536  q31_t val;
537 
538  memcpy (&val, *pQ7, 4);
539  *pQ7 += 4;
540 
541  return (val);
542 }
543 
550  q7_t ** pQ7)
551 {
552  q31_t val;
553 
554  memcpy (&val, *pQ7, 4);
555  *pQ7 -= 4;
556 
557  return (val);
558 }
559 
567  q7_t ** pQ7,
568  q31_t value)
569 {
570  q31_t val = value;
571 
572  memcpy (*pQ7, &val, 4);
573  *pQ7 += 4;
574 }
575 
576 /*
577 
578 Normally those kind of definitions are in a compiler file
579 in Core or Core_A.
580 
581 But for MSVC compiler it is a bit special. The goal is very specific
582 to CMSIS-DSP and only to allow the use of this library from other
583 systems like Python or Matlab.
584 
585 MSVC is not going to be used to cross-compile to ARM. So, having a MSVC
586 compiler file in Core or Core_A would not make sense.
587 
588 */
589 #if defined ( _MSC_VER )
590  __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t data)
591  {
592  if (data == 0U) { return 32U; }
593 
594  uint32_t count = 0U;
595  uint32_t mask = 0x80000000U;
596 
597  while ((data & mask) == 0U)
598  {
599  count += 1U;
600  mask = mask >> 1U;
601  }
602  return count;
603  }
604 
605  __STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat)
606  {
607  if ((sat >= 1U) && (sat <= 32U))
608  {
609  const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U);
610  const int32_t min = -1 - max ;
611  if (val > max)
612  {
613  return max;
614  }
615  else if (val < min)
616  {
617  return min;
618  }
619  }
620  return val;
621  }
622 
623  __STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat)
624  {
625  if (sat <= 31U)
626  {
627  const uint32_t max = ((1U << sat) - 1U);
628  if (val > (int32_t)max)
629  {
630  return max;
631  }
632  else if (val < 0)
633  {
634  return 0U;
635  }
636  }
637  return (uint32_t)val;
638  }
639 #endif
640 
641 #ifndef ARM_MATH_DSP
642 
645  #define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0x0000FFFF) | \
646  (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000) )
647  #define __PKHTB(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0xFFFF0000) | \
648  (((int32_t)(ARG2) >> ARG3) & (int32_t)0x0000FFFF) )
649 #endif
650 
654 #ifndef ARM_MATH_BIG_ENDIAN
655  #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) << 0) & (int32_t)0x000000FF) | \
656  (((int32_t)(v1) << 8) & (int32_t)0x0000FF00) | \
657  (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) | \
658  (((int32_t)(v3) << 24) & (int32_t)0xFF000000) )
659 #else
660  #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) << 0) & (int32_t)0x000000FF) | \
661  (((int32_t)(v2) << 8) & (int32_t)0x0000FF00) | \
662  (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) | \
663  (((int32_t)(v0) << 24) & (int32_t)0xFF000000) )
664 #endif
665 
666 
671  q63_t x)
672  {
673  return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
674  ((0x7FFFFFFF ^ ((q31_t) (x >> 63)))) : (q31_t) x;
675  }
676 
681  q63_t x)
682  {
683  return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ?
684  ((0x7FFF ^ ((q15_t) (x >> 63)))) : (q15_t) (x >> 15);
685  }
686 
691  q31_t x)
692  {
693  return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ?
694  ((0x7F ^ ((q7_t) (x >> 31)))) : (q7_t) x;
695  }
696 
701  q31_t x)
702  {
703  return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ?
704  ((0x7FFF ^ ((q15_t) (x >> 31)))) : (q15_t) x;
705  }
706 
711  q63_t x,
712  q31_t y)
713  {
714  return ((((q63_t) (x & 0x00000000FFFFFFFF) * y) >> 32) +
715  (((q63_t) (x >> 32) * y) ) );
716  }
717 
722  q31_t in,
723  q31_t * dst,
724  const q31_t * pRecipTable)
725  {
726  q31_t out;
727  uint32_t tempVal;
728  uint32_t index, i;
729  uint32_t signBits;
730 
731  if (in > 0)
732  {
733  signBits = ((uint32_t) (__CLZ( in) - 1));
734  }
735  else
736  {
737  signBits = ((uint32_t) (__CLZ(-in) - 1));
738  }
739 
740  /* Convert input sample to 1.31 format */
741  in = (in << signBits);
742 
743  /* calculation of index for initial approximated Val */
744  index = (uint32_t)(in >> 24);
745  index = (index & INDEX_MASK);
746 
747  /* 1.31 with exp 1 */
748  out = pRecipTable[index];
749 
750  /* calculation of reciprocal value */
751  /* running approximation for two iterations */
752  for (i = 0U; i < 2U; i++)
753  {
754  tempVal = (uint32_t) (((q63_t) in * out) >> 31);
755  tempVal = 0x7FFFFFFFu - tempVal;
756  /* 1.31 with exp 1 */
757  /* out = (q31_t) (((q63_t) out * tempVal) >> 30); */
758  out = clip_q63_to_q31(((q63_t) out * tempVal) >> 30);
759  }
760 
761  /* write output */
762  *dst = out;
763 
764  /* return num of signbits of out = 1/in value */
765  return (signBits + 1U);
766  }
767 
768 
773  q15_t in,
774  q15_t * dst,
775  const q15_t * pRecipTable)
776  {
777  q15_t out = 0;
778  uint32_t tempVal = 0;
779  uint32_t index = 0, i = 0;
780  uint32_t signBits = 0;
781 
782  if (in > 0)
783  {
784  signBits = ((uint32_t)(__CLZ( in) - 17));
785  }
786  else
787  {
788  signBits = ((uint32_t)(__CLZ(-in) - 17));
789  }
790 
791  /* Convert input sample to 1.15 format */
792  in = (in << signBits);
793 
794  /* calculation of index for initial approximated Val */
795  index = (uint32_t)(in >> 8);
796  index = (index & INDEX_MASK);
797 
798  /* 1.15 with exp 1 */
799  out = pRecipTable[index];
800 
801  /* calculation of reciprocal value */
802  /* running approximation for two iterations */
803  for (i = 0U; i < 2U; i++)
804  {
805  tempVal = (uint32_t) (((q31_t) in * out) >> 15);
806  tempVal = 0x7FFFu - tempVal;
807  /* 1.15 with exp 1 */
808  out = (q15_t) (((q31_t) out * tempVal) >> 14);
809  /* out = clip_q31_to_q15(((q31_t) out * tempVal) >> 14); */
810  }
811 
812  /* write output */
813  *dst = out;
814 
815  /* return num of signbits of out = 1/in value */
816  return (signBits + 1);
817  }
818 
819 #if defined(ARM_MATH_NEON)
820 
821 static inline float32x4_t __arm_vec_sqrt_f32_neon(float32x4_t x)
822 {
823  float32x4_t x1 = vmaxq_f32(x, vdupq_n_f32(FLT_MIN));
824  float32x4_t e = vrsqrteq_f32(x1);
825  e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x1, e), e), e);
826  e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x1, e), e), e);
827  return vmulq_f32(x, e);
828 }
829 
830 static inline int16x8_t __arm_vec_sqrt_q15_neon(int16x8_t vec)
831 {
832  float32x4_t tempF;
833  int32x4_t tempHI,tempLO;
834 
835  tempLO = vmovl_s16(vget_low_s16(vec));
836  tempF = vcvtq_n_f32_s32(tempLO,15);
837  tempF = __arm_vec_sqrt_f32_neon(tempF);
838  tempLO = vcvtq_n_s32_f32(tempF,15);
839 
840  tempHI = vmovl_s16(vget_high_s16(vec));
841  tempF = vcvtq_n_f32_s32(tempHI,15);
842  tempF = __arm_vec_sqrt_f32_neon(tempF);
843  tempHI = vcvtq_n_s32_f32(tempF,15);
844 
845  return(vcombine_s16(vqmovn_s32(tempLO),vqmovn_s32(tempHI)));
846 }
847 
848 static inline int32x4_t __arm_vec_sqrt_q31_neon(int32x4_t vec)
849 {
850  float32x4_t temp;
851 
852  temp = vcvtq_n_f32_s32(vec,31);
853  temp = __arm_vec_sqrt_f32_neon(temp);
854  return(vcvtq_n_s32_f32(temp,31));
855 }
856 
857 #endif
858 
859 /*
860  * @brief C custom defined intrinsic functions
861  */
862 #if !defined (ARM_MATH_DSP)
863 
864  /*
865  * @brief C custom defined QADD8
866  */
868  uint32_t x,
869  uint32_t y)
870  {
871  q31_t r, s, t, u;
872 
873  r = __SSAT(((((q31_t)x << 24) >> 24) + (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF;
874  s = __SSAT(((((q31_t)x << 16) >> 24) + (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF;
875  t = __SSAT(((((q31_t)x << 8) >> 24) + (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF;
876  u = __SSAT(((((q31_t)x ) >> 24) + (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF;
877 
878  return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r )));
879  }
880 
881 
882  /*
883  * @brief C custom defined QSUB8
884  */
886  uint32_t x,
887  uint32_t y)
888  {
889  q31_t r, s, t, u;
890 
891  r = __SSAT(((((q31_t)x << 24) >> 24) - (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF;
892  s = __SSAT(((((q31_t)x << 16) >> 24) - (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF;
893  t = __SSAT(((((q31_t)x << 8) >> 24) - (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF;
894  u = __SSAT(((((q31_t)x ) >> 24) - (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF;
895 
896  return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r )));
897  }
898 
899 
900  /*
901  * @brief C custom defined QADD16
902  */
904  uint32_t x,
905  uint32_t y)
906  {
907 /* q31_t r, s; without initialisation 'arm_offset_q15 test' fails but 'intrinsic' tests pass! for armCC */
908  q31_t r = 0, s = 0;
909 
910  r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
911  s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
912 
913  return ((uint32_t)((s << 16) | (r )));
914  }
915 
916 
917  /*
918  * @brief C custom defined SHADD16
919  */
921  uint32_t x,
922  uint32_t y)
923  {
924  q31_t r, s;
925 
926  r = (((((q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
927  s = (((((q31_t)x ) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
928 
929  return ((uint32_t)((s << 16) | (r )));
930  }
931 
932 
933  /*
934  * @brief C custom defined QSUB16
935  */
937  uint32_t x,
938  uint32_t y)
939  {
940  q31_t r, s;
941 
942  r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
943  s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
944 
945  return ((uint32_t)((s << 16) | (r )));
946  }
947 
948 
949  /*
950  * @brief C custom defined SHSUB16
951  */
953  uint32_t x,
954  uint32_t y)
955  {
956  q31_t r, s;
957 
958  r = (((((q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
959  s = (((((q31_t)x ) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
960 
961  return ((uint32_t)((s << 16) | (r )));
962  }
963 
964 
965  /*
966  * @brief C custom defined QASX
967  */
969  uint32_t x,
970  uint32_t y)
971  {
972  q31_t r, s;
973 
974  r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
975  s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
976 
977  return ((uint32_t)((s << 16) | (r )));
978  }
979 
980 
981  /*
982  * @brief C custom defined SHASX
983  */
985  uint32_t x,
986  uint32_t y)
987  {
988  q31_t r, s;
989 
990  r = (((((q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
991  s = (((((q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
992 
993  return ((uint32_t)((s << 16) | (r )));
994  }
995 
996 
997  /*
998  * @brief C custom defined QSAX
999  */
1001  uint32_t x,
1002  uint32_t y)
1003  {
1004  q31_t r, s;
1005 
1006  r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF;
1007  s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF;
1008 
1009  return ((uint32_t)((s << 16) | (r )));
1010  }
1011 
1012 
1013  /*
1014  * @brief C custom defined SHSAX
1015  */
1017  uint32_t x,
1018  uint32_t y)
1019  {
1020  q31_t r, s;
1021 
1022  r = (((((q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF;
1023  s = (((((q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF;
1024 
1025  return ((uint32_t)((s << 16) | (r )));
1026  }
1027 
1028 
1029  /*
1030  * @brief C custom defined SMUSDX
1031  */
1033  uint32_t x,
1034  uint32_t y)
1035  {
1036  return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) -
1037  ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) ));
1038  }
1039 
1040  /*
1041  * @brief C custom defined SMUADX
1042  */
1044  uint32_t x,
1045  uint32_t y)
1046  {
1047  return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) +
1048  ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) ));
1049  }
1050 
1051 
1052  /*
1053  * @brief C custom defined QADD
1054  */
1056  int32_t x,
1057  int32_t y)
1058  {
1059  return ((int32_t)(clip_q63_to_q31((q63_t)x + (q31_t)y)));
1060  }
1061 
1062 
1063  /*
1064  * @brief C custom defined QSUB
1065  */
1067  int32_t x,
1068  int32_t y)
1069  {
1070  return ((int32_t)(clip_q63_to_q31((q63_t)x - (q31_t)y)));
1071  }
1072 
1073 
1074  /*
1075  * @brief C custom defined SMLAD
1076  */
1078  uint32_t x,
1079  uint32_t y,
1080  uint32_t sum)
1081  {
1082  return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
1083  ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) +
1084  ( ((q31_t)sum ) ) ));
1085  }
1086 
1087 
1088  /*
1089  * @brief C custom defined SMLADX
1090  */
1092  uint32_t x,
1093  uint32_t y,
1094  uint32_t sum)
1095  {
1096  return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) +
1097  ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) +
1098  ( ((q31_t)sum ) ) ));
1099  }
1100 
1101 
1102  /*
1103  * @brief C custom defined SMLSDX
1104  */
1106  uint32_t x,
1107  uint32_t y,
1108  uint32_t sum)
1109  {
1110  return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) -
1111  ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) +
1112  ( ((q31_t)sum ) ) ));
1113  }
1114 
1115 
1116  /*
1117  * @brief C custom defined SMLALD
1118  */
1120  uint32_t x,
1121  uint32_t y,
1122  uint64_t sum)
1123  {
1124 /* return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) + ((q15_t) x * (q15_t) y)); */
1125  return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
1126  ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) +
1127  ( ((q63_t)sum ) ) ));
1128  }
1129 
1130 
1131  /*
1132  * @brief C custom defined SMLALDX
1133  */
1135  uint32_t x,
1136  uint32_t y,
1137  uint64_t sum)
1138  {
1139 /* return (sum + ((q15_t) (x >> 16) * (q15_t) y)) + ((q15_t) x * (q15_t) (y >> 16)); */
1140  return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) +
1141  ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) +
1142  ( ((q63_t)sum ) ) ));
1143  }
1144 
1145 
1146  /*
1147  * @brief C custom defined SMUAD
1148  */
1150  uint32_t x,
1151  uint32_t y)
1152  {
1153  return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) +
1154  ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) ));
1155  }
1156 
1157 
1158  /*
1159  * @brief C custom defined SMUSD
1160  */
1162  uint32_t x,
1163  uint32_t y)
1164  {
1165  return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) -
1166  ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) ));
1167  }
1168 
1169 
1170  /*
1171  * @brief C custom defined SXTB16
1172  */
1174  uint32_t x)
1175  {
1176  return ((uint32_t)(((((q31_t)x << 24) >> 24) & (q31_t)0x0000FFFF) |
1177  ((((q31_t)x << 8) >> 8) & (q31_t)0xFFFF0000) ));
1178  }
1179 
1180  /*
1181  * @brief C custom defined SMMLA
1182  */
1184  int32_t x,
1185  int32_t y,
1186  int32_t sum)
1187  {
1188  return (sum + (int32_t) (((int64_t) x * y) >> 32));
1189  }
1190 
1191 #endif /* !defined (ARM_MATH_DSP) */
1192 
1193 
1197  typedef struct
1198  {
1199  uint16_t numTaps;
1201  const q7_t *pCoeffs;
1203 
1207  typedef struct
1208  {
1209  uint16_t numTaps;
1211  const q15_t *pCoeffs;
1213 
1217  typedef struct
1218  {
1219  uint16_t numTaps;
1221  const q31_t *pCoeffs;
1223 
1227  typedef struct
1228  {
1229  uint16_t numTaps;
1233 
1241  void arm_fir_q7(
1242  const arm_fir_instance_q7 * S,
1243  const q7_t * pSrc,
1244  q7_t * pDst,
1245  uint32_t blockSize);
1246 
1255  void arm_fir_init_q7(
1256  arm_fir_instance_q7 * S,
1257  uint16_t numTaps,
1258  const q7_t * pCoeffs,
1259  q7_t * pState,
1260  uint32_t blockSize);
1261 
1269  void arm_fir_q15(
1270  const arm_fir_instance_q15 * S,
1271  const q15_t * pSrc,
1272  q15_t * pDst,
1273  uint32_t blockSize);
1274 
1282  void arm_fir_fast_q15(
1283  const arm_fir_instance_q15 * S,
1284  const q15_t * pSrc,
1285  q15_t * pDst,
1286  uint32_t blockSize);
1287 
1301  uint16_t numTaps,
1302  const q15_t * pCoeffs,
1303  q15_t * pState,
1304  uint32_t blockSize);
1305 
1313  void arm_fir_q31(
1314  const arm_fir_instance_q31 * S,
1315  const q31_t * pSrc,
1316  q31_t * pDst,
1317  uint32_t blockSize);
1318 
1326  void arm_fir_fast_q31(
1327  const arm_fir_instance_q31 * S,
1328  const q31_t * pSrc,
1329  q31_t * pDst,
1330  uint32_t blockSize);
1331 
1340  void arm_fir_init_q31(
1342  uint16_t numTaps,
1343  const q31_t * pCoeffs,
1344  q31_t * pState,
1345  uint32_t blockSize);
1346 
1354  void arm_fir_f32(
1355  const arm_fir_instance_f32 * S,
1356  const float32_t * pSrc,
1357  float32_t * pDst,
1358  uint32_t blockSize);
1359 
1368  void arm_fir_init_f32(
1370  uint16_t numTaps,
1371  const float32_t * pCoeffs,
1372  float32_t * pState,
1373  uint32_t blockSize);
1374 
1378  typedef struct
1379  {
1380  int8_t numStages;
1382  const q15_t *pCoeffs;
1383  int8_t postShift;
1385 
1389  typedef struct
1390  {
1391  uint32_t numStages;
1393  const q31_t *pCoeffs;
1394  uint8_t postShift;
1396 
1400  typedef struct
1401  {
1402  uint32_t numStages;
1406 
1415  const arm_biquad_casd_df1_inst_q15 * S,
1416  const q15_t * pSrc,
1417  q15_t * pDst,
1418  uint32_t blockSize);
1419 
1430  uint8_t numStages,
1431  const q15_t * pCoeffs,
1432  q15_t * pState,
1433  int8_t postShift);
1434 
1443  const arm_biquad_casd_df1_inst_q15 * S,
1444  const q15_t * pSrc,
1445  q15_t * pDst,
1446  uint32_t blockSize);
1447 
1456  const arm_biquad_casd_df1_inst_q31 * S,
1457  const q31_t * pSrc,
1458  q31_t * pDst,
1459  uint32_t blockSize);
1460 
1469  const arm_biquad_casd_df1_inst_q31 * S,
1470  const q31_t * pSrc,
1471  q31_t * pDst,
1472  uint32_t blockSize);
1473 
1484  uint8_t numStages,
1485  const q31_t * pCoeffs,
1486  q31_t * pState,
1487  int8_t postShift);
1488 
1497  const arm_biquad_casd_df1_inst_f32 * S,
1498  const float32_t * pSrc,
1499  float32_t * pDst,
1500  uint32_t blockSize);
1501 
1511  uint8_t numStages,
1512  const float32_t * pCoeffs,
1513  float32_t * pState);
1514 
1518  typedef struct
1519  {
1520  uint16_t numRows;
1521  uint16_t numCols;
1524 
1525 
1529  typedef struct
1530  {
1531  uint16_t numRows;
1532  uint16_t numCols;
1535 
1539  typedef struct
1540  {
1541  uint16_t numRows;
1542  uint16_t numCols;
1545 
1549  typedef struct
1550  {
1551  uint16_t numRows;
1552  uint16_t numCols;
1555 
1565  const arm_matrix_instance_f32 * pSrcA,
1566  const arm_matrix_instance_f32 * pSrcB,
1567  arm_matrix_instance_f32 * pDst);
1568 
1578  const arm_matrix_instance_q15 * pSrcA,
1579  const arm_matrix_instance_q15 * pSrcB,
1580  arm_matrix_instance_q15 * pDst);
1581 
1591  const arm_matrix_instance_q31 * pSrcA,
1592  const arm_matrix_instance_q31 * pSrcB,
1593  arm_matrix_instance_q31 * pDst);
1594 
1604  const arm_matrix_instance_f32 * pSrcA,
1605  const arm_matrix_instance_f32 * pSrcB,
1606  arm_matrix_instance_f32 * pDst);
1607 
1617  const arm_matrix_instance_q15 * pSrcA,
1618  const arm_matrix_instance_q15 * pSrcB,
1619  arm_matrix_instance_q15 * pDst,
1620  q15_t * pScratch);
1621 
1631  const arm_matrix_instance_q31 * pSrcA,
1632  const arm_matrix_instance_q31 * pSrcB,
1633  arm_matrix_instance_q31 * pDst);
1634 
1643  const arm_matrix_instance_f32 * pSrc,
1644  arm_matrix_instance_f32 * pDst);
1645 
1654  const arm_matrix_instance_q15 * pSrc,
1655  arm_matrix_instance_q15 * pDst);
1656 
1665  const arm_matrix_instance_q31 * pSrc,
1666  arm_matrix_instance_q31 * pDst);
1667 
1677  const arm_matrix_instance_f32 * pSrcA,
1678  const arm_matrix_instance_f32 * pSrcB,
1679  arm_matrix_instance_f32 * pDst);
1680 
1691  const arm_matrix_instance_q15 * pSrcA,
1692  const arm_matrix_instance_q15 * pSrcB,
1693  arm_matrix_instance_q15 * pDst,
1694  q15_t * pState);
1695 
1706  const arm_matrix_instance_q15 * pSrcA,
1707  const arm_matrix_instance_q15 * pSrcB,
1708  arm_matrix_instance_q15 * pDst,
1709  q15_t * pState);
1710 
1720  const arm_matrix_instance_q31 * pSrcA,
1721  const arm_matrix_instance_q31 * pSrcB,
1722  arm_matrix_instance_q31 * pDst);
1723 
1733  const arm_matrix_instance_q31 * pSrcA,
1734  const arm_matrix_instance_q31 * pSrcB,
1735  arm_matrix_instance_q31 * pDst);
1736 
1746  const arm_matrix_instance_f32 * pSrcA,
1747  const arm_matrix_instance_f32 * pSrcB,
1748  arm_matrix_instance_f32 * pDst);
1749 
1759  const arm_matrix_instance_q15 * pSrcA,
1760  const arm_matrix_instance_q15 * pSrcB,
1761  arm_matrix_instance_q15 * pDst);
1762 
1772  const arm_matrix_instance_q31 * pSrcA,
1773  const arm_matrix_instance_q31 * pSrcB,
1774  arm_matrix_instance_q31 * pDst);
1775 
1785  const arm_matrix_instance_f32 * pSrc,
1786  float32_t scale,
1787  arm_matrix_instance_f32 * pDst);
1788 
1799  const arm_matrix_instance_q15 * pSrc,
1800  q15_t scaleFract,
1801  int32_t shift,
1802  arm_matrix_instance_q15 * pDst);
1803 
1814  const arm_matrix_instance_q31 * pSrc,
1815  q31_t scaleFract,
1816  int32_t shift,
1817  arm_matrix_instance_q31 * pDst);
1818 
1826 void arm_mat_init_q31(
1828  uint16_t nRows,
1829  uint16_t nColumns,
1830  q31_t * pData);
1831 
1839 void arm_mat_init_q15(
1841  uint16_t nRows,
1842  uint16_t nColumns,
1843  q15_t * pData);
1844 
1852 void arm_mat_init_f32(
1854  uint16_t nRows,
1855  uint16_t nColumns,
1856  float32_t * pData);
1857 
1858 
1862  typedef struct
1863  {
1865 #if !defined (ARM_MATH_DSP)
1868 #else
1869  q31_t A1;
1870 #endif
1871  q15_t state[3];
1876 
1880  typedef struct
1881  {
1885  q31_t state[3];
1890 
1894  typedef struct
1895  {
1899  float32_t state[3];
1904 
1905 
1906 
1912  void arm_pid_init_f32(
1914  int32_t resetStateFlag);
1915 
1916 
1921  void arm_pid_reset_f32(
1922  arm_pid_instance_f32 * S);
1923 
1924 
1930  void arm_pid_init_q31(
1932  int32_t resetStateFlag);
1933 
1934 
1940  void arm_pid_reset_q31(
1941  arm_pid_instance_q31 * S);
1942 
1943 
1949  void arm_pid_init_q15(
1951  int32_t resetStateFlag);
1952 
1953 
1958  void arm_pid_reset_q15(
1959  arm_pid_instance_q15 * S);
1960 
1961 
1965  typedef struct
1966  {
1967  uint32_t nValues;
1972 
1976  typedef struct
1977  {
1978  uint16_t numRows;
1979  uint16_t numCols;
1982 
1986  typedef struct
1987  {
1988  uint16_t numRows;
1989  uint16_t numCols;
1992 
1996  typedef struct
1997  {
1998  uint16_t numRows;
1999  uint16_t numCols;
2002 
2006  typedef struct
2007  {
2008  uint16_t numRows;
2009  uint16_t numCols;
2012 
2013 
2021  void arm_mult_q7(
2022  const q7_t * pSrcA,
2023  const q7_t * pSrcB,
2024  q7_t * pDst,
2025  uint32_t blockSize);
2026 
2027 
2035  void arm_mult_q15(
2036  const q15_t * pSrcA,
2037  const q15_t * pSrcB,
2038  q15_t * pDst,
2039  uint32_t blockSize);
2040 
2041 
2049  void arm_mult_q31(
2050  const q31_t * pSrcA,
2051  const q31_t * pSrcB,
2052  q31_t * pDst,
2053  uint32_t blockSize);
2054 
2055 
2063  void arm_mult_f32(
2064  const float32_t * pSrcA,
2065  const float32_t * pSrcB,
2066  float32_t * pDst,
2067  uint32_t blockSize);
2068 
2069 
2073  typedef struct
2074  {
2075  uint16_t fftLen;
2076  uint8_t ifftFlag;
2077  uint8_t bitReverseFlag;
2078  const q15_t *pTwiddle;
2079  const uint16_t *pBitRevTable;
2080  uint16_t twidCoefModifier;
2081  uint16_t bitRevFactor;
2083 
2084 /* Deprecated */
2087  uint16_t fftLen,
2088  uint8_t ifftFlag,
2089  uint8_t bitReverseFlag);
2090 
2091 /* Deprecated */
2092  void arm_cfft_radix2_q15(
2093  const arm_cfft_radix2_instance_q15 * S,
2094  q15_t * pSrc);
2095 
2096 
2100  typedef struct
2101  {
2102  uint16_t fftLen;
2103  uint8_t ifftFlag;
2104  uint8_t bitReverseFlag;
2105  const q15_t *pTwiddle;
2106  const uint16_t *pBitRevTable;
2107  uint16_t twidCoefModifier;
2108  uint16_t bitRevFactor;
2110 
2111 /* Deprecated */
2114  uint16_t fftLen,
2115  uint8_t ifftFlag,
2116  uint8_t bitReverseFlag);
2117 
2118 /* Deprecated */
2119  void arm_cfft_radix4_q15(
2120  const arm_cfft_radix4_instance_q15 * S,
2121  q15_t * pSrc);
2122 
2126  typedef struct
2127  {
2128  uint16_t fftLen;
2129  uint8_t ifftFlag;
2130  uint8_t bitReverseFlag;
2131  const q31_t *pTwiddle;
2132  const uint16_t *pBitRevTable;
2133  uint16_t twidCoefModifier;
2134  uint16_t bitRevFactor;
2136 
2137 /* Deprecated */
2140  uint16_t fftLen,
2141  uint8_t ifftFlag,
2142  uint8_t bitReverseFlag);
2143 
2144 /* Deprecated */
2145  void arm_cfft_radix2_q31(
2146  const arm_cfft_radix2_instance_q31 * S,
2147  q31_t * pSrc);
2148 
2152  typedef struct
2153  {
2154  uint16_t fftLen;
2155  uint8_t ifftFlag;
2156  uint8_t bitReverseFlag;
2157  const q31_t *pTwiddle;
2158  const uint16_t *pBitRevTable;
2159  uint16_t twidCoefModifier;
2160  uint16_t bitRevFactor;
2162 
2163 /* Deprecated */
2164  void arm_cfft_radix4_q31(
2165  const arm_cfft_radix4_instance_q31 * S,
2166  q31_t * pSrc);
2167 
2168 /* Deprecated */
2171  uint16_t fftLen,
2172  uint8_t ifftFlag,
2173  uint8_t bitReverseFlag);
2174 
2178  typedef struct
2179  {
2180  uint16_t fftLen;
2181  uint8_t ifftFlag;
2182  uint8_t bitReverseFlag;
2184  const uint16_t *pBitRevTable;
2185  uint16_t twidCoefModifier;
2186  uint16_t bitRevFactor;
2189 
2190 /* Deprecated */
2193  uint16_t fftLen,
2194  uint8_t ifftFlag,
2195  uint8_t bitReverseFlag);
2196 
2197 /* Deprecated */
2198  void arm_cfft_radix2_f32(
2199  const arm_cfft_radix2_instance_f32 * S,
2200  float32_t * pSrc);
2201 
2205  typedef struct
2206  {
2207  uint16_t fftLen;
2208  uint8_t ifftFlag;
2209  uint8_t bitReverseFlag;
2211  const uint16_t *pBitRevTable;
2212  uint16_t twidCoefModifier;
2213  uint16_t bitRevFactor;
2216 
2217 /* Deprecated */
2220  uint16_t fftLen,
2221  uint8_t ifftFlag,
2222  uint8_t bitReverseFlag);
2223 
2224 /* Deprecated */
2225  void arm_cfft_radix4_f32(
2226  const arm_cfft_radix4_instance_f32 * S,
2227  float32_t * pSrc);
2228 
2232  typedef struct
2233  {
2234  uint16_t fftLen;
2235  const q15_t *pTwiddle;
2236  const uint16_t *pBitRevTable;
2237  uint16_t bitRevLength;
2239 
2240 void arm_cfft_q15(
2241  const arm_cfft_instance_q15 * S,
2242  q15_t * p1,
2243  uint8_t ifftFlag,
2244  uint8_t bitReverseFlag);
2245 
2249  typedef struct
2250  {
2251  uint16_t fftLen;
2252  const q31_t *pTwiddle;
2253  const uint16_t *pBitRevTable;
2254  uint16_t bitRevLength;
2256 
2257 void arm_cfft_q31(
2258  const arm_cfft_instance_q31 * S,
2259  q31_t * p1,
2260  uint8_t ifftFlag,
2261  uint8_t bitReverseFlag);
2262 
2266  typedef struct
2267  {
2268  uint16_t fftLen;
2270  const uint16_t *pBitRevTable;
2271  uint16_t bitRevLength;
2273 
2274  void arm_cfft_f32(
2275  const arm_cfft_instance_f32 * S,
2276  float32_t * p1,
2277  uint8_t ifftFlag,
2278  uint8_t bitReverseFlag);
2279 
2283  typedef struct
2284  {
2285  uint32_t fftLenReal;
2286  uint8_t ifftFlagR;
2293 
2296  uint32_t fftLenReal,
2297  uint32_t ifftFlagR,
2298  uint32_t bitReverseFlag);
2299 
2300  void arm_rfft_q15(
2301  const arm_rfft_instance_q15 * S,
2302  q15_t * pSrc,
2303  q15_t * pDst);
2304 
2308  typedef struct
2309  {
2310  uint32_t fftLenReal;
2311  uint8_t ifftFlagR;
2318 
2321  uint32_t fftLenReal,
2322  uint32_t ifftFlagR,
2323  uint32_t bitReverseFlag);
2324 
2325  void arm_rfft_q31(
2326  const arm_rfft_instance_q31 * S,
2327  q31_t * pSrc,
2328  q31_t * pDst);
2329 
2333  typedef struct
2334  {
2335  uint32_t fftLenReal;
2336  uint16_t fftLenBy2;
2337  uint8_t ifftFlagR;
2344 
2348  uint32_t fftLenReal,
2349  uint32_t ifftFlagR,
2350  uint32_t bitReverseFlag);
2351 
2352  void arm_rfft_f32(
2353  const arm_rfft_instance_f32 * S,
2354  float32_t * pSrc,
2355  float32_t * pDst);
2356 
2360 typedef struct
2361  {
2363  uint16_t fftLenRFFT;
2366 
2369  uint16_t fftLen);
2370 
2372 
2374 
2376 
2378 
2380 
2382 
2384 
2386 
2387 
2388  void arm_rfft_fast_f32(
2390  float32_t * p, float32_t * pOut,
2391  uint8_t ifftFlag);
2392 
2396  typedef struct
2397  {
2398  uint16_t N;
2399  uint16_t Nby2;
2406 
2407 
2420  arm_rfft_instance_f32 * S_RFFT,
2422  uint16_t N,
2423  uint16_t Nby2,
2424  float32_t normalize);
2425 
2426 
2433  void arm_dct4_f32(
2434  const arm_dct4_instance_f32 * S,
2435  float32_t * pState,
2436  float32_t * pInlineBuffer);
2437 
2438 
2442  typedef struct
2443  {
2444  uint16_t N;
2445  uint16_t Nby2;
2447  const q31_t *pTwiddle;
2452 
2453 
2466  arm_rfft_instance_q31 * S_RFFT,
2468  uint16_t N,
2469  uint16_t Nby2,
2470  q31_t normalize);
2471 
2472 
2479  void arm_dct4_q31(
2480  const arm_dct4_instance_q31 * S,
2481  q31_t * pState,
2482  q31_t * pInlineBuffer);
2483 
2484 
2488  typedef struct
2489  {
2490  uint16_t N;
2491  uint16_t Nby2;
2493  const q15_t *pTwiddle;
2498 
2499 
2512  arm_rfft_instance_q15 * S_RFFT,
2514  uint16_t N,
2515  uint16_t Nby2,
2516  q15_t normalize);
2517 
2518 
2525  void arm_dct4_q15(
2526  const arm_dct4_instance_q15 * S,
2527  q15_t * pState,
2528  q15_t * pInlineBuffer);
2529 
2530 
2538  void arm_add_f32(
2539  const float32_t * pSrcA,
2540  const float32_t * pSrcB,
2541  float32_t * pDst,
2542  uint32_t blockSize);
2543 
2544 
2552  void arm_add_q7(
2553  const q7_t * pSrcA,
2554  const q7_t * pSrcB,
2555  q7_t * pDst,
2556  uint32_t blockSize);
2557 
2558 
2566  void arm_add_q15(
2567  const q15_t * pSrcA,
2568  const q15_t * pSrcB,
2569  q15_t * pDst,
2570  uint32_t blockSize);
2571 
2572 
2580  void arm_add_q31(
2581  const q31_t * pSrcA,
2582  const q31_t * pSrcB,
2583  q31_t * pDst,
2584  uint32_t blockSize);
2585 
2586 
2594  void arm_sub_f32(
2595  const float32_t * pSrcA,
2596  const float32_t * pSrcB,
2597  float32_t * pDst,
2598  uint32_t blockSize);
2599 
2600 
2608  void arm_sub_q7(
2609  const q7_t * pSrcA,
2610  const q7_t * pSrcB,
2611  q7_t * pDst,
2612  uint32_t blockSize);
2613 
2614 
2622  void arm_sub_q15(
2623  const q15_t * pSrcA,
2624  const q15_t * pSrcB,
2625  q15_t * pDst,
2626  uint32_t blockSize);
2627 
2628 
2636  void arm_sub_q31(
2637  const q31_t * pSrcA,
2638  const q31_t * pSrcB,
2639  q31_t * pDst,
2640  uint32_t blockSize);
2641 
2642 
2650  void arm_scale_f32(
2651  const float32_t * pSrc,
2652  float32_t scale,
2653  float32_t * pDst,
2654  uint32_t blockSize);
2655 
2656 
2665  void arm_scale_q7(
2666  const q7_t * pSrc,
2667  q7_t scaleFract,
2668  int8_t shift,
2669  q7_t * pDst,
2670  uint32_t blockSize);
2671 
2672 
2681  void arm_scale_q15(
2682  const q15_t * pSrc,
2683  q15_t scaleFract,
2684  int8_t shift,
2685  q15_t * pDst,
2686  uint32_t blockSize);
2687 
2688 
2697  void arm_scale_q31(
2698  const q31_t * pSrc,
2699  q31_t scaleFract,
2700  int8_t shift,
2701  q31_t * pDst,
2702  uint32_t blockSize);
2703 
2704 
2711  void arm_abs_q7(
2712  const q7_t * pSrc,
2713  q7_t * pDst,
2714  uint32_t blockSize);
2715 
2716 
2723  void arm_abs_f32(
2724  const float32_t * pSrc,
2725  float32_t * pDst,
2726  uint32_t blockSize);
2727 
2728 
2735  void arm_abs_q15(
2736  const q15_t * pSrc,
2737  q15_t * pDst,
2738  uint32_t blockSize);
2739 
2740 
2747  void arm_abs_q31(
2748  const q31_t * pSrc,
2749  q31_t * pDst,
2750  uint32_t blockSize);
2751 
2752 
2760  void arm_dot_prod_f32(
2761  const float32_t * pSrcA,
2762  const float32_t * pSrcB,
2763  uint32_t blockSize,
2764  float32_t * result);
2765 
2766 
2774  void arm_dot_prod_q7(
2775  const q7_t * pSrcA,
2776  const q7_t * pSrcB,
2777  uint32_t blockSize,
2778  q31_t * result);
2779 
2780 
2788  void arm_dot_prod_q15(
2789  const q15_t * pSrcA,
2790  const q15_t * pSrcB,
2791  uint32_t blockSize,
2792  q63_t * result);
2793 
2794 
2802  void arm_dot_prod_q31(
2803  const q31_t * pSrcA,
2804  const q31_t * pSrcB,
2805  uint32_t blockSize,
2806  q63_t * result);
2807 
2808 
2816  void arm_shift_q7(
2817  const q7_t * pSrc,
2818  int8_t shiftBits,
2819  q7_t * pDst,
2820  uint32_t blockSize);
2821 
2822 
2830  void arm_shift_q15(
2831  const q15_t * pSrc,
2832  int8_t shiftBits,
2833  q15_t * pDst,
2834  uint32_t blockSize);
2835 
2836 
2844  void arm_shift_q31(
2845  const q31_t * pSrc,
2846  int8_t shiftBits,
2847  q31_t * pDst,
2848  uint32_t blockSize);
2849 
2850 
2858  void arm_offset_f32(
2859  const float32_t * pSrc,
2860  float32_t offset,
2861  float32_t * pDst,
2862  uint32_t blockSize);
2863 
2864 
2872  void arm_offset_q7(
2873  const q7_t * pSrc,
2874  q7_t offset,
2875  q7_t * pDst,
2876  uint32_t blockSize);
2877 
2878 
2886  void arm_offset_q15(
2887  const q15_t * pSrc,
2888  q15_t offset,
2889  q15_t * pDst,
2890  uint32_t blockSize);
2891 
2892 
2900  void arm_offset_q31(
2901  const q31_t * pSrc,
2902  q31_t offset,
2903  q31_t * pDst,
2904  uint32_t blockSize);
2905 
2906 
2913  void arm_negate_f32(
2914  const float32_t * pSrc,
2915  float32_t * pDst,
2916  uint32_t blockSize);
2917 
2918 
2925  void arm_negate_q7(
2926  const q7_t * pSrc,
2927  q7_t * pDst,
2928  uint32_t blockSize);
2929 
2930 
2937  void arm_negate_q15(
2938  const q15_t * pSrc,
2939  q15_t * pDst,
2940  uint32_t blockSize);
2941 
2942 
2949  void arm_negate_q31(
2950  const q31_t * pSrc,
2951  q31_t * pDst,
2952  uint32_t blockSize);
2953 
2954 
2961  void arm_copy_f32(
2962  const float32_t * pSrc,
2963  float32_t * pDst,
2964  uint32_t blockSize);
2965 
2966 
2973  void arm_copy_q7(
2974  const q7_t * pSrc,
2975  q7_t * pDst,
2976  uint32_t blockSize);
2977 
2978 
2985  void arm_copy_q15(
2986  const q15_t * pSrc,
2987  q15_t * pDst,
2988  uint32_t blockSize);
2989 
2990 
2997  void arm_copy_q31(
2998  const q31_t * pSrc,
2999  q31_t * pDst,
3000  uint32_t blockSize);
3001 
3002 
3009  void arm_fill_f32(
3010  float32_t value,
3011  float32_t * pDst,
3012  uint32_t blockSize);
3013 
3014 
3021  void arm_fill_q7(
3022  q7_t value,
3023  q7_t * pDst,
3024  uint32_t blockSize);
3025 
3026 
3033  void arm_fill_q15(
3034  q15_t value,
3035  q15_t * pDst,
3036  uint32_t blockSize);
3037 
3038 
3045  void arm_fill_q31(
3046  q31_t value,
3047  q31_t * pDst,
3048  uint32_t blockSize);
3049 
3050 
3059  void arm_conv_f32(
3060  const float32_t * pSrcA,
3061  uint32_t srcALen,
3062  const float32_t * pSrcB,
3063  uint32_t srcBLen,
3064  float32_t * pDst);
3065 
3066 
3077  void arm_conv_opt_q15(
3078  const q15_t * pSrcA,
3079  uint32_t srcALen,
3080  const q15_t * pSrcB,
3081  uint32_t srcBLen,
3082  q15_t * pDst,
3083  q15_t * pScratch1,
3084  q15_t * pScratch2);
3085 
3086 
3095  void arm_conv_q15(
3096  const q15_t * pSrcA,
3097  uint32_t srcALen,
3098  const q15_t * pSrcB,
3099  uint32_t srcBLen,
3100  q15_t * pDst);
3101 
3102 
3111  void arm_conv_fast_q15(
3112  const q15_t * pSrcA,
3113  uint32_t srcALen,
3114  const q15_t * pSrcB,
3115  uint32_t srcBLen,
3116  q15_t * pDst);
3117 
3118 
3129  void arm_conv_fast_opt_q15(
3130  const q15_t * pSrcA,
3131  uint32_t srcALen,
3132  const q15_t * pSrcB,
3133  uint32_t srcBLen,
3134  q15_t * pDst,
3135  q15_t * pScratch1,
3136  q15_t * pScratch2);
3137 
3138 
3147  void arm_conv_q31(
3148  const q31_t * pSrcA,
3149  uint32_t srcALen,
3150  const q31_t * pSrcB,
3151  uint32_t srcBLen,
3152  q31_t * pDst);
3153 
3154 
3163  void arm_conv_fast_q31(
3164  const q31_t * pSrcA,
3165  uint32_t srcALen,
3166  const q31_t * pSrcB,
3167  uint32_t srcBLen,
3168  q31_t * pDst);
3169 
3170 
3181  void arm_conv_opt_q7(
3182  const q7_t * pSrcA,
3183  uint32_t srcALen,
3184  const q7_t * pSrcB,
3185  uint32_t srcBLen,
3186  q7_t * pDst,
3187  q15_t * pScratch1,
3188  q15_t * pScratch2);
3189 
3190 
3199  void arm_conv_q7(
3200  const q7_t * pSrcA,
3201  uint32_t srcALen,
3202  const q7_t * pSrcB,
3203  uint32_t srcBLen,
3204  q7_t * pDst);
3205 
3206 
3219  const float32_t * pSrcA,
3220  uint32_t srcALen,
3221  const float32_t * pSrcB,
3222  uint32_t srcBLen,
3223  float32_t * pDst,
3224  uint32_t firstIndex,
3225  uint32_t numPoints);
3226 
3227 
3242  const q15_t * pSrcA,
3243  uint32_t srcALen,
3244  const q15_t * pSrcB,
3245  uint32_t srcBLen,
3246  q15_t * pDst,
3247  uint32_t firstIndex,
3248  uint32_t numPoints,
3249  q15_t * pScratch1,
3250  q15_t * pScratch2);
3251 
3252 
3265  const q15_t * pSrcA,
3266  uint32_t srcALen,
3267  const q15_t * pSrcB,
3268  uint32_t srcBLen,
3269  q15_t * pDst,
3270  uint32_t firstIndex,
3271  uint32_t numPoints);
3272 
3273 
3286  const q15_t * pSrcA,
3287  uint32_t srcALen,
3288  const q15_t * pSrcB,
3289  uint32_t srcBLen,
3290  q15_t * pDst,
3291  uint32_t firstIndex,
3292  uint32_t numPoints);
3293 
3294 
3309  const q15_t * pSrcA,
3310  uint32_t srcALen,
3311  const q15_t * pSrcB,
3312  uint32_t srcBLen,
3313  q15_t * pDst,
3314  uint32_t firstIndex,
3315  uint32_t numPoints,
3316  q15_t * pScratch1,
3317  q15_t * pScratch2);
3318 
3319 
3332  const q31_t * pSrcA,
3333  uint32_t srcALen,
3334  const q31_t * pSrcB,
3335  uint32_t srcBLen,
3336  q31_t * pDst,
3337  uint32_t firstIndex,
3338  uint32_t numPoints);
3339 
3340 
3353  const q31_t * pSrcA,
3354  uint32_t srcALen,
3355  const q31_t * pSrcB,
3356  uint32_t srcBLen,
3357  q31_t * pDst,
3358  uint32_t firstIndex,
3359  uint32_t numPoints);
3360 
3361 
3376  const q7_t * pSrcA,
3377  uint32_t srcALen,
3378  const q7_t * pSrcB,
3379  uint32_t srcBLen,
3380  q7_t * pDst,
3381  uint32_t firstIndex,
3382  uint32_t numPoints,
3383  q15_t * pScratch1,
3384  q15_t * pScratch2);
3385 
3386 
3399  const q7_t * pSrcA,
3400  uint32_t srcALen,
3401  const q7_t * pSrcB,
3402  uint32_t srcBLen,
3403  q7_t * pDst,
3404  uint32_t firstIndex,
3405  uint32_t numPoints);
3406 
3407 
3411  typedef struct
3412  {
3413  uint8_t M;
3414  uint16_t numTaps;
3415  const q15_t *pCoeffs;
3418 
3422  typedef struct
3423  {
3424  uint8_t M;
3425  uint16_t numTaps;
3426  const q31_t *pCoeffs;
3429 
3433 typedef struct
3434  {
3435  uint8_t M;
3436  uint16_t numTaps;
3440 
3441 
3451  const float32_t * pSrc,
3452  float32_t * pDst,
3453  uint32_t blockSize);
3454 
3455 
3470  uint16_t numTaps,
3471  uint8_t M,
3472  const float32_t * pCoeffs,
3473  float32_t * pState,
3474  uint32_t blockSize);
3475 
3476 
3484  void arm_fir_decimate_q15(
3486  const q15_t * pSrc,
3487  q15_t * pDst,
3488  uint32_t blockSize);
3489 
3490 
3500  const q15_t * pSrc,
3501  q15_t * pDst,
3502  uint32_t blockSize);
3503 
3504 
3518  uint16_t numTaps,
3519  uint8_t M,
3520  const q15_t * pCoeffs,
3521  q15_t * pState,
3522  uint32_t blockSize);
3523 
3524 
3532  void arm_fir_decimate_q31(
3534  const q31_t * pSrc,
3535  q31_t * pDst,
3536  uint32_t blockSize);
3537 
3547  const q31_t * pSrc,
3548  q31_t * pDst,
3549  uint32_t blockSize);
3550 
3551 
3565  uint16_t numTaps,
3566  uint8_t M,
3567  const q31_t * pCoeffs,
3568  q31_t * pState,
3569  uint32_t blockSize);
3570 
3571 
3575  typedef struct
3576  {
3577  uint8_t L;
3578  uint16_t phaseLength;
3579  const q15_t *pCoeffs;
3582 
3586  typedef struct
3587  {
3588  uint8_t L;
3589  uint16_t phaseLength;
3590  const q31_t *pCoeffs;
3593 
3597  typedef struct
3598  {
3599  uint8_t L;
3600  uint16_t phaseLength;
3604 
3605 
3615  const q15_t * pSrc,
3616  q15_t * pDst,
3617  uint32_t blockSize);
3618 
3619 
3633  uint8_t L,
3634  uint16_t numTaps,
3635  const q15_t * pCoeffs,
3636  q15_t * pState,
3637  uint32_t blockSize);
3638 
3639 
3649  const q31_t * pSrc,
3650  q31_t * pDst,
3651  uint32_t blockSize);
3652 
3653 
3667  uint8_t L,
3668  uint16_t numTaps,
3669  const q31_t * pCoeffs,
3670  q31_t * pState,
3671  uint32_t blockSize);
3672 
3673 
3683  const float32_t * pSrc,
3684  float32_t * pDst,
3685  uint32_t blockSize);
3686 
3687 
3701  uint8_t L,
3702  uint16_t numTaps,
3703  const float32_t * pCoeffs,
3704  float32_t * pState,
3705  uint32_t blockSize);
3706 
3707 
3711  typedef struct
3712  {
3713  uint8_t numStages;
3715  const q31_t *pCoeffs;
3716  uint8_t postShift;
3718 
3719 
3728  q31_t * pSrc,
3729  q31_t * pDst,
3730  uint32_t blockSize);
3731 
3732 
3742  uint8_t numStages,
3743  const q31_t * pCoeffs,
3744  q63_t * pState,
3745  uint8_t postShift);
3746 
3747 
3751  typedef struct
3752  {
3753  uint8_t numStages;
3757 
3761  typedef struct
3762  {
3763  uint8_t numStages;
3767 
3771  typedef struct
3772  {
3773  uint8_t numStages;
3777 
3778 
3788  const float32_t * pSrc,
3789  float32_t * pDst,
3790  uint32_t blockSize);
3791 
3792 
3802  const float32_t * pSrc,
3803  float32_t * pDst,
3804  uint32_t blockSize);
3805 
3806 
3816  float64_t * pSrc,
3817  float64_t * pDst,
3818  uint32_t blockSize);
3819 
3820 
3821 #if defined(ARM_MATH_NEON)
3822 void arm_biquad_cascade_df2T_compute_coefs_f32(
3824  uint8_t numStages,
3825  float32_t * pCoeffs);
3826 #endif
3827 
3836  uint8_t numStages,
3837  const float32_t * pCoeffs,
3838  float32_t * pState);
3839 
3840 
3850  uint8_t numStages,
3851  const float32_t * pCoeffs,
3852  float32_t * pState);
3853 
3854 
3864  uint8_t numStages,
3865  float64_t * pCoeffs,
3866  float64_t * pState);
3867 
3868 
3872  typedef struct
3873  {
3874  uint16_t numStages;
3876  const q15_t *pCoeffs;
3878 
3882  typedef struct
3883  {
3884  uint16_t numStages;
3886  const q31_t *pCoeffs;
3888 
3892  typedef struct
3893  {
3894  uint16_t numStages;
3898 
3899 
3909  uint16_t numStages,
3910  const q15_t * pCoeffs,
3911  q15_t * pState);
3912 
3913 
3921  void arm_fir_lattice_q15(
3922  const arm_fir_lattice_instance_q15 * S,
3923  const q15_t * pSrc,
3924  q15_t * pDst,
3925  uint32_t blockSize);
3926 
3927 
3937  uint16_t numStages,
3938  const q31_t * pCoeffs,
3939  q31_t * pState);
3940 
3941 
3949  void arm_fir_lattice_q31(
3950  const arm_fir_lattice_instance_q31 * S,
3951  const q31_t * pSrc,
3952  q31_t * pDst,
3953  uint32_t blockSize);
3954 
3955 
3965  uint16_t numStages,
3966  const float32_t * pCoeffs,
3967  float32_t * pState);
3968 
3969 
3977  void arm_fir_lattice_f32(
3978  const arm_fir_lattice_instance_f32 * S,
3979  const float32_t * pSrc,
3980  float32_t * pDst,
3981  uint32_t blockSize);
3982 
3983 
3987  typedef struct
3988  {
3989  uint16_t numStages;
3994 
3998  typedef struct
3999  {
4000  uint16_t numStages;
4005 
4009  typedef struct
4010  {
4011  uint16_t numStages;
4016 
4017 
4025  void arm_iir_lattice_f32(
4026  const arm_iir_lattice_instance_f32 * S,
4027  const float32_t * pSrc,
4028  float32_t * pDst,
4029  uint32_t blockSize);
4030 
4031 
4043  uint16_t numStages,
4044  float32_t * pkCoeffs,
4045  float32_t * pvCoeffs,
4046  float32_t * pState,
4047  uint32_t blockSize);
4048 
4049 
4057  void arm_iir_lattice_q31(
4058  const arm_iir_lattice_instance_q31 * S,
4059  const q31_t * pSrc,
4060  q31_t * pDst,
4061  uint32_t blockSize);
4062 
4063 
4075  uint16_t numStages,
4076  q31_t * pkCoeffs,
4077  q31_t * pvCoeffs,
4078  q31_t * pState,
4079  uint32_t blockSize);
4080 
4081 
4089  void arm_iir_lattice_q15(
4090  const arm_iir_lattice_instance_q15 * S,
4091  const q15_t * pSrc,
4092  q15_t * pDst,
4093  uint32_t blockSize);
4094 
4095 
4107  uint16_t numStages,
4108  q15_t * pkCoeffs,
4109  q15_t * pvCoeffs,
4110  q15_t * pState,
4111  uint32_t blockSize);
4112 
4113 
4117  typedef struct
4118  {
4119  uint16_t numTaps;
4124 
4125 
4135  void arm_lms_f32(
4136  const arm_lms_instance_f32 * S,
4137  const float32_t * pSrc,
4138  float32_t * pRef,
4139  float32_t * pOut,
4140  float32_t * pErr,
4141  uint32_t blockSize);
4142 
4143 
4153  void arm_lms_init_f32(
4155  uint16_t numTaps,
4156  float32_t * pCoeffs,
4157  float32_t * pState,
4158  float32_t mu,
4159  uint32_t blockSize);
4160 
4161 
4165  typedef struct
4166  {
4167  uint16_t numTaps;
4171  uint32_t postShift;
4173 
4174 
4185  void arm_lms_init_q15(
4187  uint16_t numTaps,
4188  q15_t * pCoeffs,
4189  q15_t * pState,
4190  q15_t mu,
4191  uint32_t blockSize,
4192  uint32_t postShift);
4193 
4194 
4204  void arm_lms_q15(
4205  const arm_lms_instance_q15 * S,
4206  const q15_t * pSrc,
4207  q15_t * pRef,
4208  q15_t * pOut,
4209  q15_t * pErr,
4210  uint32_t blockSize);
4211 
4212 
4216  typedef struct
4217  {
4218  uint16_t numTaps;
4222  uint32_t postShift;
4224 
4225 
4235  void arm_lms_q31(
4236  const arm_lms_instance_q31 * S,
4237  const q31_t * pSrc,
4238  q31_t * pRef,
4239  q31_t * pOut,
4240  q31_t * pErr,
4241  uint32_t blockSize);
4242 
4243 
4254  void arm_lms_init_q31(
4256  uint16_t numTaps,
4257  q31_t * pCoeffs,
4258  q31_t * pState,
4259  q31_t mu,
4260  uint32_t blockSize,
4261  uint32_t postShift);
4262 
4263 
4267  typedef struct
4268  {
4269  uint16_t numTaps;
4276 
4277 
4287  void arm_lms_norm_f32(
4289  const float32_t * pSrc,
4290  float32_t * pRef,
4291  float32_t * pOut,
4292  float32_t * pErr,
4293  uint32_t blockSize);
4294 
4295 
4305  void arm_lms_norm_init_f32(
4307  uint16_t numTaps,
4308  float32_t * pCoeffs,
4309  float32_t * pState,
4310  float32_t mu,
4311  uint32_t blockSize);
4312 
4313 
4317  typedef struct
4318  {
4319  uint16_t numTaps;
4323  uint8_t postShift;
4328 
4329 
4339  void arm_lms_norm_q31(
4341  const q31_t * pSrc,
4342  q31_t * pRef,
4343  q31_t * pOut,
4344  q31_t * pErr,
4345  uint32_t blockSize);
4346 
4347 
4358  void arm_lms_norm_init_q31(
4360  uint16_t numTaps,
4361  q31_t * pCoeffs,
4362  q31_t * pState,
4363  q31_t mu,
4364  uint32_t blockSize,
4365  uint8_t postShift);
4366 
4367 
4371  typedef struct
4372  {
4373  uint16_t numTaps;
4377  uint8_t postShift;
4382 
4383 
4393  void arm_lms_norm_q15(
4395  const q15_t * pSrc,
4396  q15_t * pRef,
4397  q15_t * pOut,
4398  q15_t * pErr,
4399  uint32_t blockSize);
4400 
4401 
4412  void arm_lms_norm_init_q15(
4414  uint16_t numTaps,
4415  q15_t * pCoeffs,
4416  q15_t * pState,
4417  q15_t mu,
4418  uint32_t blockSize,
4419  uint8_t postShift);
4420 
4421 
4430  void arm_correlate_f32(
4431  const float32_t * pSrcA,
4432  uint32_t srcALen,
4433  const float32_t * pSrcB,
4434  uint32_t srcBLen,
4435  float32_t * pDst);
4436 
4437 
4448  const q15_t * pSrcA,
4449  uint32_t srcALen,
4450  const q15_t * pSrcB,
4451  uint32_t srcBLen,
4452  q15_t * pDst,
4453  q15_t * pScratch);
4454 
4455 
4464  void arm_correlate_q15(
4465  const q15_t * pSrcA,
4466  uint32_t srcALen,
4467  const q15_t * pSrcB,
4468  uint32_t srcBLen,
4469  q15_t * pDst);
4470 
4471 
4482  const q15_t * pSrcA,
4483  uint32_t srcALen,
4484  const q15_t * pSrcB,
4485  uint32_t srcBLen,
4486  q15_t * pDst);
4487 
4488 
4499  const q15_t * pSrcA,
4500  uint32_t srcALen,
4501  const q15_t * pSrcB,
4502  uint32_t srcBLen,
4503  q15_t * pDst,
4504  q15_t * pScratch);
4505 
4506 
4515  void arm_correlate_q31(
4516  const q31_t * pSrcA,
4517  uint32_t srcALen,
4518  const q31_t * pSrcB,
4519  uint32_t srcBLen,
4520  q31_t * pDst);
4521 
4522 
4532  const q31_t * pSrcA,
4533  uint32_t srcALen,
4534  const q31_t * pSrcB,
4535  uint32_t srcBLen,
4536  q31_t * pDst);
4537 
4538 
4549  void arm_correlate_opt_q7(
4550  const q7_t * pSrcA,
4551  uint32_t srcALen,
4552  const q7_t * pSrcB,
4553  uint32_t srcBLen,
4554  q7_t * pDst,
4555  q15_t * pScratch1,
4556  q15_t * pScratch2);
4557 
4558 
4567  void arm_correlate_q7(
4568  const q7_t * pSrcA,
4569  uint32_t srcALen,
4570  const q7_t * pSrcB,
4571  uint32_t srcBLen,
4572  q7_t * pDst);
4573 
4574 
4578  typedef struct
4579  {
4580  uint16_t numTaps;
4581  uint16_t stateIndex;
4584  uint16_t maxDelay;
4585  int32_t *pTapDelay;
4587 
4591  typedef struct
4592  {
4593  uint16_t numTaps;
4594  uint16_t stateIndex;
4596  const q31_t *pCoeffs;
4597  uint16_t maxDelay;
4598  int32_t *pTapDelay;
4600 
4604  typedef struct
4605  {
4606  uint16_t numTaps;
4607  uint16_t stateIndex;
4609  const q15_t *pCoeffs;
4610  uint16_t maxDelay;
4611  int32_t *pTapDelay;
4613 
4617  typedef struct
4618  {
4619  uint16_t numTaps;
4620  uint16_t stateIndex;
4622  const q7_t *pCoeffs;
4623  uint16_t maxDelay;
4624  int32_t *pTapDelay;
4626 
4627 
4636  void arm_fir_sparse_f32(
4638  const float32_t * pSrc,
4639  float32_t * pDst,
4640  float32_t * pScratchIn,
4641  uint32_t blockSize);
4642 
4643 
4656  uint16_t numTaps,
4657  const float32_t * pCoeffs,
4658  float32_t * pState,
4659  int32_t * pTapDelay,
4660  uint16_t maxDelay,
4661  uint32_t blockSize);
4662 
4663 
4672  void arm_fir_sparse_q31(
4674  const q31_t * pSrc,
4675  q31_t * pDst,
4676  q31_t * pScratchIn,
4677  uint32_t blockSize);
4678 
4679 
4692  uint16_t numTaps,
4693  const q31_t * pCoeffs,
4694  q31_t * pState,
4695  int32_t * pTapDelay,
4696  uint16_t maxDelay,
4697  uint32_t blockSize);
4698 
4699 
4709  void arm_fir_sparse_q15(
4711  const q15_t * pSrc,
4712  q15_t * pDst,
4713  q15_t * pScratchIn,
4714  q31_t * pScratchOut,
4715  uint32_t blockSize);
4716 
4717 
4730  uint16_t numTaps,
4731  const q15_t * pCoeffs,
4732  q15_t * pState,
4733  int32_t * pTapDelay,
4734  uint16_t maxDelay,
4735  uint32_t blockSize);
4736 
4737 
4747  void arm_fir_sparse_q7(
4749  const q7_t * pSrc,
4750  q7_t * pDst,
4751  q7_t * pScratchIn,
4752  q31_t * pScratchOut,
4753  uint32_t blockSize);
4754 
4755 
4768  uint16_t numTaps,
4769  const q7_t * pCoeffs,
4770  q7_t * pState,
4771  int32_t * pTapDelay,
4772  uint16_t maxDelay,
4773  uint32_t blockSize);
4774 
4775 
4782  void arm_sin_cos_f32(
4783  float32_t theta,
4784  float32_t * pSinVal,
4785  float32_t * pCosVal);
4786 
4787 
4794  void arm_sin_cos_q31(
4795  q31_t theta,
4796  q31_t * pSinVal,
4797  q31_t * pCosVal);
4798 
4799 
4806  void arm_cmplx_conj_f32(
4807  const float32_t * pSrc,
4808  float32_t * pDst,
4809  uint32_t numSamples);
4810 
4817  void arm_cmplx_conj_q31(
4818  const q31_t * pSrc,
4819  q31_t * pDst,
4820  uint32_t numSamples);
4821 
4822 
4829  void arm_cmplx_conj_q15(
4830  const q15_t * pSrc,
4831  q15_t * pDst,
4832  uint32_t numSamples);
4833 
4834 
4842  const float32_t * pSrc,
4843  float32_t * pDst,
4844  uint32_t numSamples);
4845 
4846 
4854  const q31_t * pSrc,
4855  q31_t * pDst,
4856  uint32_t numSamples);
4857 
4858 
4866  const q15_t * pSrc,
4867  q15_t * pDst,
4868  uint32_t numSamples);
4869 
4870 
4946  float32_t in)
4947  {
4948  float32_t out;
4949 
4950  /* y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2] */
4951  out = (S->A0 * in) +
4952  (S->A1 * S->state[0]) + (S->A2 * S->state[1]) + (S->state[2]);
4953 
4954  /* Update state */
4955  S->state[1] = S->state[0];
4956  S->state[0] = in;
4957  S->state[2] = out;
4958 
4959  /* return to application */
4960  return (out);
4961 
4962  }
4963 
4979  q31_t in)
4980  {
4981  q63_t acc;
4982  q31_t out;
4983 
4984  /* acc = A0 * x[n] */
4985  acc = (q63_t) S->A0 * in;
4986 
4987  /* acc += A1 * x[n-1] */
4988  acc += (q63_t) S->A1 * S->state[0];
4989 
4990  /* acc += A2 * x[n-2] */
4991  acc += (q63_t) S->A2 * S->state[1];
4992 
4993  /* convert output to 1.31 format to add y[n-1] */
4994  out = (q31_t) (acc >> 31U);
4995 
4996  /* out += y[n-1] */
4997  out += S->state[2];
4998 
4999  /* Update state */
5000  S->state[1] = S->state[0];
5001  S->state[0] = in;
5002  S->state[2] = out;
5003 
5004  /* return to application */
5005  return (out);
5006  }
5007 
5008 
5025  q15_t in)
5026  {
5027  q63_t acc;
5028  q15_t out;
5029 
5030 #if defined (ARM_MATH_DSP)
5031  /* Implementation of PID controller */
5032 
5033  /* acc = A0 * x[n] */
5034  acc = (q31_t) __SMUAD((uint32_t)S->A0, (uint32_t)in);
5035 
5036  /* acc += A1 * x[n-1] + A2 * x[n-2] */
5037  acc = (q63_t)__SMLALD((uint32_t)S->A1, (uint32_t)read_q15x2 (S->state), (uint64_t)acc);
5038 #else
5039  /* acc = A0 * x[n] */
5040  acc = ((q31_t) S->A0) * in;
5041 
5042  /* acc += A1 * x[n-1] + A2 * x[n-2] */
5043  acc += (q31_t) S->A1 * S->state[0];
5044  acc += (q31_t) S->A2 * S->state[1];
5045 #endif
5046 
5047  /* acc += y[n-1] */
5048  acc += (q31_t) S->state[2] << 15;
5049 
5050  /* saturate the output */
5051  out = (q15_t) (__SSAT((acc >> 15), 16));
5052 
5053  /* Update state */
5054  S->state[1] = S->state[0];
5055  S->state[0] = in;
5056  S->state[2] = out;
5057 
5058  /* return to application */
5059  return (out);
5060  }
5061 
5075  const arm_matrix_instance_f32 * src,
5076  arm_matrix_instance_f32 * dst);
5077 
5078 
5087  const arm_matrix_instance_f64 * src,
5088  arm_matrix_instance_f64 * dst);
5089 
5090 
5091 
5133  float32_t Ia,
5134  float32_t Ib,
5135  float32_t * pIalpha,
5136  float32_t * pIbeta)
5137  {
5138  /* Calculate pIalpha using the equation, pIalpha = Ia */
5139  *pIalpha = Ia;
5140 
5141  /* Calculate pIbeta using the equation, pIbeta = (1/sqrt(3)) * Ia + (2/sqrt(3)) * Ib */
5142  *pIbeta = ((float32_t) 0.57735026919 * Ia + (float32_t) 1.15470053838 * Ib);
5143  }
5144 
5145 
5160  q31_t Ia,
5161  q31_t Ib,
5162  q31_t * pIalpha,
5163  q31_t * pIbeta)
5164  {
5165  q31_t product1, product2; /* Temporary variables used to store intermediate results */
5166 
5167  /* Calculating pIalpha from Ia by equation pIalpha = Ia */
5168  *pIalpha = Ia;
5169 
5170  /* Intermediate product is calculated by (1/(sqrt(3)) * Ia) */
5171  product1 = (q31_t) (((q63_t) Ia * 0x24F34E8B) >> 30);
5172 
5173  /* Intermediate product is calculated by (2/sqrt(3) * Ib) */
5174  product2 = (q31_t) (((q63_t) Ib * 0x49E69D16) >> 30);
5175 
5176  /* pIbeta is calculated by adding the intermediate products */
5177  *pIbeta = __QADD(product1, product2);
5178  }
5179 
5219  float32_t Ialpha,
5220  float32_t Ibeta,
5221  float32_t * pIa,
5222  float32_t * pIb)
5223  {
5224  /* Calculating pIa from Ialpha by equation pIa = Ialpha */
5225  *pIa = Ialpha;
5226 
5227  /* Calculating pIb from Ialpha and Ibeta by equation pIb = -(1/2) * Ialpha + (sqrt(3)/2) * Ibeta */
5228  *pIb = -0.5f * Ialpha + 0.8660254039f * Ibeta;
5229  }
5230 
5231 
5246  q31_t Ialpha,
5247  q31_t Ibeta,
5248  q31_t * pIa,
5249  q31_t * pIb)
5250  {
5251  q31_t product1, product2; /* Temporary variables used to store intermediate results */
5252 
5253  /* Calculating pIa from Ialpha by equation pIa = Ialpha */
5254  *pIa = Ialpha;
5255 
5256  /* Intermediate product is calculated by (1/(2*sqrt(3)) * Ia) */
5257  product1 = (q31_t) (((q63_t) (Ialpha) * (0x40000000)) >> 31);
5258 
5259  /* Intermediate product is calculated by (1/sqrt(3) * pIb) */
5260  product2 = (q31_t) (((q63_t) (Ibeta) * (0x6ED9EBA1)) >> 31);
5261 
5262  /* pIb is calculated by subtracting the products */
5263  *pIb = __QSUB(product2, product1);
5264  }
5265 
5319  float32_t Ialpha,
5320  float32_t Ibeta,
5321  float32_t * pId,
5322  float32_t * pIq,
5323  float32_t sinVal,
5324  float32_t cosVal)
5325  {
5326  /* Calculate pId using the equation, pId = Ialpha * cosVal + Ibeta * sinVal */
5327  *pId = Ialpha * cosVal + Ibeta * sinVal;
5328 
5329  /* Calculate pIq using the equation, pIq = - Ialpha * sinVal + Ibeta * cosVal */
5330  *pIq = -Ialpha * sinVal + Ibeta * cosVal;
5331  }
5332 
5333 
5350  q31_t Ialpha,
5351  q31_t Ibeta,
5352  q31_t * pId,
5353  q31_t * pIq,
5354  q31_t sinVal,
5355  q31_t cosVal)
5356  {
5357  q31_t product1, product2; /* Temporary variables used to store intermediate results */
5358  q31_t product3, product4; /* Temporary variables used to store intermediate results */
5359 
5360  /* Intermediate product is calculated by (Ialpha * cosVal) */
5361  product1 = (q31_t) (((q63_t) (Ialpha) * (cosVal)) >> 31);
5362 
5363  /* Intermediate product is calculated by (Ibeta * sinVal) */
5364  product2 = (q31_t) (((q63_t) (Ibeta) * (sinVal)) >> 31);
5365 
5366 
5367  /* Intermediate product is calculated by (Ialpha * sinVal) */
5368  product3 = (q31_t) (((q63_t) (Ialpha) * (sinVal)) >> 31);
5369 
5370  /* Intermediate product is calculated by (Ibeta * cosVal) */
5371  product4 = (q31_t) (((q63_t) (Ibeta) * (cosVal)) >> 31);
5372 
5373  /* Calculate pId by adding the two intermediate products 1 and 2 */
5374  *pId = __QADD(product1, product2);
5375 
5376  /* Calculate pIq by subtracting the two intermediate products 3 from 4 */
5377  *pIq = __QSUB(product4, product3);
5378  }
5379 
5422  float32_t Id,
5423  float32_t Iq,
5424  float32_t * pIalpha,
5425  float32_t * pIbeta,
5426  float32_t sinVal,
5427  float32_t cosVal)
5428  {
5429  /* Calculate pIalpha using the equation, pIalpha = Id * cosVal - Iq * sinVal */
5430  *pIalpha = Id * cosVal - Iq * sinVal;
5431 
5432  /* Calculate pIbeta using the equation, pIbeta = Id * sinVal + Iq * cosVal */
5433  *pIbeta = Id * sinVal + Iq * cosVal;
5434  }
5435 
5436 
5453  q31_t Id,
5454  q31_t Iq,
5455  q31_t * pIalpha,
5456  q31_t * pIbeta,
5457  q31_t sinVal,
5458  q31_t cosVal)
5459  {
5460  q31_t product1, product2; /* Temporary variables used to store intermediate results */
5461  q31_t product3, product4; /* Temporary variables used to store intermediate results */
5462 
5463  /* Intermediate product is calculated by (Id * cosVal) */
5464  product1 = (q31_t) (((q63_t) (Id) * (cosVal)) >> 31);
5465 
5466  /* Intermediate product is calculated by (Iq * sinVal) */
5467  product2 = (q31_t) (((q63_t) (Iq) * (sinVal)) >> 31);
5468 
5469 
5470  /* Intermediate product is calculated by (Id * sinVal) */
5471  product3 = (q31_t) (((q63_t) (Id) * (sinVal)) >> 31);
5472 
5473  /* Intermediate product is calculated by (Iq * cosVal) */
5474  product4 = (q31_t) (((q63_t) (Iq) * (cosVal)) >> 31);
5475 
5476  /* Calculate pIalpha by using the two intermediate products 1 and 2 */
5477  *pIalpha = __QSUB(product1, product2);
5478 
5479  /* Calculate pIbeta by using the two intermediate products 3 and 4 */
5480  *pIbeta = __QADD(product4, product3);
5481  }
5482 
5538  float32_t x)
5539  {
5540  float32_t y;
5541  float32_t x0, x1; /* Nearest input values */
5542  float32_t y0, y1; /* Nearest output values */
5543  float32_t xSpacing = S->xSpacing; /* spacing between input values */
5544  int32_t i; /* Index variable */
5545  float32_t *pYData = S->pYData; /* pointer to output table */
5546 
5547  /* Calculation of index */
5548  i = (int32_t) ((x - S->x1) / xSpacing);
5549 
5550  if (i < 0)
5551  {
5552  /* Iniatilize output for below specified range as least output value of table */
5553  y = pYData[0];
5554  }
5555  else if ((uint32_t)i >= S->nValues)
5556  {
5557  /* Iniatilize output for above specified range as last output value of table */
5558  y = pYData[S->nValues - 1];
5559  }
5560  else
5561  {
5562  /* Calculation of nearest input values */
5563  x0 = S->x1 + i * xSpacing;
5564  x1 = S->x1 + (i + 1) * xSpacing;
5565 
5566  /* Read of nearest output values */
5567  y0 = pYData[i];
5568  y1 = pYData[i + 1];
5569 
5570  /* Calculation of output */
5571  y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0));
5572 
5573  }
5574 
5575  /* returns output value */
5576  return (y);
5577  }
5578 
5579 
5594  q31_t * pYData,
5595  q31_t x,
5596  uint32_t nValues)
5597  {
5598  q31_t y; /* output */
5599  q31_t y0, y1; /* Nearest output values */
5600  q31_t fract; /* fractional part */
5601  int32_t index; /* Index to read nearest output values */
5602 
5603  /* Input is in 12.20 format */
5604  /* 12 bits for the table index */
5605  /* Index value calculation */
5606  index = ((x & (q31_t)0xFFF00000) >> 20);
5607 
5608  if (index >= (int32_t)(nValues - 1))
5609  {
5610  return (pYData[nValues - 1]);
5611  }
5612  else if (index < 0)
5613  {
5614  return (pYData[0]);
5615  }
5616  else
5617  {
5618  /* 20 bits for the fractional part */
5619  /* shift left by 11 to keep fract in 1.31 format */
5620  fract = (x & 0x000FFFFF) << 11;
5621 
5622  /* Read two nearest output values from the index in 1.31(q31) format */
5623  y0 = pYData[index];
5624  y1 = pYData[index + 1];
5625 
5626  /* Calculation of y0 * (1-fract) and y is in 2.30 format */
5627  y = ((q31_t) ((q63_t) y0 * (0x7FFFFFFF - fract) >> 32));
5628 
5629  /* Calculation of y0 * (1-fract) + y1 *fract and y is in 2.30 format */
5630  y += ((q31_t) (((q63_t) y1 * fract) >> 32));
5631 
5632  /* Convert y to 1.31 format */
5633  return (y << 1U);
5634  }
5635  }
5636 
5637 
5652  q15_t * pYData,
5653  q31_t x,
5654  uint32_t nValues)
5655  {
5656  q63_t y; /* output */
5657  q15_t y0, y1; /* Nearest output values */
5658  q31_t fract; /* fractional part */
5659  int32_t index; /* Index to read nearest output values */
5660 
5661  /* Input is in 12.20 format */
5662  /* 12 bits for the table index */
5663  /* Index value calculation */
5664  index = ((x & (int32_t)0xFFF00000) >> 20);
5665 
5666  if (index >= (int32_t)(nValues - 1))
5667  {
5668  return (pYData[nValues - 1]);
5669  }
5670  else if (index < 0)
5671  {
5672  return (pYData[0]);
5673  }
5674  else
5675  {
5676  /* 20 bits for the fractional part */
5677  /* fract is in 12.20 format */
5678  fract = (x & 0x000FFFFF);
5679 
5680  /* Read two nearest output values from the index */
5681  y0 = pYData[index];
5682  y1 = pYData[index + 1];
5683 
5684  /* Calculation of y0 * (1-fract) and y is in 13.35 format */
5685  y = ((q63_t) y0 * (0xFFFFF - fract));
5686 
5687  /* Calculation of (y0 * (1-fract) + y1 * fract) and y is in 13.35 format */
5688  y += ((q63_t) y1 * (fract));
5689 
5690  /* convert y to 1.15 format */
5691  return (q15_t) (y >> 20);
5692  }
5693  }
5694 
5695 
5709  q7_t * pYData,
5710  q31_t x,
5711  uint32_t nValues)
5712  {
5713  q31_t y; /* output */
5714  q7_t y0, y1; /* Nearest output values */
5715  q31_t fract; /* fractional part */
5716  uint32_t index; /* Index to read nearest output values */
5717 
5718  /* Input is in 12.20 format */
5719  /* 12 bits for the table index */
5720  /* Index value calculation */
5721  if (x < 0)
5722  {
5723  return (pYData[0]);
5724  }
5725  index = (x >> 20) & 0xfff;
5726 
5727  if (index >= (nValues - 1))
5728  {
5729  return (pYData[nValues - 1]);
5730  }
5731  else
5732  {
5733  /* 20 bits for the fractional part */
5734  /* fract is in 12.20 format */
5735  fract = (x & 0x000FFFFF);
5736 
5737  /* Read two nearest output values from the index and are in 1.7(q7) format */
5738  y0 = pYData[index];
5739  y1 = pYData[index + 1];
5740 
5741  /* Calculation of y0 * (1-fract ) and y is in 13.27(q27) format */
5742  y = ((y0 * (0xFFFFF - fract)));
5743 
5744  /* Calculation of y1 * fract + y0 * (1-fract) and y is in 13.27(q27) format */
5745  y += (y1 * fract);
5746 
5747  /* convert y to 1.7(q7) format */
5748  return (q7_t) (y >> 20);
5749  }
5750  }
5751 
5762  float32_t x);
5763 
5764 
5771  q31_t x);
5772 
5773 
5780  q15_t x);
5781 
5782 
5789  float32_t x);
5790 
5791 
5798  q31_t x);
5799 
5800 
5807  q15_t x);
5808 
5809 
5850  float32_t in,
5851  float32_t * pOut)
5852  {
5853  if (in >= 0.0f)
5854  {
5855 #if defined ( __CC_ARM )
5856  #if defined __TARGET_FPU_VFP
5857  *pOut = __sqrtf(in);
5858  #else
5859  *pOut = sqrtf(in);
5860  #endif
5861 
5862 #elif defined ( __ICCARM__ )
5863  #if defined __ARMVFP__
5864  __ASM("VSQRT.F32 %0,%1" : "=t"(*pOut) : "t"(in));
5865  #else
5866  *pOut = sqrtf(in);
5867  #endif
5868 
5869 #else
5870  *pOut = sqrtf(in);
5871 #endif
5872 
5873  return (ARM_MATH_SUCCESS);
5874  }
5875  else
5876  {
5877  *pOut = 0.0f;
5878  return (ARM_MATH_ARGUMENT_ERROR);
5879  }
5880  }
5881 
5882 
5892  q31_t in,
5893  q31_t * pOut);
5894 
5895 
5905  q15_t in,
5906  q15_t * pOut);
5907 
5916  void arm_vsqrt_f32(
5917  float32_t * pIn,
5918  float32_t * pOut,
5919  uint16_t len);
5920 
5921  void arm_vsqrt_q31(
5922  q31_t * pIn,
5923  q31_t * pOut,
5924  uint16_t len);
5925 
5926  void arm_vsqrt_q15(
5927  q15_t * pIn,
5928  q15_t * pOut,
5929  uint16_t len);
5930 
5940  int32_t * circBuffer,
5941  int32_t L,
5942  uint16_t * writeOffset,
5943  int32_t bufferInc,
5944  const int32_t * src,
5945  int32_t srcInc,
5946  uint32_t blockSize)
5947  {
5948  uint32_t i = 0U;
5949  int32_t wOffset;
5950 
5951  /* Copy the value of Index pointer that points
5952  * to the current location where the input samples to be copied */
5953  wOffset = *writeOffset;
5954 
5955  /* Loop over the blockSize */
5956  i = blockSize;
5957 
5958  while (i > 0U)
5959  {
5960  /* copy the input sample to the circular buffer */
5961  circBuffer[wOffset] = *src;
5962 
5963  /* Update the input pointer */
5964  src += srcInc;
5965 
5966  /* Circularly update wOffset. Watch out for positive and negative value */
5967  wOffset += bufferInc;
5968  if (wOffset >= L)
5969  wOffset -= L;
5970 
5971  /* Decrement the loop counter */
5972  i--;
5973  }
5974 
5975  /* Update the index pointer */
5976  *writeOffset = (uint16_t)wOffset;
5977  }
5978 
5979 
5980 
5985  int32_t * circBuffer,
5986  int32_t L,
5987  int32_t * readOffset,
5988  int32_t bufferInc,
5989  int32_t * dst,
5990  int32_t * dst_base,
5991  int32_t dst_length,
5992  int32_t dstInc,
5993  uint32_t blockSize)
5994  {
5995  uint32_t i = 0U;
5996  int32_t rOffset;
5997  int32_t* dst_end;
5998 
5999  /* Copy the value of Index pointer that points
6000  * to the current location from where the input samples to be read */
6001  rOffset = *readOffset;
6002  dst_end = dst_base + dst_length;
6003 
6004  /* Loop over the blockSize */
6005  i = blockSize;
6006 
6007  while (i > 0U)
6008  {
6009  /* copy the sample from the circular buffer to the destination buffer */
6010  *dst = circBuffer[rOffset];
6011 
6012  /* Update the input pointer */
6013  dst += dstInc;
6014 
6015  if (dst == dst_end)
6016  {
6017  dst = dst_base;
6018  }
6019 
6020  /* Circularly update rOffset. Watch out for positive and negative value */
6021  rOffset += bufferInc;
6022 
6023  if (rOffset >= L)
6024  {
6025  rOffset -= L;
6026  }
6027 
6028  /* Decrement the loop counter */
6029  i--;
6030  }
6031 
6032  /* Update the index pointer */
6033  *readOffset = rOffset;
6034  }
6035 
6036 
6041  q15_t * circBuffer,
6042  int32_t L,
6043  uint16_t * writeOffset,
6044  int32_t bufferInc,
6045  const q15_t * src,
6046  int32_t srcInc,
6047  uint32_t blockSize)
6048  {
6049  uint32_t i = 0U;
6050  int32_t wOffset;
6051 
6052  /* Copy the value of Index pointer that points
6053  * to the current location where the input samples to be copied */
6054  wOffset = *writeOffset;
6055 
6056  /* Loop over the blockSize */
6057  i = blockSize;
6058 
6059  while (i > 0U)
6060  {
6061  /* copy the input sample to the circular buffer */
6062  circBuffer[wOffset] = *src;
6063 
6064  /* Update the input pointer */
6065  src += srcInc;
6066 
6067  /* Circularly update wOffset. Watch out for positive and negative value */
6068  wOffset += bufferInc;
6069  if (wOffset >= L)
6070  wOffset -= L;
6071 
6072  /* Decrement the loop counter */
6073  i--;
6074  }
6075 
6076  /* Update the index pointer */
6077  *writeOffset = (uint16_t)wOffset;
6078  }
6079 
6080 
6085  q15_t * circBuffer,
6086  int32_t L,
6087  int32_t * readOffset,
6088  int32_t bufferInc,
6089  q15_t * dst,
6090  q15_t * dst_base,
6091  int32_t dst_length,
6092  int32_t dstInc,
6093  uint32_t blockSize)
6094  {
6095  uint32_t i = 0;
6096  int32_t rOffset;
6097  q15_t* dst_end;
6098 
6099  /* Copy the value of Index pointer that points
6100  * to the current location from where the input samples to be read */
6101  rOffset = *readOffset;
6102 
6103  dst_end = dst_base + dst_length;
6104 
6105  /* Loop over the blockSize */
6106  i = blockSize;
6107 
6108  while (i > 0U)
6109  {
6110  /* copy the sample from the circular buffer to the destination buffer */
6111  *dst = circBuffer[rOffset];
6112 
6113  /* Update the input pointer */
6114  dst += dstInc;
6115 
6116  if (dst == dst_end)
6117  {
6118  dst = dst_base;
6119  }
6120 
6121  /* Circularly update wOffset. Watch out for positive and negative value */
6122  rOffset += bufferInc;
6123 
6124  if (rOffset >= L)
6125  {
6126  rOffset -= L;
6127  }
6128 
6129  /* Decrement the loop counter */
6130  i--;
6131  }
6132 
6133  /* Update the index pointer */
6134  *readOffset = rOffset;
6135  }
6136 
6137 
6142  q7_t * circBuffer,
6143  int32_t L,
6144  uint16_t * writeOffset,
6145  int32_t bufferInc,
6146  const q7_t * src,
6147  int32_t srcInc,
6148  uint32_t blockSize)
6149  {
6150  uint32_t i = 0U;
6151  int32_t wOffset;
6152 
6153  /* Copy the value of Index pointer that points
6154  * to the current location where the input samples to be copied */
6155  wOffset = *writeOffset;
6156 
6157  /* Loop over the blockSize */
6158  i = blockSize;
6159 
6160  while (i > 0U)
6161  {
6162  /* copy the input sample to the circular buffer */
6163  circBuffer[wOffset] = *src;
6164 
6165  /* Update the input pointer */
6166  src += srcInc;
6167 
6168  /* Circularly update wOffset. Watch out for positive and negative value */
6169  wOffset += bufferInc;
6170  if (wOffset >= L)
6171  wOffset -= L;
6172 
6173  /* Decrement the loop counter */
6174  i--;
6175  }
6176 
6177  /* Update the index pointer */
6178  *writeOffset = (uint16_t)wOffset;
6179  }
6180 
6181 
6186  q7_t * circBuffer,
6187  int32_t L,
6188  int32_t * readOffset,
6189  int32_t bufferInc,
6190  q7_t * dst,
6191  q7_t * dst_base,
6192  int32_t dst_length,
6193  int32_t dstInc,
6194  uint32_t blockSize)
6195  {
6196  uint32_t i = 0;
6197  int32_t rOffset;
6198  q7_t* dst_end;
6199 
6200  /* Copy the value of Index pointer that points
6201  * to the current location from where the input samples to be read */
6202  rOffset = *readOffset;
6203 
6204  dst_end = dst_base + dst_length;
6205 
6206  /* Loop over the blockSize */
6207  i = blockSize;
6208 
6209  while (i > 0U)
6210  {
6211  /* copy the sample from the circular buffer to the destination buffer */
6212  *dst = circBuffer[rOffset];
6213 
6214  /* Update the input pointer */
6215  dst += dstInc;
6216 
6217  if (dst == dst_end)
6218  {
6219  dst = dst_base;
6220  }
6221 
6222  /* Circularly update rOffset. Watch out for positive and negative value */
6223  rOffset += bufferInc;
6224 
6225  if (rOffset >= L)
6226  {
6227  rOffset -= L;
6228  }
6229 
6230  /* Decrement the loop counter */
6231  i--;
6232  }
6233 
6234  /* Update the index pointer */
6235  *readOffset = rOffset;
6236  }
6237 
6238 
6245  void arm_power_q31(
6246  const q31_t * pSrc,
6247  uint32_t blockSize,
6248  q63_t * pResult);
6249 
6250 
6257  void arm_power_f32(
6258  const float32_t * pSrc,
6259  uint32_t blockSize,
6260  float32_t * pResult);
6261 
6262 
6269  void arm_power_q15(
6270  const q15_t * pSrc,
6271  uint32_t blockSize,
6272  q63_t * pResult);
6273 
6274 
6281  void arm_power_q7(
6282  const q7_t * pSrc,
6283  uint32_t blockSize,
6284  q31_t * pResult);
6285 
6286 
6293  void arm_mean_q7(
6294  const q7_t * pSrc,
6295  uint32_t blockSize,
6296  q7_t * pResult);
6297 
6298 
6305  void arm_mean_q15(
6306  const q15_t * pSrc,
6307  uint32_t blockSize,
6308  q15_t * pResult);
6309 
6310 
6317  void arm_mean_q31(
6318  const q31_t * pSrc,
6319  uint32_t blockSize,
6320  q31_t * pResult);
6321 
6322 
6329  void arm_mean_f32(
6330  const float32_t * pSrc,
6331  uint32_t blockSize,
6332  float32_t * pResult);
6333 
6334 
6341  void arm_var_f32(
6342  const float32_t * pSrc,
6343  uint32_t blockSize,
6344  float32_t * pResult);
6345 
6346 
6353  void arm_var_q31(
6354  const q31_t * pSrc,
6355  uint32_t blockSize,
6356  q31_t * pResult);
6357 
6358 
6365  void arm_var_q15(
6366  const q15_t * pSrc,
6367  uint32_t blockSize,
6368  q15_t * pResult);
6369 
6370 
6377  void arm_rms_f32(
6378  const float32_t * pSrc,
6379  uint32_t blockSize,
6380  float32_t * pResult);
6381 
6382 
6389  void arm_rms_q31(
6390  const q31_t * pSrc,
6391  uint32_t blockSize,
6392  q31_t * pResult);
6393 
6394 
6401  void arm_rms_q15(
6402  const q15_t * pSrc,
6403  uint32_t blockSize,
6404  q15_t * pResult);
6405 
6406 
6413  void arm_std_f32(
6414  const float32_t * pSrc,
6415  uint32_t blockSize,
6416  float32_t * pResult);
6417 
6418 
6425  void arm_std_q31(
6426  const q31_t * pSrc,
6427  uint32_t blockSize,
6428  q31_t * pResult);
6429 
6430 
6437  void arm_std_q15(
6438  const q15_t * pSrc,
6439  uint32_t blockSize,
6440  q15_t * pResult);
6441 
6442 
6449  void arm_cmplx_mag_f32(
6450  const float32_t * pSrc,
6451  float32_t * pDst,
6452  uint32_t numSamples);
6453 
6454 
6461  void arm_cmplx_mag_q31(
6462  const q31_t * pSrc,
6463  q31_t * pDst,
6464  uint32_t numSamples);
6465 
6466 
6473  void arm_cmplx_mag_q15(
6474  const q15_t * pSrc,
6475  q15_t * pDst,
6476  uint32_t numSamples);
6477 
6478 
6488  const q15_t * pSrcA,
6489  const q15_t * pSrcB,
6490  uint32_t numSamples,
6491  q31_t * realResult,
6492  q31_t * imagResult);
6493 
6494 
6504  const q31_t * pSrcA,
6505  const q31_t * pSrcB,
6506  uint32_t numSamples,
6507  q63_t * realResult,
6508  q63_t * imagResult);
6509 
6510 
6520  const float32_t * pSrcA,
6521  const float32_t * pSrcB,
6522  uint32_t numSamples,
6523  float32_t * realResult,
6524  float32_t * imagResult);
6525 
6526 
6535  const q15_t * pSrcCmplx,
6536  const q15_t * pSrcReal,
6537  q15_t * pCmplxDst,
6538  uint32_t numSamples);
6539 
6540 
6549  const q31_t * pSrcCmplx,
6550  const q31_t * pSrcReal,
6551  q31_t * pCmplxDst,
6552  uint32_t numSamples);
6553 
6554 
6563  const float32_t * pSrcCmplx,
6564  const float32_t * pSrcReal,
6565  float32_t * pCmplxDst,
6566  uint32_t numSamples);
6567 
6568 
6576  void arm_min_q7(
6577  const q7_t * pSrc,
6578  uint32_t blockSize,
6579  q7_t * result,
6580  uint32_t * index);
6581 
6582 
6590  void arm_min_q15(
6591  const q15_t * pSrc,
6592  uint32_t blockSize,
6593  q15_t * pResult,
6594  uint32_t * pIndex);
6595 
6596 
6604  void arm_min_q31(
6605  const q31_t * pSrc,
6606  uint32_t blockSize,
6607  q31_t * pResult,
6608  uint32_t * pIndex);
6609 
6610 
6618  void arm_min_f32(
6619  const float32_t * pSrc,
6620  uint32_t blockSize,
6621  float32_t * pResult,
6622  uint32_t * pIndex);
6623 
6624 
6632  void arm_max_q7(
6633  const q7_t * pSrc,
6634  uint32_t blockSize,
6635  q7_t * pResult,
6636  uint32_t * pIndex);
6637 
6638 
6646  void arm_max_q15(
6647  const q15_t * pSrc,
6648  uint32_t blockSize,
6649  q15_t * pResult,
6650  uint32_t * pIndex);
6651 
6652 
6660  void arm_max_q31(
6661  const q31_t * pSrc,
6662  uint32_t blockSize,
6663  q31_t * pResult,
6664  uint32_t * pIndex);
6665 
6666 
6674  void arm_max_f32(
6675  const float32_t * pSrc,
6676  uint32_t blockSize,
6677  float32_t * pResult,
6678  uint32_t * pIndex);
6679 
6680 
6689  const q15_t * pSrcA,
6690  const q15_t * pSrcB,
6691  q15_t * pDst,
6692  uint32_t numSamples);
6693 
6694 
6703  const q31_t * pSrcA,
6704  const q31_t * pSrcB,
6705  q31_t * pDst,
6706  uint32_t numSamples);
6707 
6708 
6717  const float32_t * pSrcA,
6718  const float32_t * pSrcB,
6719  float32_t * pDst,
6720  uint32_t numSamples);
6721 
6722 
6729  void arm_float_to_q31(
6730  const float32_t * pSrc,
6731  q31_t * pDst,
6732  uint32_t blockSize);
6733 
6734 
6741  void arm_float_to_q15(
6742  const float32_t * pSrc,
6743  q15_t * pDst,
6744  uint32_t blockSize);
6745 
6746 
6753  void arm_float_to_q7(
6754  const float32_t * pSrc,
6755  q7_t * pDst,
6756  uint32_t blockSize);
6757 
6758 
6765  void arm_q31_to_float(
6766  const q31_t * pSrc,
6767  float32_t * pDst,
6768  uint32_t blockSize);
6769 
6770 
6777  void arm_q31_to_q15(
6778  const q31_t * pSrc,
6779  q15_t * pDst,
6780  uint32_t blockSize);
6781 
6782 
6789  void arm_q31_to_q7(
6790  const q31_t * pSrc,
6791  q7_t * pDst,
6792  uint32_t blockSize);
6793 
6794 
6801  void arm_q15_to_float(
6802  const q15_t * pSrc,
6803  float32_t * pDst,
6804  uint32_t blockSize);
6805 
6806 
6813  void arm_q15_to_q31(
6814  const q15_t * pSrc,
6815  q31_t * pDst,
6816  uint32_t blockSize);
6817 
6818 
6825  void arm_q15_to_q7(
6826  const q15_t * pSrc,
6827  q7_t * pDst,
6828  uint32_t blockSize);
6829 
6830 
6837  void arm_q7_to_float(
6838  const q7_t * pSrc,
6839  float32_t * pDst,
6840  uint32_t blockSize);
6841 
6842 
6849  void arm_q7_to_q31(
6850  const q7_t * pSrc,
6851  q31_t * pDst,
6852  uint32_t blockSize);
6853 
6854 
6861  void arm_q7_to_q15(
6862  const q7_t * pSrc,
6863  q15_t * pDst,
6864  uint32_t blockSize);
6865 
6866 
6938  float32_t X,
6939  float32_t Y)
6940  {
6941  float32_t out;
6942  float32_t f00, f01, f10, f11;
6943  float32_t *pData = S->pData;
6944  int32_t xIndex, yIndex, index;
6945  float32_t xdiff, ydiff;
6946  float32_t b1, b2, b3, b4;
6947 
6948  xIndex = (int32_t) X;
6949  yIndex = (int32_t) Y;
6950 
6951  /* Care taken for table outside boundary */
6952  /* Returns zero output when values are outside table boundary */
6953  if (xIndex < 0 || xIndex > (S->numRows - 1) || yIndex < 0 || yIndex > (S->numCols - 1))
6954  {
6955  return (0);
6956  }
6957 
6958  /* Calculation of index for two nearest points in X-direction */
6959  index = (xIndex - 1) + (yIndex - 1) * S->numCols;
6960 
6961 
6962  /* Read two nearest points in X-direction */
6963  f00 = pData[index];
6964  f01 = pData[index + 1];
6965 
6966  /* Calculation of index for two nearest points in Y-direction */
6967  index = (xIndex - 1) + (yIndex) * S->numCols;
6968 
6969 
6970  /* Read two nearest points in Y-direction */
6971  f10 = pData[index];
6972  f11 = pData[index + 1];
6973 
6974  /* Calculation of intermediate values */
6975  b1 = f00;
6976  b2 = f01 - f00;
6977  b3 = f10 - f00;
6978  b4 = f00 - f01 - f10 + f11;
6979 
6980  /* Calculation of fractional part in X */
6981  xdiff = X - xIndex;
6982 
6983  /* Calculation of fractional part in Y */
6984  ydiff = Y - yIndex;
6985 
6986  /* Calculation of bi-linear interpolated output */
6987  out = b1 + b2 * xdiff + b3 * ydiff + b4 * xdiff * ydiff;
6988 
6989  /* return to application */
6990  return (out);
6991  }
6992 
6993 
7003  q31_t X,
7004  q31_t Y)
7005  {
7006  q31_t out; /* Temporary output */
7007  q31_t acc = 0; /* output */
7008  q31_t xfract, yfract; /* X, Y fractional parts */
7009  q31_t x1, x2, y1, y2; /* Nearest output values */
7010  int32_t rI, cI; /* Row and column indices */
7011  q31_t *pYData = S->pData; /* pointer to output table values */
7012  uint32_t nCols = S->numCols; /* num of rows */
7013 
7014  /* Input is in 12.20 format */
7015  /* 12 bits for the table index */
7016  /* Index value calculation */
7017  rI = ((X & (q31_t)0xFFF00000) >> 20);
7018 
7019  /* Input is in 12.20 format */
7020  /* 12 bits for the table index */
7021  /* Index value calculation */
7022  cI = ((Y & (q31_t)0xFFF00000) >> 20);
7023 
7024  /* Care taken for table outside boundary */
7025  /* Returns zero output when values are outside table boundary */
7026  if (rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1))
7027  {
7028  return (0);
7029  }
7030 
7031  /* 20 bits for the fractional part */
7032  /* shift left xfract by 11 to keep 1.31 format */
7033  xfract = (X & 0x000FFFFF) << 11U;
7034 
7035  /* Read two nearest output values from the index */
7036  x1 = pYData[(rI) + (int32_t)nCols * (cI) ];
7037  x2 = pYData[(rI) + (int32_t)nCols * (cI) + 1];
7038 
7039  /* 20 bits for the fractional part */
7040  /* shift left yfract by 11 to keep 1.31 format */
7041  yfract = (Y & 0x000FFFFF) << 11U;
7042 
7043  /* Read two nearest output values from the index */
7044  y1 = pYData[(rI) + (int32_t)nCols * (cI + 1) ];
7045  y2 = pYData[(rI) + (int32_t)nCols * (cI + 1) + 1];
7046 
7047  /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 3.29(q29) format */
7048  out = ((q31_t) (((q63_t) x1 * (0x7FFFFFFF - xfract)) >> 32));
7049  acc = ((q31_t) (((q63_t) out * (0x7FFFFFFF - yfract)) >> 32));
7050 
7051  /* x2 * (xfract) * (1-yfract) in 3.29(q29) and adding to acc */
7052  out = ((q31_t) ((q63_t) x2 * (0x7FFFFFFF - yfract) >> 32));
7053  acc += ((q31_t) ((q63_t) out * (xfract) >> 32));
7054 
7055  /* y1 * (1 - xfract) * (yfract) in 3.29(q29) and adding to acc */
7056  out = ((q31_t) ((q63_t) y1 * (0x7FFFFFFF - xfract) >> 32));
7057  acc += ((q31_t) ((q63_t) out * (yfract) >> 32));
7058 
7059  /* y2 * (xfract) * (yfract) in 3.29(q29) and adding to acc */
7060  out = ((q31_t) ((q63_t) y2 * (xfract) >> 32));
7061  acc += ((q31_t) ((q63_t) out * (yfract) >> 32));
7062 
7063  /* Convert acc to 1.31(q31) format */
7064  return ((q31_t)(acc << 2));
7065  }
7066 
7067 
7077  q31_t X,
7078  q31_t Y)
7079  {
7080  q63_t acc = 0; /* output */
7081  q31_t out; /* Temporary output */
7082  q15_t x1, x2, y1, y2; /* Nearest output values */
7083  q31_t xfract, yfract; /* X, Y fractional parts */
7084  int32_t rI, cI; /* Row and column indices */
7085  q15_t *pYData = S->pData; /* pointer to output table values */
7086  uint32_t nCols = S->numCols; /* num of rows */
7087 
7088  /* Input is in 12.20 format */
7089  /* 12 bits for the table index */
7090  /* Index value calculation */
7091  rI = ((X & (q31_t)0xFFF00000) >> 20);
7092 
7093  /* Input is in 12.20 format */
7094  /* 12 bits for the table index */
7095  /* Index value calculation */
7096  cI = ((Y & (q31_t)0xFFF00000) >> 20);
7097 
7098  /* Care taken for table outside boundary */
7099  /* Returns zero output when values are outside table boundary */
7100  if (rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1))
7101  {
7102  return (0);
7103  }
7104 
7105  /* 20 bits for the fractional part */
7106  /* xfract should be in 12.20 format */
7107  xfract = (X & 0x000FFFFF);
7108 
7109  /* Read two nearest output values from the index */
7110  x1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) ];
7111  x2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) + 1];
7112 
7113  /* 20 bits for the fractional part */
7114  /* yfract should be in 12.20 format */
7115  yfract = (Y & 0x000FFFFF);
7116 
7117  /* Read two nearest output values from the index */
7118  y1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) ];
7119  y2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) + 1];
7120 
7121  /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 13.51 format */
7122 
7123  /* x1 is in 1.15(q15), xfract in 12.20 format and out is in 13.35 format */
7124  /* convert 13.35 to 13.31 by right shifting and out is in 1.31 */
7125  out = (q31_t) (((q63_t) x1 * (0xFFFFF - xfract)) >> 4U);
7126  acc = ((q63_t) out * (0xFFFFF - yfract));
7127 
7128  /* x2 * (xfract) * (1-yfract) in 1.51 and adding to acc */
7129  out = (q31_t) (((q63_t) x2 * (0xFFFFF - yfract)) >> 4U);
7130  acc += ((q63_t) out * (xfract));
7131 
7132  /* y1 * (1 - xfract) * (yfract) in 1.51 and adding to acc */
7133  out = (q31_t) (((q63_t) y1 * (0xFFFFF - xfract)) >> 4U);
7134  acc += ((q63_t) out * (yfract));
7135 
7136  /* y2 * (xfract) * (yfract) in 1.51 and adding to acc */
7137  out = (q31_t) (((q63_t) y2 * (xfract)) >> 4U);
7138  acc += ((q63_t) out * (yfract));
7139 
7140  /* acc is in 13.51 format and down shift acc by 36 times */
7141  /* Convert out to 1.15 format */
7142  return ((q15_t)(acc >> 36));
7143  }
7144 
7145 
7155  q31_t X,
7156  q31_t Y)
7157  {
7158  q63_t acc = 0; /* output */
7159  q31_t out; /* Temporary output */
7160  q31_t xfract, yfract; /* X, Y fractional parts */
7161  q7_t x1, x2, y1, y2; /* Nearest output values */
7162  int32_t rI, cI; /* Row and column indices */
7163  q7_t *pYData = S->pData; /* pointer to output table values */
7164  uint32_t nCols = S->numCols; /* num of rows */
7165 
7166  /* Input is in 12.20 format */
7167  /* 12 bits for the table index */
7168  /* Index value calculation */
7169  rI = ((X & (q31_t)0xFFF00000) >> 20);
7170 
7171  /* Input is in 12.20 format */
7172  /* 12 bits for the table index */
7173  /* Index value calculation */
7174  cI = ((Y & (q31_t)0xFFF00000) >> 20);
7175 
7176  /* Care taken for table outside boundary */
7177  /* Returns zero output when values are outside table boundary */
7178  if (rI < 0 || rI > (S->numRows - 1) || cI < 0 || cI > (S->numCols - 1))
7179  {
7180  return (0);
7181  }
7182 
7183  /* 20 bits for the fractional part */
7184  /* xfract should be in 12.20 format */
7185  xfract = (X & (q31_t)0x000FFFFF);
7186 
7187  /* Read two nearest output values from the index */
7188  x1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) ];
7189  x2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI) + 1];
7190 
7191  /* 20 bits for the fractional part */
7192  /* yfract should be in 12.20 format */
7193  yfract = (Y & (q31_t)0x000FFFFF);
7194 
7195  /* Read two nearest output values from the index */
7196  y1 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) ];
7197  y2 = pYData[((uint32_t)rI) + nCols * ((uint32_t)cI + 1) + 1];
7198 
7199  /* Calculation of x1 * (1-xfract ) * (1-yfract) and acc is in 16.47 format */
7200  out = ((x1 * (0xFFFFF - xfract)));
7201  acc = (((q63_t) out * (0xFFFFF - yfract)));
7202 
7203  /* x2 * (xfract) * (1-yfract) in 2.22 and adding to acc */
7204  out = ((x2 * (0xFFFFF - yfract)));
7205  acc += (((q63_t) out * (xfract)));
7206 
7207  /* y1 * (1 - xfract) * (yfract) in 2.22 and adding to acc */
7208  out = ((y1 * (0xFFFFF - xfract)));
7209  acc += (((q63_t) out * (yfract)));
7210 
7211  /* y2 * (xfract) * (yfract) in 2.22 and adding to acc */
7212  out = ((y2 * (yfract)));
7213  acc += (((q63_t) out * (xfract)));
7214 
7215  /* acc in 16.47 format and down shift by 40 to convert to 1.7 format */
7216  return ((q7_t)(acc >> 40));
7217  }
7218 
7224 /* SMMLAR */
7225 #define multAcc_32x32_keep32_R(a, x, y) \
7226  a = (q31_t) (((((q63_t) a) << 32) + ((q63_t) x * y) + 0x80000000LL ) >> 32)
7227 
7228 /* SMMLSR */
7229 #define multSub_32x32_keep32_R(a, x, y) \
7230  a = (q31_t) (((((q63_t) a) << 32) - ((q63_t) x * y) + 0x80000000LL ) >> 32)
7231 
7232 /* SMMULR */
7233 #define mult_32x32_keep32_R(a, x, y) \
7234  a = (q31_t) (((q63_t) x * y + 0x80000000LL ) >> 32)
7235 
7236 /* SMMLA */
7237 #define multAcc_32x32_keep32(a, x, y) \
7238  a += (q31_t) (((q63_t) x * y) >> 32)
7239 
7240 /* SMMLS */
7241 #define multSub_32x32_keep32(a, x, y) \
7242  a -= (q31_t) (((q63_t) x * y) >> 32)
7243 
7244 /* SMMUL */
7245 #define mult_32x32_keep32(a, x, y) \
7246  a = (q31_t) (((q63_t) x * y ) >> 32)
7247 
7248 
7249 #if defined ( __CC_ARM )
7250  /* Enter low optimization region - place directly above function definition */
7251  #if defined( __ARM_ARCH_7EM__ )
7252  #define LOW_OPTIMIZATION_ENTER \
7253  _Pragma ("push") \
7254  _Pragma ("O1")
7255  #else
7256  #define LOW_OPTIMIZATION_ENTER
7257  #endif
7258 
7259  /* Exit low optimization region - place directly after end of function definition */
7260  #if defined ( __ARM_ARCH_7EM__ )
7261  #define LOW_OPTIMIZATION_EXIT \
7262  _Pragma ("pop")
7263  #else
7264  #define LOW_OPTIMIZATION_EXIT
7265  #endif
7266 
7267  /* Enter low optimization region - place directly above function definition */
7268  #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
7269 
7270  /* Exit low optimization region - place directly after end of function definition */
7271  #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
7272 
7273 #elif defined (__ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 )
7274  #define LOW_OPTIMIZATION_ENTER
7275  #define LOW_OPTIMIZATION_EXIT
7276  #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
7277  #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
7278 
7279 #elif defined ( __GNUC__ )
7280  #define LOW_OPTIMIZATION_ENTER \
7281  __attribute__(( optimize("-O1") ))
7282  #define LOW_OPTIMIZATION_EXIT
7283  #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
7284  #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
7285 
7286 #elif defined ( __ICCARM__ )
7287  /* Enter low optimization region - place directly above function definition */
7288  #if defined ( __ARM_ARCH_7EM__ )
7289  #define LOW_OPTIMIZATION_ENTER \
7290  _Pragma ("optimize=low")
7291  #else
7292  #define LOW_OPTIMIZATION_ENTER
7293  #endif
7294 
7295  /* Exit low optimization region - place directly after end of function definition */
7296  #define LOW_OPTIMIZATION_EXIT
7297 
7298  /* Enter low optimization region - place directly above function definition */
7299  #if defined ( __ARM_ARCH_7EM__ )
7300  #define IAR_ONLY_LOW_OPTIMIZATION_ENTER \
7301  _Pragma ("optimize=low")
7302  #else
7303  #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
7304  #endif
7305 
7306  /* Exit low optimization region - place directly after end of function definition */
7307  #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
7308 
7309 #elif defined ( __TI_ARM__ )
7310  #define LOW_OPTIMIZATION_ENTER
7311  #define LOW_OPTIMIZATION_EXIT
7312  #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
7313  #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
7314 
7315 #elif defined ( __CSMC__ )
7316  #define LOW_OPTIMIZATION_ENTER
7317  #define LOW_OPTIMIZATION_EXIT
7318  #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
7319  #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
7320 
7321 #elif defined ( __TASKING__ )
7322  #define LOW_OPTIMIZATION_ENTER
7323  #define LOW_OPTIMIZATION_EXIT
7324  #define IAR_ONLY_LOW_OPTIMIZATION_ENTER
7325  #define IAR_ONLY_LOW_OPTIMIZATION_EXIT
7326 
7327 #endif
7328 
7329 
7330 #ifdef __cplusplus
7331 }
7332 #endif
7333 
7334 /* Compiler specific diagnostic adjustment */
7335 #if defined ( __CC_ARM )
7336 
7337 #elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 )
7338 
7339 #elif defined ( __GNUC__ )
7340 #pragma GCC diagnostic pop
7341 
7342 #elif defined ( __ICCARM__ )
7343 
7344 #elif defined ( __TI_ARM__ )
7345 
7346 #elif defined ( __CSMC__ )
7347 
7348 #elif defined ( __TASKING__ )
7349 
7350 #elif defined ( _MSC_VER )
7351 
7352 #else
7353  #error Unknown compiler
7354 #endif
7355 
7356 #endif /* _ARM_MATH_H */
7357 
arm_cfft_radix4_instance_q31::pBitRevTable
const uint16_t * pBitRevTable
Definition: arm_math.h:2158
arm_fir_instance_q31
Instance structure for the Q31 FIR filter.
Definition: arm_math.h:1217
arm_scale_q15
void arm_scale_q15(const q15_t *pSrc, q15_t scaleFract, int8_t shift, q15_t *pDst, uint32_t blockSize)
Multiplies a Q15 vector by a scalar.
arm_fir_decimate_q15
void arm_fir_decimate_q15(const arm_fir_decimate_instance_q15 *S, const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR decimator.
arm_inv_park_f32
__STATIC_FORCEINLINE void arm_inv_park_f32(float32_t Id, float32_t Iq, float32_t *pIalpha, float32_t *pIbeta, float32_t sinVal, float32_t cosVal)
Floating-point Inverse Park transform.
Definition: arm_math.h:5421
arm_lms_instance_f32::pState
float32_t * pState
Definition: arm_math.h:4120
arm_negate_q15
void arm_negate_q15(const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Negates the elements of a Q15 vector.
arm_fir_interpolate_instance_q31
Instance structure for the Q31 FIR interpolator.
Definition: arm_math.h:3586
arm_lms_norm_f32
void arm_lms_norm_f32(arm_lms_norm_instance_f32 *S, const float32_t *pSrc, float32_t *pRef, float32_t *pOut, float32_t *pErr, uint32_t blockSize)
Processing function for floating-point normalized LMS filter.
arm_lms_norm_instance_f32::energy
float32_t energy
Definition: arm_math.h:4273
arm_lms_instance_q31::numTaps
uint16_t numTaps
Definition: arm_math.h:4218
arm_matrix_instance_q31::pData
q31_t * pData
Definition: arm_math.h:1553
arm_lms_instance_q15::pCoeffs
q15_t * pCoeffs
Definition: arm_math.h:4169
arm_fir_lattice_init_f32
void arm_fir_lattice_init_f32(arm_fir_lattice_instance_f32 *S, uint16_t numStages, const float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point FIR lattice filter.
arm_iir_lattice_instance_q31::pvCoeffs
q31_t * pvCoeffs
Definition: arm_math.h:4003
arm_iir_lattice_instance_f32::pkCoeffs
float32_t * pkCoeffs
Definition: arm_math.h:4013
arm_offset_q7
void arm_offset_q7(const q7_t *pSrc, q7_t offset, q7_t *pDst, uint32_t blockSize)
Adds a constant offset to a Q7 vector.
arm_biquad_casd_df1_inst_f32::numStages
uint32_t numStages
Definition: arm_math.h:1402
arm_cfft_radix2_instance_q31::ifftFlag
uint8_t ifftFlag
Definition: arm_math.h:2129
arm_cfft_radix2_f32
void arm_cfft_radix2_f32(const arm_cfft_radix2_instance_f32 *S, float32_t *pSrc)
arm_cfft_instance_f32::pBitRevTable
const uint16_t * pBitRevTable
Definition: arm_math.h:2270
arm_fir_interpolate_init_q31
arm_status arm_fir_interpolate_init_q31(arm_fir_interpolate_instance_q31 *S, uint8_t L, uint16_t numTaps, const q31_t *pCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 FIR interpolator.
arm_cfft_instance_f32::fftLen
uint16_t fftLen
Definition: arm_math.h:2268
arm_fill_f32
void arm_fill_f32(float32_t value, float32_t *pDst, uint32_t blockSize)
Fills a constant value into a floating-point vector.
float64_t
double float64_t
64-bit floating-point type definition.
Definition: arm_math.h:414
arm_q31_to_q15
void arm_q31_to_q15(const q31_t *pSrc, q15_t *pDst, uint32_t blockSize)
Converts the elements of the Q31 vector to Q15 vector.
arm_fir_interpolate_q31
void arm_fir_interpolate_q31(const arm_fir_interpolate_instance_q31 *S, const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR interpolator.
arm_cfft_radix4_instance_q15::bitRevFactor
uint16_t bitRevFactor
Definition: arm_math.h:2108
min
int min(int a, int b)
arm_rfft_instance_f32::pTwiddleBReal
const float32_t * pTwiddleBReal
Definition: arm_math.h:2341
arm_biquad_casd_df1_inst_q31::numStages
uint32_t numStages
Definition: arm_math.h:1391
arm_dct4_instance_q15::pCfft
arm_cfft_radix4_instance_q15 * pCfft
Definition: arm_math.h:2496
arm_fir_interpolate_instance_q31::pState
q31_t * pState
Definition: arm_math.h:3591
arm_fir_lattice_instance_q15::pCoeffs
const q15_t * pCoeffs
Definition: arm_math.h:3876
arm_rfft_32_fast_init_f32
arm_status arm_rfft_32_fast_init_f32(arm_rfft_fast_instance_f32 *S)
float32_t
float float32_t
32-bit floating-point type definition.
Definition: arm_math.h:409
arm_pid_instance_q15::A0
q15_t A0
Definition: arm_math.h:1864
arm_bilinear_interp_instance_q31::numCols
uint16_t numCols
Definition: arm_math.h:1989
arm_lms_norm_instance_q31::mu
q31_t mu
Definition: arm_math.h:4322
arm_correlate_q15
void arm_correlate_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Correlation of Q15 sequences.
arm_max_q7
void arm_max_q7(const q7_t *pSrc, uint32_t blockSize, q7_t *pResult, uint32_t *pIndex)
Maximum value of a Q7 vector.
arm_lms_instance_f32
Instance structure for the floating-point LMS filter.
Definition: arm_math.h:4117
arm_conv_partial_fast_q15
arm_status arm_conv_partial_fast_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
arm_rms_f32
void arm_rms_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Root Mean Square of the elements of a floating-point vector.
arm_mat_mult_fast_q31
arm_status arm_mat_mult_fast_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4.
arm_dot_prod_q7
void arm_dot_prod_q7(const q7_t *pSrcA, const q7_t *pSrcB, uint32_t blockSize, q31_t *result)
Dot product of Q7 vectors.
arm_recip_q31
__STATIC_FORCEINLINE uint32_t arm_recip_q31(q31_t in, q31_t *dst, const q31_t *pRecipTable)
Function to Calculates 1/in (reciprocal) value of Q31 Data type.
Definition: arm_math.h:721
arm_cfft_radix4_instance_q15::pBitRevTable
const uint16_t * pBitRevTable
Definition: arm_math.h:2106
arm_mean_f32
void arm_mean_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Mean value of a floating-point vector.
__SMLALDX
__STATIC_FORCEINLINE uint64_t __SMLALDX(uint32_t x, uint32_t y, uint64_t sum)
Definition: arm_math.h:1134
arm_cfft_radix4_instance_f32::onebyfftLen
float32_t onebyfftLen
Definition: arm_math.h:2214
arm_fir_sparse_instance_q31::numTaps
uint16_t numTaps
Definition: arm_math.h:4593
arm_pid_init_q31
void arm_pid_init_q31(arm_pid_instance_q31 *S, int32_t resetStateFlag)
Initialization function for the Q31 PID Control.
arm_cfft_radix4_instance_q31::bitRevFactor
uint16_t bitRevFactor
Definition: arm_math.h:2160
arm_vsqrt_f32
void arm_vsqrt_f32(float32_t *pIn, float32_t *pOut, uint16_t len)
Vector Floating-point square root function.
arm_fir_sparse_q15
void arm_fir_sparse_q15(arm_fir_sparse_instance_q15 *S, const q15_t *pSrc, q15_t *pDst, q15_t *pScratchIn, q31_t *pScratchOut, uint32_t blockSize)
Processing function for the Q15 sparse FIR filter.
arm_cmplx_mult_cmplx_q15
void arm_cmplx_mult_cmplx_q15(const q15_t *pSrcA, const q15_t *pSrcB, q15_t *pDst, uint32_t numSamples)
Q15 complex-by-complex multiplication.
q63_t
int64_t q63_t
64-bit fractional data type in 1.63 format.
Definition: arm_math.h:404
arm_fir_lattice_instance_f32
Instance structure for the floating-point FIR lattice filter.
Definition: arm_math.h:3892
arm_biquad_cascade_df1_f32
void arm_biquad_cascade_df1_f32(const arm_biquad_casd_df1_inst_f32 *S, const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point Biquad cascade filter.
arm_circularRead_f32
__STATIC_FORCEINLINE void arm_circularRead_f32(int32_t *circBuffer, int32_t L, int32_t *readOffset, int32_t bufferInc, int32_t *dst, int32_t *dst_base, int32_t dst_length, int32_t dstInc, uint32_t blockSize)
floating-point Circular Read function.
Definition: arm_math.h:5984
arm_iir_lattice_instance_f32
Instance structure for the floating-point IIR lattice filter.
Definition: arm_math.h:4009
arm_fir_interpolate_instance_q15::phaseLength
uint16_t phaseLength
Definition: arm_math.h:3578
arm_matrix_instance_f32::pData
float32_t * pData
Definition: arm_math.h:1522
arm_lms_f32
void arm_lms_f32(const arm_lms_instance_f32 *S, const float32_t *pSrc, float32_t *pRef, float32_t *pOut, float32_t *pErr, uint32_t blockSize)
Processing function for floating-point LMS filter.
arm_cfft_instance_q31
Instance structure for the fixed-point CFFT/CIFFT function.
Definition: arm_math.h:2249
arm_correlate_fast_q15
void arm_correlate_fast_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Correlation of Q15 sequences (fast version).
arm_iir_lattice_instance_q15::pkCoeffs
q15_t * pkCoeffs
Definition: arm_math.h:3991
arm_fir_sparse_instance_f32::pTapDelay
int32_t * pTapDelay
Definition: arm_math.h:4585
arm_max_q15
void arm_max_q15(const q15_t *pSrc, uint32_t blockSize, q15_t *pResult, uint32_t *pIndex)
Maximum value of a Q15 vector.
arm_dct4_instance_q31::N
uint16_t N
Definition: arm_math.h:2444
arm_mat_scale_q15
arm_status arm_mat_scale_q15(const arm_matrix_instance_q15 *pSrc, q15_t scaleFract, int32_t shift, arm_matrix_instance_q15 *pDst)
Q15 matrix scaling.
arm_fir_interpolate_instance_f32::L
uint8_t L
Definition: arm_math.h:3599
arm_fir_decimate_instance_q15::pState
q15_t * pState
Definition: arm_math.h:3416
arm_mult_f32
void arm_mult_f32(const float32_t *pSrcA, const float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector multiplication.
arm_matrix_instance_q31::numRows
uint16_t numRows
Definition: arm_math.h:1551
arm_cfft_radix2_instance_f32::bitReverseFlag
uint8_t bitReverseFlag
Definition: arm_math.h:2182
arm_fir_sparse_instance_q15
Instance structure for the Q15 sparse FIR filter.
Definition: arm_math.h:4604
cmsis_compiler.h
CMSIS compiler generic header file.
__SMUADX
__STATIC_FORCEINLINE uint32_t __SMUADX(uint32_t x, uint32_t y)
Definition: arm_math.h:1043
arm_sin_q31
q31_t arm_sin_q31(q31_t x)
Fast approximation to the trigonometric sine function for Q31 data.
arm_cfft_radix4_q31
void arm_cfft_radix4_q31(const arm_cfft_radix4_instance_q31 *S, q31_t *pSrc)
arm_cfft_radix2_instance_q31::pBitRevTable
const uint16_t * pBitRevTable
Definition: arm_math.h:2132
arm_fir_instance_q31::pState
q31_t * pState
Definition: arm_math.h:1220
arm_mat_sub_f32
arm_status arm_mat_sub_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point matrix subtraction.
arm_lms_instance_q31::pState
q31_t * pState
Definition: arm_math.h:4219
arm_rfft_1024_fast_init_f32
arm_status arm_rfft_1024_fast_init_f32(arm_rfft_fast_instance_f32 *S)
arm_fir_fast_q31
void arm_fir_fast_q31(const arm_fir_instance_q31 *S, const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the fast Q31 FIR filter (fast version).
arm_mat_mult_q15
arm_status arm_mat_mult_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
Q15 matrix multiplication.
arm_recip_q15
__STATIC_FORCEINLINE uint32_t arm_recip_q15(q15_t in, q15_t *dst, const q15_t *pRecipTable)
Function to Calculates 1/in (reciprocal) value of Q15 Data type.
Definition: arm_math.h:772
__SMUSD
__STATIC_FORCEINLINE uint32_t __SMUSD(uint32_t x, uint32_t y)
Definition: arm_math.h:1161
arm_pid_instance_q15
Instance structure for the Q15 PID Control.
Definition: arm_math.h:1862
arm_fir_decimate_instance_q15::pCoeffs
const q15_t * pCoeffs
Definition: arm_math.h:3415
arm_cfft_radix2_instance_f32::bitRevFactor
uint16_t bitRevFactor
Definition: arm_math.h:2186
arm_cfft_radix2_instance_q15::bitRevFactor
uint16_t bitRevFactor
Definition: arm_math.h:2081
arm_cfft_radix4_instance_q31::ifftFlag
uint8_t ifftFlag
Definition: arm_math.h:2155
arm_iir_lattice_instance_q15::numStages
uint16_t numStages
Definition: arm_math.h:3989
arm_fir_decimate_fast_q15
void arm_fir_decimate_fast_q15(const arm_fir_decimate_instance_q15 *S, const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
write_q15x2
__STATIC_FORCEINLINE void write_q15x2(q15_t *pQ15, q31_t value)
Write 2 Q15 to Q15 pointer.
Definition: arm_math.h:518
arm_matrix_instance_q15::numRows
uint16_t numRows
Definition: arm_math.h:1541
arm_mat_trans_q15
arm_status arm_mat_trans_q15(const arm_matrix_instance_q15 *pSrc, arm_matrix_instance_q15 *pDst)
Q15 matrix transpose.
arm_cfft_radix2_init_q15
arm_status arm_cfft_radix2_init_q15(arm_cfft_radix2_instance_q15 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_circularWrite_q7
__STATIC_FORCEINLINE void arm_circularWrite_q7(q7_t *circBuffer, int32_t L, uint16_t *writeOffset, int32_t bufferInc, const q7_t *src, int32_t srcInc, uint32_t blockSize)
Q7 Circular write function.
Definition: arm_math.h:6141
arm_mat_init_f32
void arm_mat_init_f32(arm_matrix_instance_f32 *S, uint16_t nRows, uint16_t nColumns, float32_t *pData)
Floating-point matrix initialization.
arm_iir_lattice_instance_f32::numStages
uint16_t numStages
Definition: arm_math.h:4011
arm_rfft_128_fast_init_f32
arm_status arm_rfft_128_fast_init_f32(arm_rfft_fast_instance_f32 *S)
__CLZ
__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value)
Count leading zeros.
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armclang.h:937
arm_fir_init_q7
void arm_fir_init_q7(arm_fir_instance_q7 *S, uint16_t numTaps, const q7_t *pCoeffs, q7_t *pState, uint32_t blockSize)
Initialization function for the Q7 FIR filter.
arm_bilinear_interp_q7
__STATIC_FORCEINLINE q7_t arm_bilinear_interp_q7(arm_bilinear_interp_instance_q7 *S, q31_t X, q31_t Y)
Q7 bilinear interpolation.
Definition: arm_math.h:7153
sat
uint32_t sat
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armcc.h:766
s
XmlRpcServer s
arm_inv_clarke_q31
__STATIC_FORCEINLINE void arm_inv_clarke_q31(q31_t Ialpha, q31_t Ibeta, q31_t *pIa, q31_t *pIb)
Inverse Clarke transform for Q31 version.
Definition: arm_math.h:5245
arm_lms_norm_instance_q15::pCoeffs
q15_t * pCoeffs
Definition: arm_math.h:4375
arm_dct4_instance_q15::pCosFactor
const q15_t * pCosFactor
Definition: arm_math.h:2494
arm_shift_q31
void arm_shift_q31(const q31_t *pSrc, int8_t shiftBits, q31_t *pDst, uint32_t blockSize)
Shifts the elements of a Q31 vector a specified number of bits.
arm_biquad_cascade_df2T_f64
void arm_biquad_cascade_df2T_f64(const arm_biquad_cascade_df2T_instance_f64 *S, float64_t *pSrc, float64_t *pDst, uint32_t blockSize)
Processing function for the floating-point transposed direct form II Biquad cascade filter.
__QASX
__STATIC_FORCEINLINE uint32_t __QASX(uint32_t x, uint32_t y)
Definition: arm_math.h:968
arm_pid_f32
__STATIC_FORCEINLINE float32_t arm_pid_f32(arm_pid_instance_f32 *S, float32_t in)
Process function for the floating-point PID Control.
Definition: arm_math.h:4944
ARM_MATH_TEST_FAILURE
@ ARM_MATH_TEST_FAILURE
Definition: arm_math.h:383
arm_lms_instance_q31::mu
q31_t mu
Definition: arm_math.h:4221
arm_cfft_radix4_instance_f32::fftLen
uint16_t fftLen
Definition: arm_math.h:2207
arm_conv_fast_q31
void arm_conv_fast_q31(const q31_t *pSrcA, uint32_t srcALen, const q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4.
arm_dct4_instance_f32::Nby2
uint16_t Nby2
Definition: arm_math.h:2399
arm_rfft_instance_q31::pTwiddleAReal
const q31_t * pTwiddleAReal
Definition: arm_math.h:2314
arm_linear_interp_q31
__STATIC_FORCEINLINE q31_t arm_linear_interp_q31(q31_t *pYData, q31_t x, uint32_t nValues)
Process function for the Q31 Linear Interpolation Function.
Definition: arm_math.h:5593
arm_dct4_init_q31
arm_status arm_dct4_init_q31(arm_dct4_instance_q31 *S, arm_rfft_instance_q31 *S_RFFT, arm_cfft_radix4_instance_q31 *S_CFFT, uint16_t N, uint16_t Nby2, q31_t normalize)
Initialization function for the Q31 DCT4/IDCT4.
arm_fir_lattice_instance_f32::pState
float32_t * pState
Definition: arm_math.h:3895
arm_rfft_fast_instance_f32::pTwiddleRFFT
const float32_t * pTwiddleRFFT
Definition: arm_math.h:2364
arm_fir_interpolate_instance_f32::pCoeffs
const float32_t * pCoeffs
Definition: arm_math.h:3601
arm_q7_to_q15
void arm_q7_to_q15(const q7_t *pSrc, q15_t *pDst, uint32_t blockSize)
Converts the elements of the Q7 vector to Q15 vector.
arm_mat_cmplx_mult_q31
arm_status arm_mat_cmplx_mult_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31, complex, matrix multiplication.
arm_dct4_q31
void arm_dct4_q31(const arm_dct4_instance_q31 *S, q31_t *pState, q31_t *pInlineBuffer)
Processing function for the Q31 DCT4/IDCT4.
arm_cmplx_dot_prod_q31
void arm_cmplx_dot_prod_q31(const q31_t *pSrcA, const q31_t *pSrcB, uint32_t numSamples, q63_t *realResult, q63_t *imagResult)
Q31 complex dot product.
arm_biquad_cascade_df2T_init_f32
void arm_biquad_cascade_df2T_init_f32(arm_biquad_cascade_df2T_instance_f32 *S, uint8_t numStages, const float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point transposed direct form II Biquad cascade filter.
arm_fir_interpolate_instance_q15::pCoeffs
const q15_t * pCoeffs
Definition: arm_math.h:3579
arm_mat_inverse_f32
arm_status arm_mat_inverse_f32(const arm_matrix_instance_f32 *src, arm_matrix_instance_f32 *dst)
Floating-point matrix inverse.
arm_lms_norm_instance_q31::x0
q31_t x0
Definition: arm_math.h:4326
arm_fir_fast_q15
void arm_fir_fast_q15(const arm_fir_instance_q15 *S, const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the fast Q15 FIR filter (fast version).
arm_rfft_f32
void arm_rfft_f32(const arm_rfft_instance_f32 *S, float32_t *pSrc, float32_t *pDst)
arm_dct4_q15
void arm_dct4_q15(const arm_dct4_instance_q15 *S, q15_t *pState, q15_t *pInlineBuffer)
Processing function for the Q15 DCT4/IDCT4.
arm_lms_q31
void arm_lms_q31(const arm_lms_instance_q31 *S, const q31_t *pSrc, q31_t *pRef, q31_t *pOut, q31_t *pErr, uint32_t blockSize)
Processing function for Q31 LMS filter.
arm_rfft_fast_instance_f32
Instance structure for the floating-point RFFT/RIFFT function.
Definition: arm_math.h:2360
arm_matrix_instance_q15
Instance structure for the Q15 matrix structure.
Definition: arm_math.h:1539
arm_cfft_radix2_instance_q15::bitReverseFlag
uint8_t bitReverseFlag
Definition: arm_math.h:2077
arm_shift_q7
void arm_shift_q7(const q7_t *pSrc, int8_t shiftBits, q7_t *pDst, uint32_t blockSize)
Shifts the elements of a Q7 vector a specified number of bits.
arm_fir_instance_q31::numTaps
uint16_t numTaps
Definition: arm_math.h:1219
arm_pid_instance_q15::Kp
q15_t Kp
Definition: arm_math.h:1872
__SHASX
__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t x, uint32_t y)
Definition: arm_math.h:984
arm_lms_norm_instance_q31::recipTable
const q31_t * recipTable
Definition: arm_math.h:4324
arm_fir_sparse_instance_q31::maxDelay
uint16_t maxDelay
Definition: arm_math.h:4597
arm_mult_q7
void arm_mult_q7(const q7_t *pSrcA, const q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector multiplication.
arm_sqrt_q15
arm_status arm_sqrt_q15(q15_t in, q15_t *pOut)
Q15 square root function.
arm_pid_instance_f32::A1
float32_t A1
Definition: arm_math.h:1897
arm_cfft_radix2_q15
void arm_cfft_radix2_q15(const arm_cfft_radix2_instance_q15 *S, q15_t *pSrc)
arm_fir_sparse_instance_q31::pTapDelay
int32_t * pTapDelay
Definition: arm_math.h:4598
arm_lms_norm_instance_q31::postShift
uint8_t postShift
Definition: arm_math.h:4323
arm_fir_instance_q7::pCoeffs
const q7_t * pCoeffs
Definition: arm_math.h:1201
arm_iir_lattice_instance_f32::pvCoeffs
float32_t * pvCoeffs
Definition: arm_math.h:4014
arm_biquad_casd_df1_inst_f32
Instance structure for the floating-point Biquad cascade filter.
Definition: arm_math.h:1400
arm_rfft_q15
void arm_rfft_q15(const arm_rfft_instance_q15 *S, q15_t *pSrc, q15_t *pDst)
arm_rfft_instance_q31::pTwiddleBReal
const q31_t * pTwiddleBReal
Definition: arm_math.h:2315
arm_power_q7
void arm_power_q7(const q7_t *pSrc, uint32_t blockSize, q31_t *pResult)
Sum of the squares of the elements of a Q7 vector.
arm_cfft_instance_q15::pTwiddle
const q15_t * pTwiddle
Definition: arm_math.h:2235
arm_cfft_radix2_init_q31
arm_status arm_cfft_radix2_init_q31(arm_cfft_radix2_instance_q31 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_fir_lattice_q15
void arm_fir_lattice_q15(const arm_fir_lattice_instance_q15 *S, const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR lattice filter.
arm_biquad_casd_df1_inst_q15::postShift
int8_t postShift
Definition: arm_math.h:1383
ARM_MATH_NANINF
@ ARM_MATH_NANINF
Definition: arm_math.h:381
arm_biquad_cas_df1_32x64_ins_q31::numStages
uint8_t numStages
Definition: arm_math.h:3713
arm_std_q15
void arm_std_q15(const q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Standard deviation of the elements of a Q15 vector.
arm_biquad_cascade_df2T_instance_f32
Instance structure for the floating-point transposed direct form II Biquad cascade filter.
Definition: arm_math.h:3751
arm_fir_interpolate_instance_q31::phaseLength
uint16_t phaseLength
Definition: arm_math.h:3589
arm_scale_q7
void arm_scale_q7(const q7_t *pSrc, q7_t scaleFract, int8_t shift, q7_t *pDst, uint32_t blockSize)
Multiplies a Q7 vector by a scalar.
arm_fir_interpolate_instance_q15
Instance structure for the Q15 FIR interpolator.
Definition: arm_math.h:3575
__SMLADX
__STATIC_FORCEINLINE uint32_t __SMLADX(uint32_t x, uint32_t y, uint32_t sum)
Definition: arm_math.h:1091
arm_fir_sparse_instance_q15::numTaps
uint16_t numTaps
Definition: arm_math.h:4606
arm_abs_f32
void arm_abs_f32(const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Floating-point vector absolute value.
arm_lms_init_q31
void arm_lms_init_q31(arm_lms_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, q31_t mu, uint32_t blockSize, uint32_t postShift)
Initialization function for Q31 LMS filter.
arm_rfft_4096_fast_init_f32
arm_status arm_rfft_4096_fast_init_f32(arm_rfft_fast_instance_f32 *S)
arm_rfft_instance_q31::bitReverseFlagR
uint8_t bitReverseFlagR
Definition: arm_math.h:2312
arm_bilinear_interp_instance_f32::numRows
uint16_t numRows
Definition: arm_math.h:1978
arm_bilinear_interp_instance_f32::numCols
uint16_t numCols
Definition: arm_math.h:1979
arm_linear_interp_instance_f32::x1
float32_t x1
Definition: arm_math.h:1968
INDEX_MASK
#define INDEX_MASK
Definition: arm_math.h:347
arm_linear_interp_q7
__STATIC_FORCEINLINE q7_t arm_linear_interp_q7(q7_t *pYData, q31_t x, uint32_t nValues)
Process function for the Q7 Linear Interpolation Function.
Definition: arm_math.h:5708
arm_bilinear_interp_instance_q7::numCols
uint16_t numCols
Definition: arm_math.h:2009
arm_dct4_instance_q15::Nby2
uint16_t Nby2
Definition: arm_math.h:2491
arm_cmplx_mult_cmplx_q31
void arm_cmplx_mult_cmplx_q31(const q31_t *pSrcA, const q31_t *pSrcB, q31_t *pDst, uint32_t numSamples)
Q31 complex-by-complex multiplication.
arm_fir_lattice_instance_f32::pCoeffs
const float32_t * pCoeffs
Definition: arm_math.h:3896
arm_fir_sparse_instance_f32::maxDelay
uint16_t maxDelay
Definition: arm_math.h:4584
__SHADD16
__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t x, uint32_t y)
Definition: arm_math.h:920
arm_cmplx_mult_real_f32
void arm_cmplx_mult_real_f32(const float32_t *pSrcCmplx, const float32_t *pSrcReal, float32_t *pCmplxDst, uint32_t numSamples)
Floating-point complex-by-real multiplication.
arm_fir_decimate_instance_q31::pState
q31_t * pState
Definition: arm_math.h:3427
arm_fir_lattice_q31
void arm_fir_lattice_q31(const arm_fir_lattice_instance_q31 *S, const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR lattice filter.
arm_clarke_f32
__STATIC_FORCEINLINE void arm_clarke_f32(float32_t Ia, float32_t Ib, float32_t *pIalpha, float32_t *pIbeta)
Floating-point Clarke transform.
Definition: arm_math.h:5132
arm_matrix_instance_f64
Instance structure for the floating-point matrix structure.
Definition: arm_math.h:1529
arm_biquad_cascade_df2T_f32
void arm_biquad_cascade_df2T_f32(const arm_biquad_cascade_df2T_instance_f32 *S, const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point transposed direct form II Biquad cascade filter.
arm_rfft_instance_q15::fftLenReal
uint32_t fftLenReal
Definition: arm_math.h:2285
arm_matrix_instance_f32
Instance structure for the floating-point matrix structure.
Definition: arm_math.h:1518
__STATIC_FORCEINLINE
#define __STATIC_FORCEINLINE
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armcc.h:66
arm_fill_q7
void arm_fill_q7(q7_t value, q7_t *pDst, uint32_t blockSize)
Fills a constant value into a Q7 vector.
arm_fir_decimate_instance_q31::pCoeffs
const q31_t * pCoeffs
Definition: arm_math.h:3426
arm_cfft_radix2_instance_f32::pTwiddle
const float32_t * pTwiddle
Definition: arm_math.h:2183
arm_iir_lattice_instance_q15
Instance structure for the Q15 IIR lattice filter.
Definition: arm_math.h:3987
arm_fir_interpolate_init_q15
arm_status arm_fir_interpolate_init_q15(arm_fir_interpolate_instance_q15 *S, uint8_t L, uint16_t numTaps, const q15_t *pCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 FIR interpolator.
arm_fir_lattice_instance_q15
Instance structure for the Q15 FIR lattice filter.
Definition: arm_math.h:3872
arm_biquad_cascade_df2T_instance_f64
Instance structure for the floating-point transposed direct form II Biquad cascade filter.
Definition: arm_math.h:3771
arm_rfft_instance_f32::ifftFlagR
uint8_t ifftFlagR
Definition: arm_math.h:2337
arm_float_to_q31
void arm_float_to_q31(const float32_t *pSrc, q31_t *pDst, uint32_t blockSize)
Converts the elements of the floating-point vector to Q31 vector.
arm_biquad_casd_df1_inst_q15::numStages
int8_t numStages
Definition: arm_math.h:1380
read_q7x4_ia
__STATIC_FORCEINLINE q31_t read_q7x4_ia(q7_t **pQ7)
Read 4 Q7 from Q7 pointer and increment pointer afterwards.
Definition: arm_math.h:533
__SXTB16
__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t x)
Definition: arm_math.h:1173
arm_rfft_fast_instance_f32::Sint
arm_cfft_instance_f32 Sint
Definition: arm_math.h:2362
arm_park_f32
__STATIC_FORCEINLINE void arm_park_f32(float32_t Ialpha, float32_t Ibeta, float32_t *pId, float32_t *pIq, float32_t sinVal, float32_t cosVal)
Floating-point Park transform.
Definition: arm_math.h:5318
arm_fir_decimate_init_q15
arm_status arm_fir_decimate_init_q15(arm_fir_decimate_instance_q15 *S, uint16_t numTaps, uint8_t M, const q15_t *pCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 FIR decimator.
arm_fir_sparse_instance_q7::pCoeffs
const q7_t * pCoeffs
Definition: arm_math.h:4622
arm_mean_q7
void arm_mean_q7(const q7_t *pSrc, uint32_t blockSize, q7_t *pResult)
Mean value of a Q7 vector.
arm_sqrt_q31
arm_status arm_sqrt_q31(q31_t in, q31_t *pOut)
Q31 square root function.
arm_pid_instance_f32::Kp
float32_t Kp
Definition: arm_math.h:1900
arm_pid_init_f32
void arm_pid_init_f32(arm_pid_instance_f32 *S, int32_t resetStateFlag)
Initialization function for the floating-point PID Control.
arm_mat_inverse_f64
arm_status arm_mat_inverse_f64(const arm_matrix_instance_f64 *src, arm_matrix_instance_f64 *dst)
Floating-point matrix inverse.
arm_biquad_cas_df1_32x64_q31
void arm_biquad_cas_df1_32x64_q31(const arm_biquad_cas_df1_32x64_ins_q31 *S, q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
arm_var_q15
void arm_var_q15(const q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Variance of the elements of a Q15 vector.
arm_conv_q31
void arm_conv_q31(const q31_t *pSrcA, uint32_t srcALen, const q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Convolution of Q31 sequences.
arm_cfft_radix4_instance_q31
Instance structure for the Q31 CFFT/CIFFT function.
Definition: arm_math.h:2152
arm_pid_reset_f32
void arm_pid_reset_f32(arm_pid_instance_f32 *S)
Reset function for the floating-point PID Control.
arm_rfft_instance_q31::ifftFlagR
uint8_t ifftFlagR
Definition: arm_math.h:2311
__QADD16
__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t x, uint32_t y)
Definition: arm_math.h:903
arm_dct4_instance_f32::pCosFactor
const float32_t * pCosFactor
Definition: arm_math.h:2402
arm_fir_lattice_init_q31
void arm_fir_lattice_init_q31(arm_fir_lattice_instance_q31 *S, uint16_t numStages, const q31_t *pCoeffs, q31_t *pState)
Initialization function for the Q31 FIR lattice filter.
arm_sub_f32
void arm_sub_f32(const float32_t *pSrcA, const float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector subtraction.
arm_pid_instance_q31::A2
q31_t A2
Definition: arm_math.h:1884
__SMLALD
__STATIC_FORCEINLINE uint64_t __SMLALD(uint32_t x, uint32_t y, uint64_t sum)
Definition: arm_math.h:1119
arm_biquad_cascade_df2T_instance_f32::pState
float32_t * pState
Definition: arm_math.h:3754
arm_mat_trans_f32
arm_status arm_mat_trans_f32(const arm_matrix_instance_f32 *pSrc, arm_matrix_instance_f32 *pDst)
Floating-point matrix transpose.
arm_lms_instance_f32::pCoeffs
float32_t * pCoeffs
Definition: arm_math.h:4121
ARM_MATH_LENGTH_ERROR
@ ARM_MATH_LENGTH_ERROR
Definition: arm_math.h:379
arm_bilinear_interp_instance_q7
Instance structure for the Q15 bilinear interpolation function.
Definition: arm_math.h:2006
arm_max_f32
void arm_max_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult, uint32_t *pIndex)
Maximum value of a floating-point vector.
arm_correlate_opt_q15
void arm_correlate_opt_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, q15_t *pScratch)
Correlation of Q15 sequences.
arm_rfft_instance_f32::fftLenReal
uint32_t fftLenReal
Definition: arm_math.h:2335
arm_cmplx_mult_real_q15
void arm_cmplx_mult_real_q15(const q15_t *pSrcCmplx, const q15_t *pSrcReal, q15_t *pCmplxDst, uint32_t numSamples)
Q15 complex-by-real multiplication.
arm_scale_q31
void arm_scale_q31(const q31_t *pSrc, q31_t scaleFract, int8_t shift, q31_t *pDst, uint32_t blockSize)
Multiplies a Q31 vector by a scalar.
arm_lms_norm_instance_q15
Instance structure for the Q15 normalized LMS filter.
Definition: arm_math.h:4371
arm_matrix_instance_q15::pData
q15_t * pData
Definition: arm_math.h:1543
arm_conv_opt_q15
void arm_conv_opt_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, q15_t *pScratch1, q15_t *pScratch2)
Convolution of Q15 sequences.
arm_cfft_instance_q15::pBitRevTable
const uint16_t * pBitRevTable
Definition: arm_math.h:2236
arm_biquad_cascade_df1_fast_q15
void arm_biquad_cascade_df1_fast_q15(const arm_biquad_casd_df1_inst_q15 *S, const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Fast but less precise processing function for the Q15 Biquad cascade filter for Cortex-M3 and Cortex-...
ARM_MATH_SUCCESS
@ ARM_MATH_SUCCESS
Definition: arm_math.h:377
f
f
arm_lms_norm_init_f32
void arm_lms_norm_init_f32(arm_lms_norm_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, float32_t mu, uint32_t blockSize)
Initialization function for floating-point normalized LMS filter.
arm_cfft_radix4_f32
void arm_cfft_radix4_f32(const arm_cfft_radix4_instance_f32 *S, float32_t *pSrc)
arm_fir_sparse_instance_f32::numTaps
uint16_t numTaps
Definition: arm_math.h:4580
arm_linear_interp_instance_f32
Instance structure for the floating-point Linear Interpolate function.
Definition: arm_math.h:1965
arm_fir_sparse_instance_q15::maxDelay
uint16_t maxDelay
Definition: arm_math.h:4610
arm_fir_sparse_instance_q31
Instance structure for the Q31 sparse FIR filter.
Definition: arm_math.h:4591
arm_fir_decimate_q31
void arm_fir_decimate_q31(const arm_fir_decimate_instance_q31 *S, const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR decimator.
arm_dct4_instance_q31::pRfft
arm_rfft_instance_q31 * pRfft
Definition: arm_math.h:2449
arm_std_q31
void arm_std_q31(const q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Standard deviation of the elements of a Q31 vector.
__QSUB
__STATIC_FORCEINLINE int32_t __QSUB(int32_t x, int32_t y)
Definition: arm_math.h:1066
arm_linear_interp_instance_f32::nValues
uint32_t nValues
Definition: arm_math.h:1967
arm_vsqrt_q31
void arm_vsqrt_q31(q31_t *pIn, q31_t *pOut, uint16_t len)
arm_biquad_casd_df1_inst_q31::pCoeffs
const q31_t * pCoeffs
Definition: arm_math.h:1393
arm_bilinear_interp_q31
__STATIC_FORCEINLINE q31_t arm_bilinear_interp_q31(arm_bilinear_interp_instance_q31 *S, q31_t X, q31_t Y)
Q31 bilinear interpolation.
Definition: arm_math.h:7001
arm_dct4_instance_f32::pRfft
arm_rfft_instance_f32 * pRfft
Definition: arm_math.h:2403
arm_mat_mult_q31
arm_status arm_mat_mult_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix multiplication.
arm_rfft_256_fast_init_f32
arm_status arm_rfft_256_fast_init_f32(arm_rfft_fast_instance_f32 *S)
arm_dct4_instance_q15::normalize
q15_t normalize
Definition: arm_math.h:2492
arm_dct4_instance_q15::N
uint16_t N
Definition: arm_math.h:2490
arm_pid_instance_q31
Instance structure for the Q31 PID Control.
Definition: arm_math.h:1880
arm_copy_q31
void arm_copy_q31(const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Copies the elements of a Q31 vector.
arm_inv_clarke_f32
__STATIC_FORCEINLINE void arm_inv_clarke_f32(float32_t Ialpha, float32_t Ibeta, float32_t *pIa, float32_t *pIb)
Floating-point Inverse Clarke transform.
Definition: arm_math.h:5218
arm_iir_lattice_init_f32
void arm_iir_lattice_init_f32(arm_iir_lattice_instance_f32 *S, uint16_t numStages, float32_t *pkCoeffs, float32_t *pvCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point IIR lattice filter.
arm_cmplx_mag_q15
void arm_cmplx_mag_q15(const q15_t *pSrc, q15_t *pDst, uint32_t numSamples)
Q15 complex magnitude.
arm_cmplx_mag_q31
void arm_cmplx_mag_q31(const q31_t *pSrc, q31_t *pDst, uint32_t numSamples)
Q31 complex magnitude.
arm_dct4_f32
void arm_dct4_f32(const arm_dct4_instance_f32 *S, float32_t *pState, float32_t *pInlineBuffer)
Processing function for the floating-point DCT4/IDCT4.
__SMMLA
__STATIC_FORCEINLINE int32_t __SMMLA(int32_t x, int32_t y, int32_t sum)
Definition: arm_math.h:1183
arm_lms_instance_q15::mu
q15_t mu
Definition: arm_math.h:4170
arm_biquad_cascade_stereo_df2T_instance_f32::numStages
uint8_t numStages
Definition: arm_math.h:3763
arm_iir_lattice_instance_q31::pState
q31_t * pState
Definition: arm_math.h:4001
arm_dct4_instance_q31::normalize
q31_t normalize
Definition: arm_math.h:2446
arm_fir_sparse_instance_f32::stateIndex
uint16_t stateIndex
Definition: arm_math.h:4581
arm_power_q31
void arm_power_q31(const q31_t *pSrc, uint32_t blockSize, q63_t *pResult)
Sum of the squares of the elements of a Q31 vector.
arm_lms_norm_instance_f32
Instance structure for the floating-point normalized LMS filter.
Definition: arm_math.h:4267
arm_fir_sparse_instance_q7::maxDelay
uint16_t maxDelay
Definition: arm_math.h:4623
arm_linear_interp_instance_f32::xSpacing
float32_t xSpacing
Definition: arm_math.h:1969
arm_fir_decimate_instance_f32::pState
float32_t * pState
Definition: arm_math.h:3438
arm_mat_cmplx_mult_q15
arm_status arm_mat_cmplx_mult_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pScratch)
Q15, complex, matrix multiplication.
arm_negate_f32
void arm_negate_f32(const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Negates the elements of a floating-point vector.
arm_min_q15
void arm_min_q15(const q15_t *pSrc, uint32_t blockSize, q15_t *pResult, uint32_t *pIndex)
Minimum value of a Q15 vector.
arm_lms_norm_instance_q15::mu
q15_t mu
Definition: arm_math.h:4376
arm_cmplx_mag_squared_f32
void arm_cmplx_mag_squared_f32(const float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex magnitude squared.
arm_fir_lattice_init_q15
void arm_fir_lattice_init_q15(arm_fir_lattice_instance_q15 *S, uint16_t numStages, const q15_t *pCoeffs, q15_t *pState)
Initialization function for the Q15 FIR lattice filter.
arm_mult_q15
void arm_mult_q15(const q15_t *pSrcA, const q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector multiplication.
arm_matrix_instance_f64::pData
float64_t * pData
Definition: arm_math.h:1533
arm_sin_f32
float32_t arm_sin_f32(float32_t x)
Fast approximation to the trigonometric sine function for floating-point data.
q31_t
int32_t q31_t
32-bit fractional data type in 1.31 format.
Definition: arm_math.h:399
arm_fir_decimate_instance_f32
Instance structure for floating-point FIR decimator.
Definition: arm_math.h:3433
arm_dot_prod_f32
void arm_dot_prod_f32(const float32_t *pSrcA, const float32_t *pSrcB, uint32_t blockSize, float32_t *result)
Dot product of floating-point vectors.
arm_cfft_radix2_instance_q15::pTwiddle
const q15_t * pTwiddle
Definition: arm_math.h:2078
arm_cfft_radix2_instance_f32::twidCoefModifier
uint16_t twidCoefModifier
Definition: arm_math.h:2185
arm_biquad_cas_df1_32x64_ins_q31::pState
q63_t * pState
Definition: arm_math.h:3714
clip_q63_to_q31
__STATIC_FORCEINLINE q31_t clip_q63_to_q31(q63_t x)
Clips Q63 to Q31 values.
Definition: arm_math.h:670
arm_rfft_instance_q15::pCfft
const arm_cfft_instance_q15 * pCfft
Definition: arm_math.h:2291
arm_biquad_casd_df1_inst_f32::pCoeffs
const float32_t * pCoeffs
Definition: arm_math.h:1404
read_q7x4_da
__STATIC_FORCEINLINE q31_t read_q7x4_da(q7_t **pQ7)
Read 4 Q7 from Q7 pointer and decrement pointer afterwards.
Definition: arm_math.h:549
arm_cfft_instance_f32::pTwiddle
const float32_t * pTwiddle
Definition: arm_math.h:2269
arm_lms_norm_instance_f32::x0
float32_t x0
Definition: arm_math.h:4274
arm_fir_interpolate_q15
void arm_fir_interpolate_q15(const arm_fir_interpolate_instance_q15 *S, const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR interpolator.
arm_lms_instance_q15::numTaps
uint16_t numTaps
Definition: arm_math.h:4167
arm_abs_q7
void arm_abs_q7(const q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Q7 vector absolute value.
arm_fir_instance_q7::pState
q7_t * pState
Definition: arm_math.h:1200
arm_q31_to_float
void arm_q31_to_float(const q31_t *pSrc, float32_t *pDst, uint32_t blockSize)
Converts the elements of the Q31 vector to floating-point vector.
arm_biquad_cas_df1_32x64_ins_q31::postShift
uint8_t postShift
Definition: arm_math.h:3716
arm_inv_park_q31
__STATIC_FORCEINLINE void arm_inv_park_q31(q31_t Id, q31_t Iq, q31_t *pIalpha, q31_t *pIbeta, q31_t sinVal, q31_t cosVal)
Inverse Park transform for Q31 version.
Definition: arm_math.h:5452
arm_fir_sparse_instance_f32::pState
float32_t * pState
Definition: arm_math.h:4582
arm_conv_partial_q15
arm_status arm_conv_partial_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q15 sequences.
arm_biquad_cascade_df1_q15
void arm_biquad_cascade_df1_q15(const arm_biquad_casd_df1_inst_q15 *S, const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 Biquad cascade filter.
arm_rfft_instance_q31::twidCoefRModifier
uint32_t twidCoefRModifier
Definition: arm_math.h:2313
arm_cfft_radix4_init_q31
arm_status arm_cfft_radix4_init_q31(arm_cfft_radix4_instance_q31 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_fir_decimate_instance_q15
Instance structure for the Q15 FIR decimator.
Definition: arm_math.h:3411
arm_cfft_radix4_instance_q15::fftLen
uint16_t fftLen
Definition: arm_math.h:2102
arm_iir_lattice_instance_q15::pvCoeffs
q15_t * pvCoeffs
Definition: arm_math.h:3992
arm_dct4_instance_f32::normalize
float32_t normalize
Definition: arm_math.h:2400
arm_rfft_instance_q31::pCfft
const arm_cfft_instance_q31 * pCfft
Definition: arm_math.h:2316
arm_dct4_instance_q15::pTwiddle
const q15_t * pTwiddle
Definition: arm_math.h:2493
arm_status
arm_status
Error status returned by some functions in the library.
Definition: arm_math.h:375
arm_fir_instance_q7
Instance structure for the Q7 FIR filter.
Definition: arm_math.h:1197
arm_cos_f32
float32_t arm_cos_f32(float32_t x)
Fast approximation to the trigonometric cosine function for floating-point data.
arm_sub_q31
void arm_sub_q31(const q31_t *pSrcA, const q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector subtraction.
arm_bilinear_interp_instance_q31::pData
q31_t * pData
Definition: arm_math.h:1990
arm_var_f32
void arm_var_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Variance of the elements of a floating-point vector.
arm_matrix_instance_f32::numRows
uint16_t numRows
Definition: arm_math.h:1520
arm_rfft_instance_q15::bitReverseFlagR
uint8_t bitReverseFlagR
Definition: arm_math.h:2287
arm_fir_init_q15
arm_status arm_fir_init_q15(arm_fir_instance_q15 *S, uint16_t numTaps, const q15_t *pCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 FIR filter.
arm_iir_lattice_f32
void arm_iir_lattice_f32(const arm_iir_lattice_instance_f32 *S, const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point IIR lattice filter.
arm_cfft_radix2_instance_q31
Instance structure for the Radix-2 Q31 CFFT/CIFFT function.
Definition: arm_math.h:2126
arm_cfft_radix4_instance_f32::twidCoefModifier
uint16_t twidCoefModifier
Definition: arm_math.h:2212
arm_pid_instance_f32::Ki
float32_t Ki
Definition: arm_math.h:1901
arm_fir_sparse_instance_q31::pCoeffs
const q31_t * pCoeffs
Definition: arm_math.h:4596
arm_cfft_radix4_init_f32
arm_status arm_cfft_radix4_init_f32(arm_cfft_radix4_instance_f32 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_lms_instance_q31::pCoeffs
q31_t * pCoeffs
Definition: arm_math.h:4220
arm_cfft_radix2_instance_q31::bitRevFactor
uint16_t bitRevFactor
Definition: arm_math.h:2134
__QADD8
__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t x, uint32_t y)
Definition: arm_math.h:867
arm_pid_instance_q15::Kd
q15_t Kd
Definition: arm_math.h:1874
arm_iir_lattice_q31
void arm_iir_lattice_q31(const arm_iir_lattice_instance_q31 *S, const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 IIR lattice filter.
arm_fir_interpolate_instance_q15::pState
q15_t * pState
Definition: arm_math.h:3580
arm_biquad_casd_df1_inst_q15::pCoeffs
const q15_t * pCoeffs
Definition: arm_math.h:1382
arm_fir_init_f32
void arm_fir_init_f32(arm_fir_instance_f32 *S, uint16_t numTaps, const float32_t *pCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point FIR filter.
arm_rfft_instance_f32::pTwiddleAReal
const float32_t * pTwiddleAReal
Definition: arm_math.h:2340
arm_conv_f32
void arm_conv_f32(const float32_t *pSrcA, uint32_t srcALen, const float32_t *pSrcB, uint32_t srcBLen, float32_t *pDst)
Convolution of floating-point sequences.
arm_lms_norm_instance_q15::postShift
uint8_t postShift
Definition: arm_math.h:4377
arm_pid_instance_q15::A1
q15_t A1
Definition: arm_math.h:1866
arm_fir_lattice_instance_q31::pState
q31_t * pState
Definition: arm_math.h:3885
arm_cfft_instance_q31::pBitRevTable
const uint16_t * pBitRevTable
Definition: arm_math.h:2253
read_q15x2
__STATIC_FORCEINLINE q31_t read_q15x2(q15_t *pQ15)
Read 2 Q15 from Q15 pointer.
Definition: arm_math.h:454
arm_lms_norm_instance_f32::pState
float32_t * pState
Definition: arm_math.h:4270
arm_lms_init_q15
void arm_lms_init_q15(arm_lms_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, q15_t mu, uint32_t blockSize, uint32_t postShift)
Initialization function for the Q15 LMS filter.
arm_iir_lattice_init_q15
void arm_iir_lattice_init_q15(arm_iir_lattice_instance_q15 *S, uint16_t numStages, q15_t *pkCoeffs, q15_t *pvCoeffs, q15_t *pState, uint32_t blockSize)
Initialization function for the Q15 IIR lattice filter.
arm_biquad_casd_df1_inst_q31::postShift
uint8_t postShift
Definition: arm_math.h:1394
arm_dot_prod_q31
void arm_dot_prod_q31(const q31_t *pSrcA, const q31_t *pSrcB, uint32_t blockSize, q63_t *result)
Dot product of Q31 vectors.
arm_cfft_radix2_instance_q15::ifftFlag
uint8_t ifftFlag
Definition: arm_math.h:2076
arm_fir_f32
void arm_fir_f32(const arm_fir_instance_f32 *S, const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR filter.
arm_lms_norm_instance_q15::recipTable
const q15_t * recipTable
Definition: arm_math.h:4378
arm_cfft_radix4_instance_f32
Instance structure for the floating-point CFFT/CIFFT function.
Definition: arm_math.h:2205
arm_fir_interpolate_instance_f32::phaseLength
uint16_t phaseLength
Definition: arm_math.h:3600
arm_cfft_radix2_instance_q31::fftLen
uint16_t fftLen
Definition: arm_math.h:2128
arm_cmplx_dot_prod_q15
void arm_cmplx_dot_prod_q15(const q15_t *pSrcA, const q15_t *pSrcB, uint32_t numSamples, q31_t *realResult, q31_t *imagResult)
Q15 complex dot product.
__SMUSDX
__STATIC_FORCEINLINE uint32_t __SMUSDX(uint32_t x, uint32_t y)
Definition: arm_math.h:1032
arm_mat_mult_fast_q15
arm_status arm_mat_mult_fast_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst, q15_t *pState)
Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4.
arm_matrix_instance_q31
Instance structure for the Q31 matrix structure.
Definition: arm_math.h:1549
arm_rfft_q31
void arm_rfft_q31(const arm_rfft_instance_q31 *S, q31_t *pSrc, q31_t *pDst)
count
size_t count
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:31
arm_fir_sparse_init_q31
void arm_fir_sparse_init_q31(arm_fir_sparse_instance_q31 *S, uint16_t numTaps, const q31_t *pCoeffs, q31_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the Q31 sparse FIR filter.
arm_fir_sparse_f32
void arm_fir_sparse_f32(arm_fir_sparse_instance_f32 *S, const float32_t *pSrc, float32_t *pDst, float32_t *pScratchIn, uint32_t blockSize)
Processing function for the floating-point sparse FIR filter.
arm_lms_instance_q15::postShift
uint32_t postShift
Definition: arm_math.h:4171
arm_bilinear_interp_instance_q31::numRows
uint16_t numRows
Definition: arm_math.h:1988
arm_iir_lattice_instance_f32::pState
float32_t * pState
Definition: arm_math.h:4012
arm_fir_interpolate_instance_q31::L
uint8_t L
Definition: arm_math.h:3588
arm_pid_instance_q15::A2
q15_t A2
Definition: arm_math.h:1867
arm_rfft_init_f32
arm_status arm_rfft_init_f32(arm_rfft_instance_f32 *S, arm_cfft_radix4_instance_f32 *S_CFFT, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
arm_mat_mult_f32
arm_status arm_mat_mult_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point matrix multiplication.
arm_biquad_cascade_df2T_instance_f32::pCoeffs
const float32_t * pCoeffs
Definition: arm_math.h:3755
arm_copy_f32
void arm_copy_f32(const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Copies the elements of a floating-point vector.
arm_lms_norm_instance_f32::pCoeffs
float32_t * pCoeffs
Definition: arm_math.h:4271
arm_iir_lattice_q15
void arm_iir_lattice_q15(const arm_iir_lattice_instance_q15 *S, const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 IIR lattice filter.
arm_dct4_instance_q15::pRfft
arm_rfft_instance_q15 * pRfft
Definition: arm_math.h:2495
arm_fir_sparse_instance_q15::pCoeffs
const q15_t * pCoeffs
Definition: arm_math.h:4609
ARM_MATH_SINGULAR
@ ARM_MATH_SINGULAR
Definition: arm_math.h:382
arm_cfft_instance_q31::bitRevLength
uint16_t bitRevLength
Definition: arm_math.h:2254
arm_mat_scale_f32
arm_status arm_mat_scale_f32(const arm_matrix_instance_f32 *pSrc, float32_t scale, arm_matrix_instance_f32 *pDst)
Floating-point matrix scaling.
arm_fir_q15
void arm_fir_q15(const arm_fir_instance_q15 *S, const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Processing function for the Q15 FIR filter.
arm_conv_fast_q15
void arm_conv_fast_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
arm_fir_instance_q15::numTaps
uint16_t numTaps
Definition: arm_math.h:1209
arm_rfft_instance_q15::pTwiddleAReal
const q15_t * pTwiddleAReal
Definition: arm_math.h:2289
arm_matrix_instance_q15::numCols
uint16_t numCols
Definition: arm_math.h:1542
arm_fir_interpolate_instance_q15::L
uint8_t L
Definition: arm_math.h:3577
arm_cmplx_conj_f32
void arm_cmplx_conj_f32(const float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex conjugate.
arm_fir_sparse_q7
void arm_fir_sparse_q7(arm_fir_sparse_instance_q7 *S, const q7_t *pSrc, q7_t *pDst, q7_t *pScratchIn, q31_t *pScratchOut, uint32_t blockSize)
Processing function for the Q7 sparse FIR filter.
arm_cmplx_mag_squared_q15
void arm_cmplx_mag_squared_q15(const q15_t *pSrc, q15_t *pDst, uint32_t numSamples)
Q15 complex magnitude squared.
arm_q15_to_q7
void arm_q15_to_q7(const q15_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to Q7 vector.
arm_lms_instance_q15::pState
q15_t * pState
Definition: arm_math.h:4168
arm_cfft_radix4_instance_q15::pTwiddle
const q15_t * pTwiddle
Definition: arm_math.h:2105
arm_iir_lattice_init_q31
void arm_iir_lattice_init_q31(arm_iir_lattice_instance_q31 *S, uint16_t numStages, q31_t *pkCoeffs, q31_t *pvCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 IIR lattice filter.
arm_fir_decimate_instance_q31::M
uint8_t M
Definition: arm_math.h:3424
arm_mat_add_q15
arm_status arm_mat_add_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst)
Q15 matrix addition.
arm_power_q15
void arm_power_q15(const q15_t *pSrc, uint32_t blockSize, q63_t *pResult)
Sum of the squares of the elements of a Q15 vector.
arm_pid_instance_f32::A2
float32_t A2
Definition: arm_math.h:1898
arm_mult_q31
void arm_mult_q31(const q31_t *pSrcA, const q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector multiplication.
arm_fir_interpolate_instance_f32::pState
float32_t * pState
Definition: arm_math.h:3602
arm_circularWrite_q15
__STATIC_FORCEINLINE void arm_circularWrite_q15(q15_t *circBuffer, int32_t L, uint16_t *writeOffset, int32_t bufferInc, const q15_t *src, int32_t srcInc, uint32_t blockSize)
Q15 Circular write function.
Definition: arm_math.h:6040
arm_fir_sparse_instance_f32::pCoeffs
const float32_t * pCoeffs
Definition: arm_math.h:4583
arm_fir_sparse_instance_q31::stateIndex
uint16_t stateIndex
Definition: arm_math.h:4594
arm_fir_instance_f32::numTaps
uint16_t numTaps
Definition: arm_math.h:1229
arm_fir_lattice_instance_q15::pState
q15_t * pState
Definition: arm_math.h:3875
arm_cfft_radix2_instance_q15::pBitRevTable
const uint16_t * pBitRevTable
Definition: arm_math.h:2079
arm_fir_sparse_init_q15
void arm_fir_sparse_init_q15(arm_fir_sparse_instance_q15 *S, uint16_t numTaps, const q15_t *pCoeffs, q15_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the Q15 sparse FIR filter.
arm_fir_instance_q31::pCoeffs
const q31_t * pCoeffs
Definition: arm_math.h:1221
arm_matrix_instance_q31::numCols
uint16_t numCols
Definition: arm_math.h:1552
arm_lms_norm_init_q31
void arm_lms_norm_init_q31(arm_lms_norm_instance_q31 *S, uint16_t numTaps, q31_t *pCoeffs, q31_t *pState, q31_t mu, uint32_t blockSize, uint8_t postShift)
Initialization function for Q31 normalized LMS filter.
write_q7x4_ia
__STATIC_FORCEINLINE void write_q7x4_ia(q7_t **pQ7, q31_t value)
Write 4 Q7 to Q7 pointer and increment pointer afterwards.
Definition: arm_math.h:566
L
#define L
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/extras/stb_vorbis.c:5102
arm_dct4_instance_q31
Instance structure for the Q31 DCT4/IDCT4 function.
Definition: arm_math.h:2442
arm_fir_decimate_instance_q15::M
uint8_t M
Definition: arm_math.h:3413
arm_fir_decimate_instance_f32::M
uint8_t M
Definition: arm_math.h:3435
arm_rfft_instance_f32::pCfft
arm_cfft_radix4_instance_f32 * pCfft
Definition: arm_math.h:2342
arm_linear_interp_f32
__STATIC_FORCEINLINE float32_t arm_linear_interp_f32(arm_linear_interp_instance_f32 *S, float32_t x)
Process function for the floating-point Linear Interpolation Function.
Definition: arm_math.h:5536
arm_lms_norm_instance_q31::numTaps
uint16_t numTaps
Definition: arm_math.h:4319
arm_lms_norm_instance_q15::energy
q15_t energy
Definition: arm_math.h:4379
arm_conv_q7
void arm_conv_q7(const q7_t *pSrcA, uint32_t srcALen, const q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst)
Convolution of Q7 sequences.
arm_pid_instance_q31::A0
q31_t A0
Definition: arm_math.h:1882
arm_lms_norm_instance_q15::numTaps
uint16_t numTaps
Definition: arm_math.h:4373
__SHSUB16
__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t x, uint32_t y)
Definition: arm_math.h:952
__SMLAD
__STATIC_FORCEINLINE uint32_t __SMLAD(uint32_t x, uint32_t y, uint32_t sum)
Definition: arm_math.h:1077
arm_dct4_instance_f32::N
uint16_t N
Definition: arm_math.h:2398
arm_conv_q15
void arm_conv_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst)
Convolution of Q15 sequences.
arm_sin_cos_q31
void arm_sin_cos_q31(q31_t theta, q31_t *pSinVal, q31_t *pCosVal)
Q31 sin_cos function.
arm_correlate_q31
void arm_correlate_q31(const q31_t *pSrcA, uint32_t srcALen, const q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Correlation of Q31 sequences.
arm_lms_q15
void arm_lms_q15(const arm_lms_instance_q15 *S, const q15_t *pSrc, q15_t *pRef, q15_t *pOut, q15_t *pErr, uint32_t blockSize)
Processing function for Q15 LMS filter.
arm_fir_instance_q7::numTaps
uint16_t numTaps
Definition: arm_math.h:1199
__SHSAX
__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t x, uint32_t y)
Definition: arm_math.h:1016
arm_cfft_radix4_instance_q15
Instance structure for the Q15 CFFT/CIFFT function.
Definition: arm_math.h:2100
arm_lms_norm_instance_q31::pState
q31_t * pState
Definition: arm_math.h:4320
arm_pid_instance_q31::Kd
q31_t Kd
Definition: arm_math.h:1888
arm_min_q31
void arm_min_q31(const q31_t *pSrc, uint32_t blockSize, q31_t *pResult, uint32_t *pIndex)
Minimum value of a Q31 vector.
arm_add_q15
void arm_add_q15(const q15_t *pSrcA, const q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector addition.
arm_fir_sparse_q31
void arm_fir_sparse_q31(arm_fir_sparse_instance_q31 *S, const q31_t *pSrc, q31_t *pDst, q31_t *pScratchIn, uint32_t blockSize)
Processing function for the Q31 sparse FIR filter.
arm_dct4_init_f32
arm_status arm_dct4_init_f32(arm_dct4_instance_f32 *S, arm_rfft_instance_f32 *S_RFFT, arm_cfft_radix4_instance_f32 *S_CFFT, uint16_t N, uint16_t Nby2, float32_t normalize)
Initialization function for the floating-point DCT4/IDCT4.
arm_offset_f32
void arm_offset_f32(const float32_t *pSrc, float32_t offset, float32_t *pDst, uint32_t blockSize)
Adds a constant offset to a floating-point vector.
ARM_MATH_ARGUMENT_ERROR
@ ARM_MATH_ARGUMENT_ERROR
Definition: arm_math.h:378
arm_mat_cmplx_mult_f32
arm_status arm_mat_cmplx_mult_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point, complex, matrix multiplication.
arm_dct4_instance_q15
Instance structure for the Q15 DCT4/IDCT4 function.
Definition: arm_math.h:2488
arm_fir_q31
void arm_fir_q31(const arm_fir_instance_q31 *S, const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR filter.
arm_sin_cos_f32
void arm_sin_cos_f32(float32_t theta, float32_t *pSinVal, float32_t *pCosVal)
Floating-point sin_cos function.
arm_fir_lattice_instance_f32::numStages
uint16_t numStages
Definition: arm_math.h:3894
arm_biquad_casd_df1_inst_q15::pState
q15_t * pState
Definition: arm_math.h:1381
arm_matrix_instance_f32::numCols
uint16_t numCols
Definition: arm_math.h:1521
arm_bilinear_interp_instance_q7::pData
q7_t * pData
Definition: arm_math.h:2010
arm_fir_sparse_instance_q15::pTapDelay
int32_t * pTapDelay
Definition: arm_math.h:4611
arm_pid_instance_q31::Ki
q31_t Ki
Definition: arm_math.h:1887
arm_copy_q7
void arm_copy_q7(const q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Copies the elements of a Q7 vector.
arm_lms_norm_instance_q31
Instance structure for the Q31 normalized LMS filter.
Definition: arm_math.h:4317
arm_pid_instance_f32
Instance structure for the floating-point PID Control.
Definition: arm_math.h:1894
arm_fir_sparse_instance_q7::stateIndex
uint16_t stateIndex
Definition: arm_math.h:4620
arm_fir_decimate_instance_f32::pCoeffs
const float32_t * pCoeffs
Definition: arm_math.h:3437
arm_fir_sparse_instance_f32
Instance structure for the floating-point sparse FIR filter.
Definition: arm_math.h:4578
arm_pid_instance_f32::A0
float32_t A0
Definition: arm_math.h:1896
arm_cfft_radix4_instance_f32::pBitRevTable
const uint16_t * pBitRevTable
Definition: arm_math.h:2211
arm_fir_sparse_instance_q7::pTapDelay
int32_t * pTapDelay
Definition: arm_math.h:4624
arm_cfft_radix2_instance_f32::ifftFlag
uint8_t ifftFlag
Definition: arm_math.h:2181
arm_fir_sparse_instance_q7
Instance structure for the Q7 sparse FIR filter.
Definition: arm_math.h:4617
arm_iir_lattice_instance_q31::pkCoeffs
q31_t * pkCoeffs
Definition: arm_math.h:4002
arm_matrix_instance_f64::numCols
uint16_t numCols
Definition: arm_math.h:1532
arm_dct4_instance_q31::Nby2
uint16_t Nby2
Definition: arm_math.h:2445
arm_fir_sparse_instance_q7::numTaps
uint16_t numTaps
Definition: arm_math.h:4619
arm_cfft_radix2_instance_q31::pTwiddle
const q31_t * pTwiddle
Definition: arm_math.h:2131
read_q15x2_ia
__STATIC_FORCEINLINE q31_t read_q15x2_ia(q15_t **pQ15)
Read 2 Q15 from Q15 pointer and increment pointer afterwards.
Definition: arm_math.h:469
arm_cfft_radix4_q15
void arm_cfft_radix4_q15(const arm_cfft_radix4_instance_q15 *S, q15_t *pSrc)
arm_pid_instance_q15::state
q15_t state[3]
Definition: arm_math.h:1871
arm_fir_decimate_instance_q31
Instance structure for the Q31 FIR decimator.
Definition: arm_math.h:3422
arm_mat_trans_q31
arm_status arm_mat_trans_q31(const arm_matrix_instance_q31 *pSrc, arm_matrix_instance_q31 *pDst)
Q31 matrix transpose.
arm_biquad_cascade_df1_init_q31
void arm_biquad_cascade_df1_init_q31(arm_biquad_casd_df1_inst_q31 *S, uint8_t numStages, const q31_t *pCoeffs, q31_t *pState, int8_t postShift)
Initialization function for the Q31 Biquad cascade filter.
arm_pid_instance_q31::A1
q31_t A1
Definition: arm_math.h:1883
arm_fir_sparse_init_q7
void arm_fir_sparse_init_q7(arm_fir_sparse_instance_q7 *S, uint16_t numTaps, const q7_t *pCoeffs, q7_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the Q7 sparse FIR filter.
arm_bilinear_interp_instance_q31
Instance structure for the Q31 bilinear interpolation function.
Definition: arm_math.h:1986
arm_float_to_q7
void arm_float_to_q7(const float32_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the floating-point vector to Q7 vector.
q15_t
int16_t q15_t
16-bit fractional data type in 1.15 format.
Definition: arm_math.h:394
arm_biquad_cascade_df1_init_q15
void arm_biquad_cascade_df1_init_q15(arm_biquad_casd_df1_inst_q15 *S, uint8_t numStages, const q15_t *pCoeffs, q15_t *pState, int8_t postShift)
Initialization function for the Q15 Biquad cascade filter.
arm_rfft_instance_q15::pTwiddleBReal
const q15_t * pTwiddleBReal
Definition: arm_math.h:2290
arm_rfft_fast_init_f32
arm_status arm_rfft_fast_init_f32(arm_rfft_fast_instance_f32 *S, uint16_t fftLen)
arm_pid_reset_q15
void arm_pid_reset_q15(arm_pid_instance_q15 *S)
Reset function for the Q15 PID Control.
arm_lms_instance_f32::numTaps
uint16_t numTaps
Definition: arm_math.h:4119
arm_max_q31
void arm_max_q31(const q31_t *pSrc, uint32_t blockSize, q31_t *pResult, uint32_t *pIndex)
Maximum value of a Q31 vector.
arm_rfft_fast_instance_f32::fftLenRFFT
uint16_t fftLenRFFT
Definition: arm_math.h:2363
arm_fir_instance_f32::pCoeffs
const float32_t * pCoeffs
Definition: arm_math.h:1231
arm_fir_sparse_instance_q15::pState
q15_t * pState
Definition: arm_math.h:4608
arm_fir_lattice_instance_q31::pCoeffs
const q31_t * pCoeffs
Definition: arm_math.h:3886
arm_correlate_f32
void arm_correlate_f32(const float32_t *pSrcA, uint32_t srcALen, const float32_t *pSrcB, uint32_t srcBLen, float32_t *pDst)
Correlation of floating-point sequences.
arm_biquad_cascade_stereo_df2T_instance_f32
Instance structure for the floating-point transposed direct form II Biquad cascade filter.
Definition: arm_math.h:3761
arm_dct4_instance_f32::pCfft
arm_cfft_radix4_instance_f32 * pCfft
Definition: arm_math.h:2404
arm_fir_lattice_instance_q15::numStages
uint16_t numStages
Definition: arm_math.h:3874
arm_fir_lattice_instance_q31::numStages
uint16_t numStages
Definition: arm_math.h:3884
arm_cmplx_mag_squared_q31
void arm_cmplx_mag_squared_q31(const q31_t *pSrc, q31_t *pDst, uint32_t numSamples)
Q31 complex magnitude squared.
arm_lms_instance_q15
Instance structure for the Q15 LMS filter.
Definition: arm_math.h:4165
arm_cfft_radix2_instance_f32::pBitRevTable
const uint16_t * pBitRevTable
Definition: arm_math.h:2184
arm_rfft_instance_f32::twidCoefRModifier
uint32_t twidCoefRModifier
Definition: arm_math.h:2339
arm_biquad_cas_df1_32x64_ins_q31::pCoeffs
const q31_t * pCoeffs
Definition: arm_math.h:3715
arm_cfft_radix2_instance_f32::fftLen
uint16_t fftLen
Definition: arm_math.h:2180
arm_bilinear_interp_instance_q15::pData
q15_t * pData
Definition: arm_math.h:2000
arm_fir_interpolate_init_f32
arm_status arm_fir_interpolate_init_f32(arm_fir_interpolate_instance_f32 *S, uint8_t L, uint16_t numTaps, const float32_t *pCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point FIR interpolator.
arm_cfft_radix2_instance_q31::bitReverseFlag
uint8_t bitReverseFlag
Definition: arm_math.h:2130
arm_pid_instance_q31::Kp
q31_t Kp
Definition: arm_math.h:1886
arm_cfft_instance_q15::bitRevLength
uint16_t bitRevLength
Definition: arm_math.h:2237
arm_cfft_radix4_instance_q15::ifftFlag
uint8_t ifftFlag
Definition: arm_math.h:2103
arm_rfft_instance_q15::ifftFlagR
uint8_t ifftFlagR
Definition: arm_math.h:2286
arm_cmplx_mag_f32
void arm_cmplx_mag_f32(const float32_t *pSrc, float32_t *pDst, uint32_t numSamples)
Floating-point complex magnitude.
arm_std_f32
void arm_std_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Standard deviation of the elements of a floating-point vector.
arm_lms_norm_q31
void arm_lms_norm_q31(arm_lms_norm_instance_q31 *S, const q31_t *pSrc, q31_t *pRef, q31_t *pOut, q31_t *pErr, uint32_t blockSize)
Processing function for Q31 normalized LMS filter.
arm_fir_instance_q15::pState
q15_t * pState
Definition: arm_math.h:1210
arm_dct4_instance_q31::pTwiddle
const q31_t * pTwiddle
Definition: arm_math.h:2447
arm_cfft_radix2_instance_q15::twidCoefModifier
uint16_t twidCoefModifier
Definition: arm_math.h:2080
arm_cfft_radix2_q31
void arm_cfft_radix2_q31(const arm_cfft_radix2_instance_q31 *S, q31_t *pSrc)
arm_dct4_instance_f32::pTwiddle
const float32_t * pTwiddle
Definition: arm_math.h:2401
arm_cfft_radix4_instance_f32::bitRevFactor
uint16_t bitRevFactor
Definition: arm_math.h:2213
arm_cmplx_mult_cmplx_f32
void arm_cmplx_mult_cmplx_f32(const float32_t *pSrcA, const float32_t *pSrcB, float32_t *pDst, uint32_t numSamples)
Floating-point complex-by-complex multiplication.
arm_biquad_cascade_stereo_df2T_f32
void arm_biquad_cascade_stereo_df2T_f32(const arm_biquad_cascade_stereo_df2T_instance_f32 *S, const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point transposed direct form II Biquad cascade filter....
arm_biquad_cascade_stereo_df2T_init_f32
void arm_biquad_cascade_stereo_df2T_init_f32(arm_biquad_cascade_stereo_df2T_instance_f32 *S, uint8_t numStages, const float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point transposed direct form II Biquad cascade filter.
arm_circularRead_q15
__STATIC_FORCEINLINE void arm_circularRead_q15(q15_t *circBuffer, int32_t L, int32_t *readOffset, int32_t bufferInc, q15_t *dst, q15_t *dst_base, int32_t dst_length, int32_t dstInc, uint32_t blockSize)
Q15 Circular Read function.
Definition: arm_math.h:6084
arm_biquad_cascade_df1_init_f32
void arm_biquad_cascade_df1_init_f32(arm_biquad_casd_df1_inst_f32 *S, uint8_t numStages, const float32_t *pCoeffs, float32_t *pState)
Initialization function for the floating-point Biquad cascade filter.
arm_q15_to_float
void arm_q15_to_float(const q15_t *pSrc, float32_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to floating-point vector.
arm_rfft_instance_q15
Instance structure for the Q15 RFFT/RIFFT function.
Definition: arm_math.h:2283
arm_dot_prod_q15
void arm_dot_prod_q15(const q15_t *pSrcA, const q15_t *pSrcB, uint32_t blockSize, q63_t *result)
Dot product of Q15 vectors.
arm_cfft_q15
void arm_cfft_q15(const arm_cfft_instance_q15 *S, q15_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_dct4_instance_f32
Instance structure for the floating-point DCT4/IDCT4 function.
Definition: arm_math.h:2396
arm_cfft_instance_q31::pTwiddle
const q31_t * pTwiddle
Definition: arm_math.h:2252
arm_offset_q31
void arm_offset_q31(const q31_t *pSrc, q31_t offset, q31_t *pDst, uint32_t blockSize)
Adds a constant offset to a Q31 vector.
arm_cfft_radix4_instance_q15::twidCoefModifier
uint16_t twidCoefModifier
Definition: arm_math.h:2107
arm_fir_instance_f32
Instance structure for the floating-point FIR filter.
Definition: arm_math.h:1227
arm_min_f32
void arm_min_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult, uint32_t *pIndex)
Minimum value of a floating-point vector.
mult32x64
__STATIC_FORCEINLINE q63_t mult32x64(q63_t x, q31_t y)
Multiplies 32 X 64 and returns 32 bit result in 2.30 format.
Definition: arm_math.h:710
arm_lms_norm_init_q15
void arm_lms_norm_init_q15(arm_lms_norm_instance_q15 *S, uint16_t numTaps, q15_t *pCoeffs, q15_t *pState, q15_t mu, uint32_t blockSize, uint8_t postShift)
Initialization function for Q15 normalized LMS filter.
arm_conv_partial_f32
arm_status arm_conv_partial_f32(const float32_t *pSrcA, uint32_t srcALen, const float32_t *pSrcB, uint32_t srcBLen, float32_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of floating-point sequences.
arm_bilinear_interp_instance_f32::pData
float32_t * pData
Definition: arm_math.h:1980
arm_cmplx_dot_prod_f32
void arm_cmplx_dot_prod_f32(const float32_t *pSrcA, const float32_t *pSrcB, uint32_t numSamples, float32_t *realResult, float32_t *imagResult)
Floating-point complex dot product.
arm_biquad_cascade_df2T_instance_f64::pState
float64_t * pState
Definition: arm_math.h:3774
arm_correlate_fast_q31
void arm_correlate_fast_q31(const q31_t *pSrcA, uint32_t srcALen, const q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst)
Correlation of Q31 sequences (fast version).
__QSUB8
__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t x, uint32_t y)
Definition: arm_math.h:885
arm_iir_lattice_instance_q31::numStages
uint16_t numStages
Definition: arm_math.h:4000
arm_matrix_instance_f64::numRows
uint16_t numRows
Definition: arm_math.h:1531
arm_cfft_radix2_instance_f32
Instance structure for the floating-point CFFT/CIFFT function.
Definition: arm_math.h:2178
arm_biquad_cascade_stereo_df2T_instance_f32::pCoeffs
const float32_t * pCoeffs
Definition: arm_math.h:3765
arm_fir_instance_f32::pState
float32_t * pState
Definition: arm_math.h:1230
arm_fir_instance_q15
Instance structure for the Q15 FIR filter.
Definition: arm_math.h:1207
arm_mat_sub_q31
arm_status arm_mat_sub_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix subtraction.
__QSAX
__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t x, uint32_t y)
Definition: arm_math.h:1000
__QADD
__STATIC_FORCEINLINE int32_t __QADD(int32_t x, int32_t y)
Definition: arm_math.h:1055
arm_fir_decimate_instance_q15::numTaps
uint16_t numTaps
Definition: arm_math.h:3414
arm_biquad_cas_df1_32x64_ins_q31
Instance structure for the high precision Q31 Biquad cascade filter.
Definition: arm_math.h:3711
arm_cfft_radix2_init_f32
arm_status arm_cfft_radix2_init_f32(arm_cfft_radix2_instance_f32 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_cfft_radix4_instance_q31::bitReverseFlag
uint8_t bitReverseFlag
Definition: arm_math.h:2156
arm_linear_interp_q15
__STATIC_FORCEINLINE q15_t arm_linear_interp_q15(q15_t *pYData, q31_t x, uint32_t nValues)
Process function for the Q15 Linear Interpolation Function.
Definition: arm_math.h:5651
arm_var_q31
void arm_var_q31(const q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Variance of the elements of a Q31 vector.
arm_cos_q31
q31_t arm_cos_q31(q31_t x)
Fast approximation to the trigonometric cosine function for Q31 data.
ARM_MATH_SIZE_MISMATCH
@ ARM_MATH_SIZE_MISMATCH
Definition: arm_math.h:380
arm_rfft_fast_f32
void arm_rfft_fast_f32(arm_rfft_fast_instance_f32 *S, float32_t *p, float32_t *pOut, uint8_t ifftFlag)
clip_q63_to_q15
__STATIC_FORCEINLINE q15_t clip_q63_to_q15(q63_t x)
Clips Q63 to Q15 values.
Definition: arm_math.h:680
arm_cfft_radix2_instance_q15
Instance structure for the Q15 CFFT/CIFFT function.
Definition: arm_math.h:2073
arm_rms_q31
void arm_rms_q31(const q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Root Mean Square of the elements of a Q31 vector.
arm_mean_q15
void arm_mean_q15(const q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Mean value of a Q15 vector.
arm_rfft_instance_q31
Instance structure for the Q31 RFFT/RIFFT function.
Definition: arm_math.h:2308
arm_biquad_cascade_df2T_init_f64
void arm_biquad_cascade_df2T_init_f64(arm_biquad_cascade_df2T_instance_f64 *S, uint8_t numStages, float64_t *pCoeffs, float64_t *pState)
Initialization function for the floating-point transposed direct form II Biquad cascade filter.
arm_dct4_instance_q31::pCfft
arm_cfft_radix4_instance_q31 * pCfft
Definition: arm_math.h:2450
arm_lms_instance_q31::postShift
uint32_t postShift
Definition: arm_math.h:4222
arm_rfft_instance_q31::fftLenReal
uint32_t fftLenReal
Definition: arm_math.h:2310
arm_iir_lattice_instance_q31
Instance structure for the Q31 IIR lattice filter.
Definition: arm_math.h:3998
arm_cfft_radix4_instance_f32::bitReverseFlag
uint8_t bitReverseFlag
Definition: arm_math.h:2209
arm_fir_lattice_instance_q31
Instance structure for the Q31 FIR lattice filter.
Definition: arm_math.h:3882
arm_sin_q15
q15_t arm_sin_q15(q15_t x)
Fast approximation to the trigonometric sine function for Q15 data.
arm_fir_decimate_init_f32
arm_status arm_fir_decimate_init_f32(arm_fir_decimate_instance_f32 *S, uint16_t numTaps, uint8_t M, const float32_t *pCoeffs, float32_t *pState, uint32_t blockSize)
Initialization function for the floating-point FIR decimator.
__SMUAD
__STATIC_FORCEINLINE uint32_t __SMUAD(uint32_t x, uint32_t y)
Definition: arm_math.h:1149
arm_pid_q15
__STATIC_FORCEINLINE q15_t arm_pid_q15(arm_pid_instance_q15 *S, q15_t in)
Process function for the Q15 PID Control.
Definition: arm_math.h:5023
arm_abs_q31
void arm_abs_q31(const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Q31 vector absolute value.
arm_fir_decimate_instance_f32::numTaps
uint16_t numTaps
Definition: arm_math.h:3436
arm_add_f32
void arm_add_f32(const float32_t *pSrcA, const float32_t *pSrcB, float32_t *pDst, uint32_t blockSize)
Floating-point vector addition.
arm_bilinear_interp_q15
__STATIC_FORCEINLINE q15_t arm_bilinear_interp_q15(arm_bilinear_interp_instance_q15 *S, q31_t X, q31_t Y)
Q15 bilinear interpolation.
Definition: arm_math.h:7075
arm_cfft_radix4_instance_q31::pTwiddle
const q31_t * pTwiddle
Definition: arm_math.h:2157
arm_biquad_cascade_df1_q31
void arm_biquad_cascade_df1_q31(const arm_biquad_casd_df1_inst_q31 *S, const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 Biquad cascade filter.
arm_fir_sparse_init_f32
void arm_fir_sparse_init_f32(arm_fir_sparse_instance_f32 *S, uint16_t numTaps, const float32_t *pCoeffs, float32_t *pState, int32_t *pTapDelay, uint16_t maxDelay, uint32_t blockSize)
Initialization function for the floating-point sparse FIR filter.
arm_biquad_cascade_df2T_instance_f64::numStages
uint8_t numStages
Definition: arm_math.h:3773
arm_fir_q7
void arm_fir_q7(const arm_fir_instance_q7 *S, const q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Processing function for the Q7 FIR filter.
arm_negate_q31
void arm_negate_q31(const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Negates the elements of a Q31 vector.
arm_bilinear_interp_instance_q7::numRows
uint16_t numRows
Definition: arm_math.h:2008
arm_rfft_init_q15
arm_status arm_rfft_init_q15(arm_rfft_instance_q15 *S, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
arm_bilinear_interp_f32
__STATIC_FORCEINLINE float32_t arm_bilinear_interp_f32(const arm_bilinear_interp_instance_f32 *S, float32_t X, float32_t Y)
Floating-point bilinear interpolation.
Definition: arm_math.h:6936
arm_mat_scale_q31
arm_status arm_mat_scale_q31(const arm_matrix_instance_q31 *pSrc, q31_t scaleFract, int32_t shift, arm_matrix_instance_q31 *pDst)
Q31 matrix scaling.
arm_rfft_init_q31
arm_status arm_rfft_init_q31(arm_rfft_instance_q31 *S, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag)
arm_cfft_instance_f32
Instance structure for the floating-point CFFT/CIFFT function.
Definition: arm_math.h:2266
arm_copy_q15
void arm_copy_q15(const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Copies the elements of a Q15 vector.
arm_q7_to_q31
void arm_q7_to_q31(const q7_t *pSrc, q31_t *pDst, uint32_t blockSize)
Converts the elements of the Q7 vector to Q31 vector.
arm_park_q31
__STATIC_FORCEINLINE void arm_park_q31(q31_t Ialpha, q31_t Ibeta, q31_t *pId, q31_t *pIq, q31_t sinVal, q31_t cosVal)
Park transform for Q31 version.
Definition: arm_math.h:5349
arm_rfft_instance_q15::twidCoefRModifier
uint32_t twidCoefRModifier
Definition: arm_math.h:2288
arm_rfft_instance_f32::fftLenBy2
uint16_t fftLenBy2
Definition: arm_math.h:2336
arm_pid_instance_f32::Kd
float32_t Kd
Definition: arm_math.h:1902
arm_rfft_2048_fast_init_f32
arm_status arm_rfft_2048_fast_init_f32(arm_rfft_fast_instance_f32 *S)
arm_fir_instance_q15::pCoeffs
const q15_t * pCoeffs
Definition: arm_math.h:1211
arm_cfft_radix4_instance_q31::fftLen
uint16_t fftLen
Definition: arm_math.h:2154
arm_correlate_opt_q7
void arm_correlate_opt_q7(const q7_t *pSrcA, uint32_t srcALen, const q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst, q15_t *pScratch1, q15_t *pScratch2)
Correlation of Q7 sequences.
arm_cfft_radix4_instance_f32::pTwiddle
const float32_t * pTwiddle
Definition: arm_math.h:2210
arm_cos_q15
q15_t arm_cos_q15(q15_t x)
Fast approximation to the trigonometric cosine function for Q15 data.
arm_lms_init_f32
void arm_lms_init_f32(arm_lms_instance_f32 *S, uint16_t numTaps, float32_t *pCoeffs, float32_t *pState, float32_t mu, uint32_t blockSize)
Initialization function for floating-point LMS filter.
arm_negate_q7
void arm_negate_q7(const q7_t *pSrc, q7_t *pDst, uint32_t blockSize)
Negates the elements of a Q7 vector.
arm_bilinear_interp_instance_q15::numCols
uint16_t numCols
Definition: arm_math.h:1999
arm_lms_instance_f32::mu
float32_t mu
Definition: arm_math.h:4122
arm_clarke_q31
__STATIC_FORCEINLINE void arm_clarke_q31(q31_t Ia, q31_t Ib, q31_t *pIalpha, q31_t *pIbeta)
Clarke transform for Q31 version.
Definition: arm_math.h:5159
arm_cfft_instance_q15::fftLen
uint16_t fftLen
Definition: arm_math.h:2234
arm_conv_partial_fast_q31
arm_status arm_conv_partial_fast_q31(const q31_t *pSrcA, uint32_t srcALen, const q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4.
arm_fir_sparse_instance_q7::pState
q7_t * pState
Definition: arm_math.h:4621
arm_scale_f32
void arm_scale_f32(const float32_t *pSrc, float32_t scale, float32_t *pDst, uint32_t blockSize)
Multiplies a floating-point vector by a scalar.
arm_iir_lattice_instance_q15::pState
q15_t * pState
Definition: arm_math.h:3990
arm_rfft_512_fast_init_f32
arm_status arm_rfft_512_fast_init_f32(arm_rfft_fast_instance_f32 *S)
arm_pid_instance_q31::state
q31_t state[3]
Definition: arm_math.h:1885
arm_rfft_64_fast_init_f32
arm_status arm_rfft_64_fast_init_f32(arm_rfft_fast_instance_f32 *S)
arm_biquad_casd_df1_inst_f32::pState
float32_t * pState
Definition: arm_math.h:1403
arm_q7_to_float
void arm_q7_to_float(const q7_t *pSrc, float32_t *pDst, uint32_t blockSize)
Converts the elements of the Q7 vector to floating-point vector.
arm_linear_interp_instance_f32::pYData
float32_t * pYData
Definition: arm_math.h:1970
arm_cfft_radix4_instance_q31::twidCoefModifier
uint16_t twidCoefModifier
Definition: arm_math.h:2159
arm_pid_instance_f32::state
float32_t state[3]
Definition: arm_math.h:1899
arm_conv_partial_opt_q7
arm_status arm_conv_partial_opt_q7(const q7_t *pSrcA, uint32_t srcALen, const q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst, uint32_t firstIndex, uint32_t numPoints, q15_t *pScratch1, q15_t *pScratch2)
Partial convolution of Q7 sequences.
arm_fir_decimate_instance_q31::numTaps
uint16_t numTaps
Definition: arm_math.h:3425
arm_bilinear_interp_instance_f32
Instance structure for the floating-point bilinear interpolation function.
Definition: arm_math.h:1976
arm_correlate_q7
void arm_correlate_q7(const q7_t *pSrcA, uint32_t srcALen, const q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst)
Correlation of Q7 sequences.
arm_sub_q15
void arm_sub_q15(const q15_t *pSrcA, const q15_t *pSrcB, q15_t *pDst, uint32_t blockSize)
Q15 vector subtraction.
arm_float_to_q15
void arm_float_to_q15(const float32_t *pSrc, q15_t *pDst, uint32_t blockSize)
Converts the elements of the floating-point vector to Q15 vector.
arm_cmplx_conj_q31
void arm_cmplx_conj_q31(const q31_t *pSrc, q31_t *pDst, uint32_t numSamples)
Q31 complex conjugate.
arm_cfft_instance_q15
Instance structure for the fixed-point CFFT/CIFFT function.
Definition: arm_math.h:2232
arm_pid_reset_q31
void arm_pid_reset_q31(arm_pid_instance_q31 *S)
Reset function for the Q31 PID Control.
arm_cfft_radix2_instance_f32::onebyfftLen
float32_t onebyfftLen
Definition: arm_math.h:2187
__ASM
#define __ASM
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armcc.h:57
arm_add_q31
void arm_add_q31(const q31_t *pSrcA, const q31_t *pSrcB, q31_t *pDst, uint32_t blockSize)
Q31 vector addition.
arm_biquad_cascade_df2T_instance_f64::pCoeffs
float64_t * pCoeffs
Definition: arm_math.h:3775
arm_conv_opt_q7
void arm_conv_opt_q7(const q7_t *pSrcA, uint32_t srcALen, const q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst, q15_t *pScratch1, q15_t *pScratch2)
Convolution of Q7 sequences.
arm_circularRead_q7
__STATIC_FORCEINLINE void arm_circularRead_q7(q7_t *circBuffer, int32_t L, int32_t *readOffset, int32_t bufferInc, q7_t *dst, q7_t *dst_base, int32_t dst_length, int32_t dstInc, uint32_t blockSize)
Q7 Circular Read function.
Definition: arm_math.h:6185
arm_fir_interpolate_instance_f32
Instance structure for the floating-point FIR interpolator.
Definition: arm_math.h:3597
arm_cfft_radix4_instance_f32::ifftFlag
uint8_t ifftFlag
Definition: arm_math.h:2208
arm_rms_q15
void arm_rms_q15(const q15_t *pSrc, uint32_t blockSize, q15_t *pResult)
Root Mean Square of the elements of a Q15 vector.
arm_biquad_cascade_df1_fast_q31
void arm_biquad_cascade_df1_fast_q31(const arm_biquad_casd_df1_inst_q31 *S, const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Fast but less precise processing function for the Q31 Biquad cascade filter for Cortex-M3 and Cortex-...
arm_lms_norm_instance_q31::pCoeffs
q31_t * pCoeffs
Definition: arm_math.h:4321
arm_cmplx_conj_q15
void arm_cmplx_conj_q15(const q15_t *pSrc, q15_t *pDst, uint32_t numSamples)
Q15 complex conjugate.
arm_fir_decimate_f32
void arm_fir_decimate_f32(const arm_fir_decimate_instance_f32 *S, const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for floating-point FIR decimator.
arm_fir_interpolate_f32
void arm_fir_interpolate_f32(const arm_fir_interpolate_instance_f32 *S, const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR interpolator.
arm_biquad_cascade_stereo_df2T_instance_f32::pState
float32_t * pState
Definition: arm_math.h:3764
arm_sub_q7
void arm_sub_q7(const q7_t *pSrcA, const q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector subtraction.
arm_abs_q15
void arm_abs_q15(const q15_t *pSrc, q15_t *pDst, uint32_t blockSize)
Q15 vector absolute value.
arm_mat_add_q31
arm_status arm_mat_add_q31(const arm_matrix_instance_q31 *pSrcA, const arm_matrix_instance_q31 *pSrcB, arm_matrix_instance_q31 *pDst)
Q31 matrix addition.
arm_conv_partial_fast_opt_q15
arm_status arm_conv_partial_fast_opt_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints, q15_t *pScratch1, q15_t *pScratch2)
Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
arm_biquad_casd_df1_inst_q15
Instance structure for the Q15 Biquad cascade filter.
Definition: arm_math.h:1378
arm_q31_to_q7
void arm_q31_to_q7(const q31_t *pSrc, q7_t *pDst, uint32_t blockSize)
Converts the elements of the Q31 vector to Q7 vector.
arm_correlate_fast_opt_q15
void arm_correlate_fast_opt_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, q15_t *pScratch)
Correlation of Q15 sequences (fast version).
arm_lms_norm_instance_q15::pState
q15_t * pState
Definition: arm_math.h:4374
clip_q31_to_q7
__STATIC_FORCEINLINE q7_t clip_q31_to_q7(q31_t x)
Clips Q31 to Q7 values.
Definition: arm_math.h:690
arm_lms_norm_instance_f32::mu
float32_t mu
Definition: arm_math.h:4272
arm_rfft_instance_f32::bitReverseFlagR
uint8_t bitReverseFlagR
Definition: arm_math.h:2338
arm_lms_norm_q15
void arm_lms_norm_q15(arm_lms_norm_instance_q15 *S, const q15_t *pSrc, q15_t *pRef, q15_t *pOut, q15_t *pErr, uint32_t blockSize)
Processing function for Q15 normalized LMS filter.
__SSAT
__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat)
Signed Saturate.
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armclang.h:1163
arm_q15_to_q31
void arm_q15_to_q31(const q15_t *pSrc, q31_t *pDst, uint32_t blockSize)
Converts the elements of the Q15 vector to Q31 vector.
q7_t
int8_t q7_t
8-bit fractional data type in 1.7 format.
Definition: arm_math.h:389
arm_pid_instance_q15::Ki
q15_t Ki
Definition: arm_math.h:1873
arm_fir_decimate_init_q31
arm_status arm_fir_decimate_init_q31(arm_fir_decimate_instance_q31 *S, uint16_t numTaps, uint8_t M, const q31_t *pCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 FIR decimator.
arm_cfft_radix2_instance_q15::fftLen
uint16_t fftLen
Definition: arm_math.h:2075
arm_conv_partial_q7
arm_status arm_conv_partial_q7(const q7_t *pSrcA, uint32_t srcALen, const q7_t *pSrcB, uint32_t srcBLen, q7_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q7 sequences.
arm_biquad_casd_df1_inst_q31::pState
q31_t * pState
Definition: arm_math.h:1392
arm_fir_sparse_instance_q31::pState
q31_t * pState
Definition: arm_math.h:4595
arm_cfft_instance_f32::bitRevLength
uint16_t bitRevLength
Definition: arm_math.h:2271
arm_cfft_q31
void arm_cfft_q31(const arm_cfft_instance_q31 *S, q31_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_fir_init_q31
void arm_fir_init_q31(arm_fir_instance_q31 *S, uint16_t numTaps, const q31_t *pCoeffs, q31_t *pState, uint32_t blockSize)
Initialization function for the Q31 FIR filter.
arm_bilinear_interp_instance_q15
Instance structure for the Q15 bilinear interpolation function.
Definition: arm_math.h:1996
arm_fir_sparse_instance_q15::stateIndex
uint16_t stateIndex
Definition: arm_math.h:4607
arm_fir_decimate_fast_q31
void arm_fir_decimate_fast_q31(const arm_fir_decimate_instance_q31 *S, const q31_t *pSrc, q31_t *pDst, uint32_t blockSize)
Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M4.
arm_conv_partial_opt_q15
arm_status arm_conv_partial_opt_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, uint32_t firstIndex, uint32_t numPoints, q15_t *pScratch1, q15_t *pScratch2)
Partial convolution of Q15 sequences.
arm_rfft_instance_f32
Instance structure for the floating-point RFFT/RIFFT function.
Definition: arm_math.h:2333
arm_fill_q15
void arm_fill_q15(q15_t value, q15_t *pDst, uint32_t blockSize)
Fills a constant value into a Q15 vector.
arm_pid_init_q15
void arm_pid_init_q15(arm_pid_instance_q15 *S, int32_t resetStateFlag)
Initialization function for the Q15 PID Control.
arm_mean_q31
void arm_mean_q31(const q31_t *pSrc, uint32_t blockSize, q31_t *pResult)
Mean value of a Q31 vector.
arm_lms_norm_instance_f32::numTaps
uint16_t numTaps
Definition: arm_math.h:4269
arm_fir_interpolate_instance_q31::pCoeffs
const q31_t * pCoeffs
Definition: arm_math.h:3590
arm_biquad_cas_df1_32x64_init_q31
void arm_biquad_cas_df1_32x64_init_q31(arm_biquad_cas_df1_32x64_ins_q31 *S, uint8_t numStages, const q31_t *pCoeffs, q63_t *pState, uint8_t postShift)
arm_biquad_casd_df1_inst_q31
Instance structure for the Q31 Biquad cascade filter.
Definition: arm_math.h:1389
read_q15x2_da
__STATIC_FORCEINLINE q31_t read_q15x2_da(q15_t **pQ15)
Read 2 Q15 from Q15 pointer and decrement pointer afterwards.
Definition: arm_math.h:485
arm_mat_sub_q15
arm_status arm_mat_sub_q15(const arm_matrix_instance_q15 *pSrcA, const arm_matrix_instance_q15 *pSrcB, arm_matrix_instance_q15 *pDst)
Q15 matrix subtraction.
arm_add_q7
void arm_add_q7(const q7_t *pSrcA, const q7_t *pSrcB, q7_t *pDst, uint32_t blockSize)
Q7 vector addition.
arm_offset_q15
void arm_offset_q15(const q15_t *pSrc, q15_t offset, q15_t *pDst, uint32_t blockSize)
Adds a constant offset to a Q15 vector.
arm_vsqrt_q15
void arm_vsqrt_q15(q15_t *pIn, q15_t *pOut, uint16_t len)
arm_lms_instance_q31
Instance structure for the Q31 LMS filter.
Definition: arm_math.h:4216
arm_dct4_instance_q31::pCosFactor
const q31_t * pCosFactor
Definition: arm_math.h:2448
arm_dct4_init_q15
arm_status arm_dct4_init_q15(arm_dct4_instance_q15 *S, arm_rfft_instance_q15 *S_RFFT, arm_cfft_radix4_instance_q15 *S_CFFT, uint16_t N, uint16_t Nby2, q15_t normalize)
Initialization function for the Q15 DCT4/IDCT4.
arm_cfft_f32
void arm_cfft_f32(const arm_cfft_instance_f32 *S, float32_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_mat_init_q31
void arm_mat_init_q31(arm_matrix_instance_q31 *S, uint16_t nRows, uint16_t nColumns, q31_t *pData)
Q31 matrix initialization.
arm_lms_norm_instance_q31::energy
q31_t energy
Definition: arm_math.h:4325
__USAT
__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat)
Unsigned Saturate.
Definition: imxrt1050/imxrt1050-evkb/CMSIS/cmsis_armclang.h:1188
arm_cmplx_mult_real_q31
void arm_cmplx_mult_real_q31(const q31_t *pSrcCmplx, const q31_t *pSrcReal, q31_t *pCmplxDst, uint32_t numSamples)
Q31 complex-by-real multiplication.
__QSUB16
__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t x, uint32_t y)
Definition: arm_math.h:936
arm_power_f32
void arm_power_f32(const float32_t *pSrc, uint32_t blockSize, float32_t *pResult)
Sum of the squares of the elements of a floating-point vector.
arm_cfft_radix4_init_q15
arm_status arm_cfft_radix4_init_q15(arm_cfft_radix4_instance_q15 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag)
arm_circularWrite_f32
__STATIC_FORCEINLINE void arm_circularWrite_f32(int32_t *circBuffer, int32_t L, uint16_t *writeOffset, int32_t bufferInc, const int32_t *src, int32_t srcInc, uint32_t blockSize)
floating-point Circular write function.
Definition: arm_math.h:5939
__SMLSDX
__STATIC_FORCEINLINE uint32_t __SMLSDX(uint32_t x, uint32_t y, uint32_t sum)
Definition: arm_math.h:1105
arm_fir_lattice_f32
void arm_fir_lattice_f32(const arm_fir_lattice_instance_f32 *S, const float32_t *pSrc, float32_t *pDst, uint32_t blockSize)
Processing function for the floating-point FIR lattice filter.
arm_bilinear_interp_instance_q15::numRows
uint16_t numRows
Definition: arm_math.h:1998
arm_cfft_radix4_instance_q15::bitReverseFlag
uint8_t bitReverseFlag
Definition: arm_math.h:2104
write_q15x2_ia
__STATIC_FORCEINLINE void write_q15x2_ia(q15_t **pQ15, q31_t value)
Write 2 Q15 to Q15 pointer and increment pointer afterwards.
Definition: arm_math.h:502
arm_mat_add_f32
arm_status arm_mat_add_f32(const arm_matrix_instance_f32 *pSrcA, const arm_matrix_instance_f32 *pSrcB, arm_matrix_instance_f32 *pDst)
Floating-point matrix addition.
arm_mat_init_q15
void arm_mat_init_q15(arm_matrix_instance_q15 *S, uint16_t nRows, uint16_t nColumns, q15_t *pData)
Q15 matrix initialization.
arm_cfft_radix2_instance_q31::twidCoefModifier
uint16_t twidCoefModifier
Definition: arm_math.h:2133
arm_biquad_cascade_df2T_instance_f32::numStages
uint8_t numStages
Definition: arm_math.h:3753
arm_conv_fast_opt_q15
void arm_conv_fast_opt_q15(const q15_t *pSrcA, uint32_t srcALen, const q15_t *pSrcB, uint32_t srcBLen, q15_t *pDst, q15_t *pScratch1, q15_t *pScratch2)
Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4.
clip_q31_to_q15
__STATIC_FORCEINLINE q15_t clip_q31_to_q15(q31_t x)
Clips Q31 to Q15 values.
Definition: arm_math.h:700
arm_pid_q31
__STATIC_FORCEINLINE q31_t arm_pid_q31(arm_pid_instance_q31 *S, q31_t in)
Process function for the Q31 PID Control.
Definition: arm_math.h:4977
arm_sqrt_f32
__STATIC_FORCEINLINE arm_status arm_sqrt_f32(float32_t in, float32_t *pOut)
Floating-point square root function.
Definition: arm_math.h:5849
arm_cfft_instance_q31::fftLen
uint16_t fftLen
Definition: arm_math.h:2251
arm_fill_q31
void arm_fill_q31(q31_t value, q31_t *pDst, uint32_t blockSize)
Fills a constant value into a Q31 vector.
arm_shift_q15
void arm_shift_q15(const q15_t *pSrc, int8_t shiftBits, q15_t *pDst, uint32_t blockSize)
Shifts the elements of a Q15 vector a specified number of bits.
arm_min_q7
void arm_min_q7(const q7_t *pSrc, uint32_t blockSize, q7_t *result, uint32_t *index)
Minimum value of a Q7 vector.
arm_conv_partial_q31
arm_status arm_conv_partial_q31(const q31_t *pSrcA, uint32_t srcALen, const q31_t *pSrcB, uint32_t srcBLen, q31_t *pDst, uint32_t firstIndex, uint32_t numPoints)
Partial convolution of Q31 sequences.
arm_lms_norm_instance_q15::x0
q15_t x0
Definition: arm_math.h:4380


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:13:47