# Copyright (c) 2020 Stephanos Ioannidis # SPDX-License-Identifier: Apache-2.0 comment "Components" config CMSIS_DSP_BASICMATH bool "Basic Math Functions" default y help This option enables the Basic Math Functions, which support the following operations: * Vector Addition * Vector Subtraction * Vector Multiplication * Vector Dot Product * Vector Absolute Value * Vector Negate * Vector Offset * Vector Scale * Vector Shift * Vector Bitwise AND * Vector Bitwise OR * Vector Bitwise Exclusive OR * Vector Bitwise NOT config CMSIS_DSP_COMPLEXMATH bool "Complex Math Functions" imply CMSIS_DSP_FASTMATH help This option enables the Complex Math Functions, which support the following operations: * Complex-by-Complex Multiplication * Complex-by-Real Multiplication * Complex Dot Product * Complex Magnitude * Complex Magnitude Squared * Complex Conjugate config CMSIS_DSP_CONTROLLER bool "Controller Functions" help This option enables the Controller Functions, which support the following operations: * PID Control * Vector Clarke Transform * Vector Inverse Clarke Transform * Vector Park Transform * Vector Inverse Park Transform * Sine-Cosine These functions can be used to implement a generic PID controller, as well as field oriented motor control using Space Vector Modulation algorithm. config CMSIS_DSP_FASTMATH bool "Fast Math Functions" select CMSIS_DSP_TABLES imply CMSIS_DSP_TABLES_ALL_FAST help This option enables the Fast Math Functions, which support the following operations: * Sine * Cosine * Square Root config CMSIS_DSP_FILTERING bool "Filtering Functions" help This option enables the Filtering Functions, which support the following operations: * Convolution * Partial Convolution * Correlation The following filter types are supported: * FIR (finite impulse response) Filter * FIR Lattice Filter * FIR Sparse Filter * FIR Filter with Decimator * FIR Filter with Interpolator * IIR (infinite impulse response) Lattice Filter * Biquad Cascade IIR Filter, Direct Form I Structure * Biquad Cascade IIR Filter, Direct Form II Transposed Structure * High Precision Q31 Biquad Cascade Filter * LMS (least mean square) Filter * Normalized LMS Filter config CMSIS_DSP_MATRIX bool "Matrix Functions" help This option enables the Matrix Functions, which support the following operations: * Matrix Initialization * Matrix Addition * Matrix Subtraction * Matrix Multiplication * Complex Matrix Multiplication * Matrix Inverse * Matrix Scale * Matrix Transpose config CMSIS_DSP_STATISTICS bool "Statistics Functions" imply CMSIS_DSP_BASICMATH imply CMSIS_DSP_FASTMATH help This option enables the Statistics Functions, which support the following operations: * Minimum * Maximum * Mean * Root Mean Square (RMS) * Variance * Standard Deviation * Power config CMSIS_DSP_SUPPORT bool "Support Functions" help This option enables the Support Functions, which support the following operations: * Vector 8-bit Integer Value Conversion * Vector 16-bit Integer Value Conversion * Vector 32-bit Integer Value Conversion * Vector 32-bit Floating-Point Value Conversion * Vector Copy * Vector Fill * Vector Sorting * Cubic Spline Interpolation config CMSIS_DSP_TRANSFORM bool "Transform Functions" select CMSIS_DSP_TABLES imply CMSIS_DSP_TABLES_ALL_FFT help This option enables the Transform Functions, which support the following transformations: * Real Fast Fourier Transform (RFFT) * Complex Fast Fourier Transform (CFFT) * Type IV Discrete Cosine Transform (DCT4) config CMSIS_DSP_SVM bool "Support Vector Machine Functions" help This option enables the Support Vector Machine Functions, which support the following algorithms: * Linear * Polynomial * Sigmoid * Radial Basis Function (RBF) config CMSIS_DSP_BAYES bool "Bayesian Estimators" imply CMSIS_DSP_STATISTICS help This option enables the Bayesian Estimator Functions, which implements the naive gaussian Bayes estimator. config CMSIS_DSP_DISTANCE bool "Distance Functions" imply CMSIS_DSP_STATISTICS help This option enables the Distance Functions, which support the following distance computation algorithms: * Boolean Vectors * Hamming * Jaccard * Kulsinski * Rogers-Tanimoto * Russell-Rao * Sokal-Michener * Sokal-Sneath * Yule * Dice * Floating-Point Vectors * Canberra * Chebyshev * Cityblock * Correlation * Cosine * Euclidean * Jensen-Shannon * Minkowski * Bray-Curtis menuconfig CMSIS_DSP_TABLES bool "Look-up Tables" help This option enables the static look-up tables used by the DSP functions to compute results. if CMSIS_DSP_TABLES config CMSIS_DSP_TABLES_ALL_FAST bool "Include all fast interpolation tables" select CMSIS_DSP_TABLES_ARM_COS_F32 select CMSIS_DSP_TABLES_ARM_COS_Q31 select CMSIS_DSP_TABLES_ARM_COS_Q15 select CMSIS_DSP_TABLES_ARM_SIN_F32 select CMSIS_DSP_TABLES_ARM_SIN_Q31 select CMSIS_DSP_TABLES_ARM_SIN_Q15 select CMSIS_DSP_TABLES_ARM_SIN_COS_F32 select CMSIS_DSP_TABLES_ARM_SIN_COS_Q31 select CMSIS_DSP_TABLES_ARM_LMS_NORM_Q31 select CMSIS_DSP_TABLES_ARM_LMS_NORM_Q15 select CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q31 select CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q15 config CMSIS_DSP_TABLES_ALL_FFT bool "Include all FFT tables" select CMSIS_DSP_TABLES_CFFT_F64_16 select CMSIS_DSP_TABLES_CFFT_F64_32 select CMSIS_DSP_TABLES_CFFT_F64_64 select CMSIS_DSP_TABLES_CFFT_F64_128 select CMSIS_DSP_TABLES_CFFT_F64_256 select CMSIS_DSP_TABLES_CFFT_F64_512 select CMSIS_DSP_TABLES_CFFT_F64_1024 select CMSIS_DSP_TABLES_CFFT_F64_2048 select CMSIS_DSP_TABLES_CFFT_F64_4096 select CMSIS_DSP_TABLES_CFFT_F32_16 select CMSIS_DSP_TABLES_CFFT_F32_32 select CMSIS_DSP_TABLES_CFFT_F32_64 select CMSIS_DSP_TABLES_CFFT_F32_128 select CMSIS_DSP_TABLES_CFFT_F32_256 select CMSIS_DSP_TABLES_CFFT_F32_512 select CMSIS_DSP_TABLES_CFFT_F32_1024 select CMSIS_DSP_TABLES_CFFT_F32_2048 select CMSIS_DSP_TABLES_CFFT_F32_4096 select CMSIS_DSP_TABLES_CFFT_Q31_16 select CMSIS_DSP_TABLES_CFFT_Q31_32 select CMSIS_DSP_TABLES_CFFT_Q31_64 select CMSIS_DSP_TABLES_CFFT_Q31_128 select CMSIS_DSP_TABLES_CFFT_Q31_256 select CMSIS_DSP_TABLES_CFFT_Q31_512 select CMSIS_DSP_TABLES_CFFT_Q31_1024 select CMSIS_DSP_TABLES_CFFT_Q31_2048 select CMSIS_DSP_TABLES_CFFT_Q31_4096 select CMSIS_DSP_TABLES_CFFT_Q15_16 select CMSIS_DSP_TABLES_CFFT_Q15_32 select CMSIS_DSP_TABLES_CFFT_Q15_64 select CMSIS_DSP_TABLES_CFFT_Q15_128 select CMSIS_DSP_TABLES_CFFT_Q15_256 select CMSIS_DSP_TABLES_CFFT_Q15_512 select CMSIS_DSP_TABLES_CFFT_Q15_1024 select CMSIS_DSP_TABLES_CFFT_Q15_2048 select CMSIS_DSP_TABLES_CFFT_Q15_4096 select CMSIS_DSP_TABLES_RFFT_FAST_F64_32 select CMSIS_DSP_TABLES_RFFT_FAST_F64_64 select CMSIS_DSP_TABLES_RFFT_FAST_F64_128 select CMSIS_DSP_TABLES_RFFT_FAST_F64_256 select CMSIS_DSP_TABLES_RFFT_FAST_F64_512 select CMSIS_DSP_TABLES_RFFT_FAST_F64_1024 select CMSIS_DSP_TABLES_RFFT_FAST_F64_2048 select CMSIS_DSP_TABLES_RFFT_FAST_F64_4096 select CMSIS_DSP_TABLES_RFFT_FAST_F32_32 select CMSIS_DSP_TABLES_RFFT_FAST_F32_64 select CMSIS_DSP_TABLES_RFFT_FAST_F32_128 select CMSIS_DSP_TABLES_RFFT_FAST_F32_256 select CMSIS_DSP_TABLES_RFFT_FAST_F32_512 select CMSIS_DSP_TABLES_RFFT_FAST_F32_1024 select CMSIS_DSP_TABLES_RFFT_FAST_F32_2048 select CMSIS_DSP_TABLES_RFFT_FAST_F32_4096 select CMSIS_DSP_TABLES_RFFT_F64_128 select CMSIS_DSP_TABLES_RFFT_F64_512 select CMSIS_DSP_TABLES_RFFT_F64_2048 select CMSIS_DSP_TABLES_RFFT_F64_8192 select CMSIS_DSP_TABLES_RFFT_F32_128 select CMSIS_DSP_TABLES_RFFT_F32_512 select CMSIS_DSP_TABLES_RFFT_F32_2048 select CMSIS_DSP_TABLES_RFFT_F32_8192 select CMSIS_DSP_TABLES_RFFT_Q31_32 select CMSIS_DSP_TABLES_RFFT_Q31_64 select CMSIS_DSP_TABLES_RFFT_Q31_128 select CMSIS_DSP_TABLES_RFFT_Q31_256 select CMSIS_DSP_TABLES_RFFT_Q31_512 select CMSIS_DSP_TABLES_RFFT_Q31_1024 select CMSIS_DSP_TABLES_RFFT_Q31_2048 select CMSIS_DSP_TABLES_RFFT_Q31_4096 select CMSIS_DSP_TABLES_RFFT_Q31_8192 select CMSIS_DSP_TABLES_RFFT_Q15_32 select CMSIS_DSP_TABLES_RFFT_Q15_64 select CMSIS_DSP_TABLES_RFFT_Q15_128 select CMSIS_DSP_TABLES_RFFT_Q15_256 select CMSIS_DSP_TABLES_RFFT_Q15_512 select CMSIS_DSP_TABLES_RFFT_Q15_1024 select CMSIS_DSP_TABLES_RFFT_Q15_2048 select CMSIS_DSP_TABLES_RFFT_Q15_4096 select CMSIS_DSP_TABLES_RFFT_Q15_8192 select CMSIS_DSP_TABLES_DCT4_F32_128 select CMSIS_DSP_TABLES_DCT4_F32_512 select CMSIS_DSP_TABLES_DCT4_F32_2048 select CMSIS_DSP_TABLES_DCT4_F32_8192 select CMSIS_DSP_TABLES_DCT4_Q31_128 select CMSIS_DSP_TABLES_DCT4_Q31_512 select CMSIS_DSP_TABLES_DCT4_Q31_2048 select CMSIS_DSP_TABLES_DCT4_Q31_8192 select CMSIS_DSP_TABLES_DCT4_Q15_128 select CMSIS_DSP_TABLES_DCT4_Q15_512 select CMSIS_DSP_TABLES_DCT4_Q15_2048 select CMSIS_DSP_TABLES_DCT4_Q15_8192 comment "Interpolation Tables" config CMSIS_DSP_TABLES_ARM_COS_F32 bool "cos f32" config CMSIS_DSP_TABLES_ARM_COS_Q31 bool "cos q31" config CMSIS_DSP_TABLES_ARM_COS_Q15 bool "cos q15" config CMSIS_DSP_TABLES_ARM_SIN_F32 bool "sin f32" config CMSIS_DSP_TABLES_ARM_SIN_Q31 bool "sin q31" config CMSIS_DSP_TABLES_ARM_SIN_Q15 bool "sin q15" config CMSIS_DSP_TABLES_ARM_SIN_COS_F32 bool "sin cos f32" config CMSIS_DSP_TABLES_ARM_SIN_COS_Q31 bool "sin cos q31" config CMSIS_DSP_TABLES_ARM_LMS_NORM_Q31 bool "lms norm q31" config CMSIS_DSP_TABLES_ARM_LMS_NORM_Q15 bool "lms norm q15" config CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q31 bool "cmplx mag q31" config CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q15 bool "cmplx mag q15" comment "Transformation Tables" config CMSIS_DSP_TABLES_CFFT_F64_16 bool "cfft f64 16" config CMSIS_DSP_TABLES_CFFT_F64_32 bool "cfft f64 32" config CMSIS_DSP_TABLES_CFFT_F64_64 bool "cfft f64 64" config CMSIS_DSP_TABLES_CFFT_F64_128 bool "cfft f64 128" config CMSIS_DSP_TABLES_CFFT_F64_256 bool "cfft f64 256" config CMSIS_DSP_TABLES_CFFT_F64_512 bool "cfft f64 512" config CMSIS_DSP_TABLES_CFFT_F64_1024 bool "cfft f64 1024" config CMSIS_DSP_TABLES_CFFT_F64_2048 bool "cfft f64 2048" config CMSIS_DSP_TABLES_CFFT_F64_4096 bool "cfft f64 4096" config CMSIS_DSP_TABLES_CFFT_F32_16 bool "cfft f32 16" config CMSIS_DSP_TABLES_CFFT_F32_32 bool "cfft f32 32" config CMSIS_DSP_TABLES_CFFT_F32_64 bool "cfft f32 64" config CMSIS_DSP_TABLES_CFFT_F32_128 bool "cfft f32 128" config CMSIS_DSP_TABLES_CFFT_F32_256 bool "cfft f32 256" config CMSIS_DSP_TABLES_CFFT_F32_512 bool "cfft f32 512" config CMSIS_DSP_TABLES_CFFT_F32_1024 bool "cfft f32 1024" config CMSIS_DSP_TABLES_CFFT_F32_2048 bool "cfft f32 2048" config CMSIS_DSP_TABLES_CFFT_F32_4096 bool "cfft f32 4096" config CMSIS_DSP_TABLES_CFFT_Q31_16 bool "cfft q31 16" config CMSIS_DSP_TABLES_CFFT_Q31_32 bool "cfft q31 32" config CMSIS_DSP_TABLES_CFFT_Q31_64 bool "cfft q31 64" config CMSIS_DSP_TABLES_CFFT_Q31_128 bool "cfft q31 128" config CMSIS_DSP_TABLES_CFFT_Q31_256 bool "cfft q31 256" config CMSIS_DSP_TABLES_CFFT_Q31_512 bool "cfft q31 512" config CMSIS_DSP_TABLES_CFFT_Q31_1024 bool "cfft q31 1024" config CMSIS_DSP_TABLES_CFFT_Q31_2048 bool "cfft q31 2048" config CMSIS_DSP_TABLES_CFFT_Q31_4096 bool "cfft q31 4096" config CMSIS_DSP_TABLES_CFFT_Q15_16 bool "cfft q15 16" config CMSIS_DSP_TABLES_CFFT_Q15_32 bool "cfft q15 32" config CMSIS_DSP_TABLES_CFFT_Q15_64 bool "cfft q15 64" config CMSIS_DSP_TABLES_CFFT_Q15_128 bool "cfft q15 128" config CMSIS_DSP_TABLES_CFFT_Q15_256 bool "cfft q15 256" config CMSIS_DSP_TABLES_CFFT_Q15_512 bool "cfft q15 512" config CMSIS_DSP_TABLES_CFFT_Q15_1024 bool "cfft q15 1024" config CMSIS_DSP_TABLES_CFFT_Q15_2048 bool "cfft q15 2048" config CMSIS_DSP_TABLES_CFFT_Q15_4096 bool "cfft q15 4096" config CMSIS_DSP_TABLES_RFFT_FAST_F64_32 bool "rfft fast f64 32" config CMSIS_DSP_TABLES_RFFT_FAST_F64_64 bool "rfft fast f64 64" config CMSIS_DSP_TABLES_RFFT_FAST_F64_128 bool "rfft fast f64 128" config CMSIS_DSP_TABLES_RFFT_FAST_F64_256 bool "rfft fast f64 256" config CMSIS_DSP_TABLES_RFFT_FAST_F64_512 bool "rfft fast f64 512" config CMSIS_DSP_TABLES_RFFT_FAST_F64_1024 bool "rfft fast f64 1024" config CMSIS_DSP_TABLES_RFFT_FAST_F64_2048 bool "rfft fast f64 2048" config CMSIS_DSP_TABLES_RFFT_FAST_F64_4096 bool "rfft fast f64 4096" config CMSIS_DSP_TABLES_RFFT_FAST_F32_32 bool "rfft fast f32 32" config CMSIS_DSP_TABLES_RFFT_FAST_F32_64 bool "rfft fast f32 64" config CMSIS_DSP_TABLES_RFFT_FAST_F32_128 bool "rfft fast f32 128" config CMSIS_DSP_TABLES_RFFT_FAST_F32_256 bool "rfft fast f32 256" config CMSIS_DSP_TABLES_RFFT_FAST_F32_512 bool "rfft fast f32 512" config CMSIS_DSP_TABLES_RFFT_FAST_F32_1024 bool "rfft fast f32 1024" config CMSIS_DSP_TABLES_RFFT_FAST_F32_2048 bool "rfft fast f32 2048" config CMSIS_DSP_TABLES_RFFT_FAST_F32_4096 bool "rfft fast f32 4096" config CMSIS_DSP_TABLES_RFFT_F64_128 bool "rfft f64 128" config CMSIS_DSP_TABLES_RFFT_F64_512 bool "rfft f64 512" config CMSIS_DSP_TABLES_RFFT_F64_2048 bool "rfft f64 2048" config CMSIS_DSP_TABLES_RFFT_F64_8192 bool "rfft f64 8192" config CMSIS_DSP_TABLES_RFFT_F32_128 bool "rfft f32 128" config CMSIS_DSP_TABLES_RFFT_F32_512 bool "rfft f32 512" config CMSIS_DSP_TABLES_RFFT_F32_2048 bool "rfft f32 2048" config CMSIS_DSP_TABLES_RFFT_F32_8192 bool "rfft f32 8192" config CMSIS_DSP_TABLES_RFFT_Q31_32 bool "rfft q31 32" config CMSIS_DSP_TABLES_RFFT_Q31_64 bool "rfft q31 64" config CMSIS_DSP_TABLES_RFFT_Q31_128 bool "rfft q31 128" config CMSIS_DSP_TABLES_RFFT_Q31_256 bool "rfft q31 256" config CMSIS_DSP_TABLES_RFFT_Q31_512 bool "rfft q31 512" config CMSIS_DSP_TABLES_RFFT_Q31_1024 bool "rfft q31 1024" config CMSIS_DSP_TABLES_RFFT_Q31_2048 bool "rfft q31 2048" config CMSIS_DSP_TABLES_RFFT_Q31_4096 bool "rfft q31 4096" config CMSIS_DSP_TABLES_RFFT_Q31_8192 bool "rfft q31 8192" config CMSIS_DSP_TABLES_RFFT_Q15_32 bool "rfft q15 32" config CMSIS_DSP_TABLES_RFFT_Q15_64 bool "rfft q15 64" config CMSIS_DSP_TABLES_RFFT_Q15_128 bool "rfft q15 128" config CMSIS_DSP_TABLES_RFFT_Q15_256 bool "rfft q15 256" config CMSIS_DSP_TABLES_RFFT_Q15_512 bool "rfft q15 512" config CMSIS_DSP_TABLES_RFFT_Q15_1024 bool "rfft q15 1024" config CMSIS_DSP_TABLES_RFFT_Q15_2048 bool "rfft q15 2048" config CMSIS_DSP_TABLES_RFFT_Q15_4096 bool "rfft q15 4096" config CMSIS_DSP_TABLES_RFFT_Q15_8192 bool "rfft q15 8192" config CMSIS_DSP_TABLES_DCT4_F32_128 bool "dct4 f32 128" config CMSIS_DSP_TABLES_DCT4_F32_512 bool "dct4 f32 512" config CMSIS_DSP_TABLES_DCT4_F32_2048 bool "dct4 f32 2048" config CMSIS_DSP_TABLES_DCT4_F32_8192 bool "dct4 f32 8192" config CMSIS_DSP_TABLES_DCT4_Q31_128 bool "dct4 q31 128" config CMSIS_DSP_TABLES_DCT4_Q31_512 bool "dct4 q31 512" config CMSIS_DSP_TABLES_DCT4_Q31_2048 bool "dct4 q31 2048" config CMSIS_DSP_TABLES_DCT4_Q31_8192 bool "dct4 q31 8192" config CMSIS_DSP_TABLES_DCT4_Q15_128 bool "dct4 q15 128" config CMSIS_DSP_TABLES_DCT4_Q15_512 bool "dct4 q15 512" config CMSIS_DSP_TABLES_DCT4_Q15_2048 bool "dct4 q15 2048" config CMSIS_DSP_TABLES_DCT4_Q15_8192 bool "dct4 q15 8192" endif # CMSIS_DSP_TABLES comment "Instruction Set" # NOTE: These configurations should eventually be derived from the arch ISA and # FP support configurations. config CMSIS_DSP_NEON bool "Neon Instruction Set" default y depends on CPU_CORTEX_A help This option enables the NEON Advanced SIMD instruction set, which is available on most Cortex-A and some Cortex-R processors. # TODO: Activate Helium instruction set once Cortex-M55 support is in place. # config CMSIS_DSP_HELIUM # bool "Helium Instruction Set" # depends on CPU_CORTEX_M # select CMSIS_DSP_MVEF # select CMSIS_DSP_MVEI # help # This option enables the Helium M-Profile Vector Extension (MVE). # # Note that selecting this option implies the support for both MVE # floating-point and integer instruction sets. # config CMSIS_DSP_MVEF # bool "MVE-F Instructions" # depends on CPU_CORTEX_M # help # This option enables the ARMv8.1-M M-Profile Vector Extension (MVE) # floating-point instruction set. # config CMSIS_DSP_MVEI # bool "MVE-I Instructions" # depends on CPU_CORTEX_M # help # This option enables the ARMv8.1-M M-Profile Vector Extension (MVE) # integer instruction set. comment "Features" config CMSIS_DSP_LOOPUNROLL bool "Loop Unrolling" help This option enables manual loop unrolling in the DSP functions. config CMSIS_DSP_ROUNDING bool "Rounding" help This option enables rounding on the support functions. config CMSIS_DSP_MATRIXCHECK bool "Matrix Check" help This option enables validation of the input and output sizes of matrices. config CMSIS_DSP_AUTOVECTORIZE bool "Auto Vectorize" help This option prefers autovectorizable code to one using C intrinsics in the DSP functions.