modules: cmsis-dsp: add cmsis-dsp module

Use CMSIS-DSP from its new realm. This also changes change how you
initialize FFT tables as well to use arm_cfft_init_64_f32 if you
know the FFT size in advance rather than the generic initialization
arm_cfft_init_f32.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
This commit is contained in:
Ryan McClelland 2023-04-15 17:26:09 -07:00 committed by Carles Cufí
parent c1ad82e5fb
commit 104ea2ccca
24 changed files with 1026 additions and 831 deletions

View file

@ -422,8 +422,9 @@ CMSIS-DSP integration:
- stephanosio
collaborators:
- galak
- XenuIsWatching
files:
- modules/cmsis/Kconfig.cmsis_dsp
- modules/cmsis_dsp/
- tests/benchmarks/cmsis_dsp/
- tests/lib/cmsis_dsp/
labels:
@ -2940,11 +2941,21 @@ West:
- povergoing
files:
- modules/cmsis/Kconfig
- modules/cmsis/Kconfig.cmsis_dsp
- modules/cmsis/Kconfig.cmsis_nn
labels:
- "area: ARM"
"West project: cmsis-dsp":
status: maintained
maintainers:
- XenuIsWatching
collaborators:
- stephanosio
files:
- modules/cmsis_dsp/
labels:
- "area: ARM"
"West project: edtt":
status: maintained
maintainers:

View file

@ -20,14 +20,6 @@ config HAS_CMSIS_CORE_M
endif
menuconfig CMSIS_DSP
bool "CMSIS-DSP Library Support"
select REQUIRES_FULL_LIBC if !ARCH_POSIX
if CMSIS_DSP
source "modules/cmsis/Kconfig.cmsis_dsp"
endif
menuconfig CMSIS_NN
bool "CMSIS-NN Library Support"
depends on CPU_CORTEX_M

View file

@ -1,803 +0,0 @@
# Copyright (c) 2020 Stephanos Ioannidis <root@stephanos.io>
# 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:
* Elementwise Clipping
* Vector Absolute Value
* 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
depends on CPU_CORTEX || ARCH_POSIX
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"
depends on CPU_CORTEX || ARCH_POSIX
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
depends on CPU_CORTEX || ARCH_POSIX
help
This option enables the Fast Math Functions, which support the
following operations:
* Fixed-Point Division
* Sine
* Cosine
* Square Root
config CMSIS_DSP_FILTERING
bool "Filtering Functions"
imply CMSIS_DSP_FASTMATH
imply CMSIS_DSP_SUPPORT
depends on CPU_CORTEX || ARCH_POSIX
help
This option enables the Filtering Functions, which support the
following operations:
* Convolution
* Partial Convolution
* Correlation
* Levinson-Durbin Algorithm
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_INTERPOLATION
bool "Interpolation Functions"
depends on CPU_CORTEX || ARCH_POSIX
help
This option enables the Interpolation Functions, which support the
following operations:
* Bilinear Interpolation
* Linear Interpolation
* Cubic Spline Interpolation
config CMSIS_DSP_MATRIX
bool "Matrix Functions"
depends on CPU_CORTEX || ARCH_POSIX
help
This option enables the Matrix Functions, which support the following
operations:
* Matrix Initialization
* Matrix Addition
* Matrix Subtraction
* Matrix Multiplication
* Complex Matrix Multiplication
* Matrix Vector Multiplication
* Matrix Inverse
* Matrix Scale
* Matrix Transpose
* Complex Matrix Transpose
* Cholesky and LDLT Decompositions
config CMSIS_DSP_QUATERNIONMATH
bool "Quaternion Math Functions"
depends on CPU_CORTEX || ARCH_POSIX
help
This option enables the Quaternion Math Functions, which support the
following operations:
* Quaternion Conversions
* Quaternion Conjugate
* Quaternion Inverse
* Quaternion Norm
* Quaternion Normalization
* Quaternion Product
config CMSIS_DSP_STATISTICS
bool "Statistics Functions"
imply CMSIS_DSP_BASICMATH
imply CMSIS_DSP_FASTMATH
depends on CPU_CORTEX || ARCH_POSIX
help
This option enables the Statistics Functions, which support the
following operations:
* Minimum
* Absolute Minimum
* Maximum
* Absolute Maximum
* Mean
* Root Mean Square (RMS)
* Variance
* Standard Deviation
* Power
* Entropy
* Kullback-Leibler Divergence
* LogSumExp (LSE)
config CMSIS_DSP_SUPPORT
bool "Support Functions"
depends on CPU_CORTEX || ARCH_POSIX
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 16-bit Floating-Point Value Conversion
* Vector 32-bit Floating-Point Value Conversion
* Vector Copy
* Vector Fill
* Vector Sorting
* Weighted Sum
* Barycenter
config CMSIS_DSP_TRANSFORM
bool "Transform Functions"
select CMSIS_DSP_TABLES
imply CMSIS_DSP_TABLES_ALL_FFT
depends on CPU_CORTEX || ARCH_POSIX
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"
select CMSIS_DSP_TABLES
depends on CPU_CORTEX || ARCH_POSIX
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
depends on CPU_CORTEX || ARCH_POSIX
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
depends on CPU_CORTEX || ARCH_POSIX
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"
depends on CPU_CORTEX || ARCH_POSIX
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_F16_16
select CMSIS_DSP_TABLES_CFFT_F16_32
select CMSIS_DSP_TABLES_CFFT_F16_64
select CMSIS_DSP_TABLES_CFFT_F16_128
select CMSIS_DSP_TABLES_CFFT_F16_256
select CMSIS_DSP_TABLES_CFFT_F16_512
select CMSIS_DSP_TABLES_CFFT_F16_1024
select CMSIS_DSP_TABLES_CFFT_F16_2048
select CMSIS_DSP_TABLES_CFFT_F16_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_FAST_F16_32
select CMSIS_DSP_TABLES_RFFT_FAST_F16_64
select CMSIS_DSP_TABLES_RFFT_FAST_F16_128
select CMSIS_DSP_TABLES_RFFT_FAST_F16_256
select CMSIS_DSP_TABLES_RFFT_FAST_F16_512
select CMSIS_DSP_TABLES_RFFT_FAST_F16_1024
select CMSIS_DSP_TABLES_RFFT_FAST_F16_2048
select CMSIS_DSP_TABLES_RFFT_FAST_F16_4096
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_F16_128
select CMSIS_DSP_TABLES_RFFT_F16_512
select CMSIS_DSP_TABLES_RFFT_F16_2048
select CMSIS_DSP_TABLES_RFFT_F16_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_F16_16
bool "cfft f16 16"
config CMSIS_DSP_TABLES_CFFT_F16_32
bool "cfft f16 32"
config CMSIS_DSP_TABLES_CFFT_F16_64
bool "cfft f16 64"
config CMSIS_DSP_TABLES_CFFT_F16_128
bool "cfft f16 128"
config CMSIS_DSP_TABLES_CFFT_F16_256
bool "cfft f16 256"
config CMSIS_DSP_TABLES_CFFT_F16_512
bool "cfft f16 512"
config CMSIS_DSP_TABLES_CFFT_F16_1024
bool "cfft f16 1024"
config CMSIS_DSP_TABLES_CFFT_F16_2048
bool "cfft f16 2048"
config CMSIS_DSP_TABLES_CFFT_F16_4096
bool "cfft f16 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_CFFT_RADIX4_Q31
bool "cfft radix4 q31 (deprecated)"
config CMSIS_DSP_TABLES_CFFT_RADIX4_Q15
bool "cfft radix4 q15 (deprecated)"
config CMSIS_DSP_TABLES_CFFT_RADIX2_Q31
bool "cfft radix2 q31 (deprecated)"
config CMSIS_DSP_TABLES_CFFT_RADIX2_Q15
bool "cfft radix2 q15 (deprecated)"
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_FAST_F16_32
bool "rfft fast f16 32"
config CMSIS_DSP_TABLES_RFFT_FAST_F16_64
bool "rfft fast f16 64"
config CMSIS_DSP_TABLES_RFFT_FAST_F16_128
bool "rfft fast f16 128"
config CMSIS_DSP_TABLES_RFFT_FAST_F16_256
bool "rfft fast f16 256"
config CMSIS_DSP_TABLES_RFFT_FAST_F16_512
bool "rfft fast f16 512"
config CMSIS_DSP_TABLES_RFFT_FAST_F16_1024
bool "rfft fast f16 1024"
config CMSIS_DSP_TABLES_RFFT_FAST_F16_2048
bool "rfft fast f16 2048"
config CMSIS_DSP_TABLES_RFFT_FAST_F16_4096
bool "rfft fast f16 4096"
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_F16_128
bool "rfft f16 128"
config CMSIS_DSP_TABLES_RFFT_F16_512
bool "rfft f16 512"
config CMSIS_DSP_TABLES_RFFT_F16_2048
bool "rfft f16 2048"
config CMSIS_DSP_TABLES_RFFT_F16_8192
bool "rfft f16 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.
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.
config CMSIS_DSP_FLOAT16
bool "Half-Precision (16-bit Float) Support"
default y
depends on FP16
help
This option enables the half-precision (16-bit) floating-point
operations support.

View file

@ -0,0 +1,931 @@
# Copyright (c) 2023 Meta Platforms
# SPDX-License-Identifier: Apache-2.0
if(CONFIG_CMSIS_DSP)
set(CMSIS_DSP_DIR ${ZEPHYR_CURRENT_MODULE_DIR})
set(cmsis_glue_path ${ZEPHYR_CMSIS_MODULE_DIR})
zephyr_library()
zephyr_library_compile_options(-Ofast)
zephyr_include_directories(
${CMSIS_DSP_DIR}/Include
)
zephyr_library_include_directories(
${CMSIS_DSP_DIR}/PrivateInclude
${cmsis_glue_path}/CMSIS/Core/Include
)
# Global Feature Definitions
zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_NEON ARM_MATH_NEON)
zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_NEON_EXPERIMENTAL ARM_MATH_NEON_EXPERIMENTAL)
zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_LOOPUNROLL ARM_MATH_LOOPUNROLL)
zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_ROUNDING ARM_MATH_ROUNDING)
zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_MATRIXCHECK ARM_MATH_MATRIX_CHECK)
zephyr_library_compile_definitions_ifndef(CONFIG_CMSIS_DSP_FLOAT16 DISABLEFLOAT16)
zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_AUTOVECTORIZE ARM_MATH_AUTOVECTORIZE)
# Helium is automatically enabled by CMSIS-DSP if the processor supports it
zephyr_library_compile_definitions_ifdef(CONFIG_CMSIS_DSP_HELIUM_EXPERIMENTAL ARM_MATH_HELIUM_EXPERIMENTAL)
zephyr_compile_definitions_ifndef(CONFIG_ARM __GNUC_PYTHON__)
if (CONFIG_CMSIS_DSP_NEON OR CONFIG_CMSIS_DSP_NEON_EXPERIMENTAL)
zephyr_library_include_directories("${CMSIS_DSP_DIR}/ComputeLibrary/Include")
endif()
if (CONFIG_ARMV8_1_M_MVEI OR CONFIG_ARMV8_1_M_MVEF)
if (CONFIG_CMSIS_DSP_LAX_VECTOR_CONVERSIONS)
zephyr_library_compile_options($<$<STREQUAL:${CMAKE_C_COMPILER_ID},GNU>:-flax-vector-conversions>)
zephyr_library_compile_options($<$<STREQUAL:${CMAKE_C_COMPILER_ID},ARMClang>:-flax-vector-conversions=integer>)
else()
zephyr_library_compile_options($<$<STREQUAL:${CMAKE_C_COMPILER_ID},GNU>:-fno-lax-vector-conversions>)
zephyr_library_compile_options($<$<STREQUAL:${CMAKE_C_COMPILER_ID},ARMClang>:-flax-vector-conversions=none>)
endif()
endif()
zephyr_library_compile_options(-Ofast)
zephyr_compile_definitions_ifndef(CONFIG_ARM __GNUC_PYTHON__)
# BasicMathFunctions
set(SRCF64 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_f64.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_f64.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_f64.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_f64.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_f64.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_f64.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_f64.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_f64.c
)
set(SRCF32 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_f32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_f32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_f32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_f32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_f32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_f32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_f32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_f32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_f32.c
)
set(SRCF16 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_f16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_f16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_f16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_f16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_f16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_f16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_f16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_f16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_f16.c
)
set(SRCQ31 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_q31.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_q31.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_q31.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_q31.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_q31.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_q31.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_q31.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_q31.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_shift_q31.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_q31.c
)
set(SRCQ15 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_q15.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_q15.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_q15.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_q15.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_q15.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_q15.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_q15.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_q15.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_shift_q15.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_q15.c
)
set(SRCQ7 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_abs_q7.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_add_q7.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_clip_q7.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_dot_prod_q7.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_mult_q7.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_negate_q7.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_offset_q7.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_scale_q7.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_shift_q7.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_sub_q7.c
)
set(SRCU32 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_and_u32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_not_u32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_or_u32.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_xor_u32.c
)
set(SRCU16 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_and_u16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_not_u16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_or_u16.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_xor_u16.c
)
set(SRCU8 ${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_and_u8.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_or_u8.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_not_u8.c
${CMSIS_DSP_DIR}/Source/BasicMathFunctions/arm_xor_u8.c)
zephyr_library_sources(${SRCF64})
zephyr_library_sources(${SRCF32})
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${SRCF16})
endif()
zephyr_library_sources(${SRCQ31})
zephyr_library_sources(${SRCQ15})
zephyr_library_sources(${SRCQ7})
zephyr_library_sources(${SRCU32})
zephyr_library_sources(${SRCU16})
zephyr_library_sources(${SRCU8})
# BayesFunctions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/BayesFunctions/arm_gaussian_naive_bayes_predict_f32.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/BayesFunctions/arm_gaussian_naive_bayes_predict_f16.c)
endif()
# Common Tables
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/CommonTables/arm_common_tables.c
${CMSIS_DSP_DIR}/Source/CommonTables/arm_common_tables_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/CommonTables/arm_const_structs.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/CommonTables/arm_const_structs_f16.c)
if (CONFIG_CMSIS_DSP_NEON OR CONFIG_CMSIS_DSP_NEON_EXPERIMENTAL)
zephyr_library_sources("${CMSIS_DSP_DIR}/ComputeLibrary/Source/arm_cl_tables.c")
endif()
if (CONFIG_ARMV8_1_M_MVEI OR CONFIG_ARMV8_1_M_MVEF)
zephyr_library_sources("${CMSIS_DSP_DIR}/Source/CommonTables/arm_mve_tables.c")
zephyr_library_sources("${CMSIS_DSP_DIR}/Source/CommonTables/arm_mve_tables_f16.c")
endif()
if (WRAPPER)
target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_BITREV_1024)
target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_F32_4096)
target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_Q31_4096)
target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_Q15_4096)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
target_compile_definitions(CMSISDSP PUBLIC ARM_TABLE_TWIDDLECOEF_F16_4096)
endif()
endif()
# ComplexMathFunctions
# MVE code is using a table for computing the fast sqrt arm_cmplx_mag_q31
# There is the possibility of not compiling this function and not including
# the table.
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_fast_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_conj_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ComplexMathFunctions/arm_cmplx_mult_real_f16.c)
endif()
# Controller Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_reset_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_reset_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_pid_reset_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_sin_cos_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/ControllerFunctions/arm_sin_cos_q31.c)
# Distance Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_boolean_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_braycurtis_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_canberra_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_chebyshev_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_chebyshev_distance_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cityblock_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cityblock_distance_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_correlation_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cosine_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cosine_distance_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_dice_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_euclidean_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_euclidean_distance_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_hamming_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_jaccard_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_kulsinski_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_minkowski_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_rogerstanimoto_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_russellrao_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_sokalmichener_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_sokalsneath_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_yule_distance.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_dtw_distance_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_dtw_path_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_dtw_init_window_q7.c)
zephyr_library_include_directories("${CMSIS_DSP_DIR}/Source/DistanceFunctions")
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_braycurtis_distance_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_canberra_distance_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_chebyshev_distance_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cityblock_distance_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_correlation_distance_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_cosine_distance_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_euclidean_distance_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_jensenshannon_distance_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/DistanceFunctions/arm_minkowski_distance_f16.c)
endif()
# Fast Math Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_cos_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_cos_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_cos_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sin_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sin_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sin_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sqrt_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_sqrt_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vexp_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vexp_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_q15.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vlog_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vexp_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_vinverse_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_atan2_f16.c)
endif()
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_divide_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_divide_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_atan2_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_atan2_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FastMathFunctions/arm_atan2_q15.c)
# Filtering Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_fast_opt_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_fast_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_fast_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_opt_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_opt_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_fast_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_fast_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_opt_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_opt_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_partial_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_conv_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_fast_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_fast_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_opt_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_opt_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_decimate_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_fast_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_fast_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_interpolate_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_lattice_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_init_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_sparse_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_iir_lattice_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_norm_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_lms_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_levinson_durbin_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_levinson_durbin_q31.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_fir_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_correlate_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/FilteringFunctions/arm_levinson_durbin_f16.c)
endif()
# Interpolation Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_spline_interp_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_spline_interp_init_f32.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_bilinear_interp_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/InterpolationFunctions/arm_linear_interp_f16.c)
endif()
# Matrix Functions
set(SRCF64 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cholesky_f64.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_inverse_f64.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_ldlt_f64.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_f64.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_lower_triangular_f64.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_upper_triangular_f64.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_f64.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_f64.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_qr_f64.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_householder_f64.c
)
set(SRCF32 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_add_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cholesky_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_trans_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_init_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_inverse_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_ldlt_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_scale_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_lower_triangular_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_upper_triangular_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_qr_f32.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_householder_f32.c
)
set(SRCQ31 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_add_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_trans_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_init_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_fast_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_opt_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_scale_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_q31.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_q31.c
)
set(SRCQ15 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_add_q15.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_trans_q15.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_init_q15.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_fast_q15.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_q15.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_scale_q15.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_q15.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_q15.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_q15.c
)
set(SRCQ7 ${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_q7.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_q7.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_q7.c
)
zephyr_library_sources(${SRCF64})
zephyr_library_sources(${SRCF32})
zephyr_library_sources(${SRCQ31})
zephyr_library_sources(${SRCQ15})
zephyr_library_sources(${SRCQ7})
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_add_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cholesky_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_mult_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_cmplx_trans_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_init_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_inverse_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_mult_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_scale_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_lower_triangular_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_solve_upper_triangular_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_sub_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_trans_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_vec_mult_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_mat_qr_f16.c
${CMSIS_DSP_DIR}/Source/MatrixFunctions/arm_householder_f16.c
)
endif()
# Quaternion Math Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_norm_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_inverse_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_conjugate_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_normalize_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_product_single_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion_product_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_quaternion2rotation_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/QuaternionMathFunctions/arm_rotation2quaternion_f32.c)
# Statistics Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_entropy_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_entropy_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_kullback_leibler_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_kullback_leibler_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_logsumexp_dot_prod_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_logsumexp_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_rms_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_rms_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_rms_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_q7.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mse_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_accumulate_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_accumulate_f32.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_mean_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_power_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_rms_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_std_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_var_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_entropy_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_kullback_leibler_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_logsumexp_dot_prod_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_logsumexp_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_max_no_idx_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_min_no_idx_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmax_no_idx_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_absmin_no_idx_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/StatisticsFunctions/arm_accumulate_f16.c)
endif()
# Support Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_barycenter_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_bitonic_sort_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_bubble_sort_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_f64.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_q15.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_q31.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_q7.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_float.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_q15.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_f64.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_q15.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_q31.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_q7.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_float.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_q31.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_q15.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_q7.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_f64.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_q15.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_q31.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_q7.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_heap_sort_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_insertion_sort_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_merge_sort_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_merge_sort_init_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_f64.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_float.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_q31.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_q7.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q31_to_f64.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q31_to_float.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q31_to_q15.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q31_to_q7.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q7_to_f64.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q7_to_float.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q7_to_q15.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q7_to_q31.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_quick_sort_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_selection_sort_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_sort_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_sort_init_f32.c
${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_weighted_sum_f32.c
)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_copy_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_fill_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_q15_to_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_float_to_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_float.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_weighted_sum_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_barycenter_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f16_to_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SupportFunctions/arm_f64_to_f16.c)
endif()
# SVM Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_linear_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_rbf_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_linear_predict_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_rbf_predict_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_polynomial_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_sigmoid_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_polynomial_predict_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_sigmoid_predict_f32.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_linear_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_rbf_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_linear_predict_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_rbf_predict_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_polynomial_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_sigmoid_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_polynomial_predict_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/SVMFunctions/arm_svm_sigmoid_predict_f16.c)
endif()
# Transform Functions
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_bitreversal.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_bitreversal2.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_bitreversal_f16.c)
endif()
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix8_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f32.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f16.c)
endif()
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f16.c)
endif()
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_dct4_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix8_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_f64.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_init_f64.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_fast_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix8_f16.c)
endif()
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_rfft_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_q31.c)
if (WRAPPER)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_init_q31.c)
endif()
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix4_init_q31.c)
# For scipy or wrappers or benchmarks
if (WRAPPER)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_init_f32.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_cfft_radix2_init_f16.c)
endif()
endif()
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_init_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_f32.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_init_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_q31.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_init_q15.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_q15.c)
if ((NOT ARMAC5) AND (NOT DISABLEFLOAT16))
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_init_f16.c)
zephyr_library_sources(${CMSIS_DSP_DIR}/Source/TransformFunctions/arm_mfcc_f16.c)
endif()
# Window Functions
set(SRCF64 ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_welch_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_bartlett_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hamming_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hanning_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3a_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3b_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4a_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_blackman_harris_92db_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4b_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4c_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft90d_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft95_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft116d_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft144d_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft169d_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft196d_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft223d_f64.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft248d_f64.c
)
set(SRCF32 ${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_welch_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_bartlett_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hamming_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hanning_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3a_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall3b_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4a_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_blackman_harris_92db_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4b_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_nuttall4c_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft90d_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft95_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft116d_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft144d_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft169d_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft196d_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft223d_f32.c
${CMSIS_DSP_DIR}/Source/WindowFunctions/arm_hft248d_f32.c
)
zephyr_library_sources(${SRCF64})
zephyr_library_sources(${SRCF32})
endif()

79
modules/cmsis_dsp/Kconfig Normal file
View file

@ -0,0 +1,79 @@
# Copyright (c) 2023 Meta Platforms
# SPDX-License-Identifier: Apache-2.0
config ZEPHYR_CMSIS_DSP_MODULE
bool
menuconfig CMSIS_DSP
bool "CMSIS-DSP Library Support"
help
This option enables the CMSIS-DSP library.
if CMSIS_DSP
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.
config CMSIS_DSP_NEON_EXPERIMENTAL
bool "Neon Instruction Set"
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.
config CMSIS_DSP_HELIUM_EXPERIMENTAL
bool "Helium Instruction Set"
depends on FP_HARDABI && (ARMV8_1_M_MVEI || ARMV8_1_M_MVEF)
help
This option enables the Helium Advanced SIMD instruction set, which is
available on some Cortex-M processors.
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.
config CMSIS_DSP_FLOAT16
bool "Half-Precision (16-bit Float) Support"
default y
depends on FP16
help
This option enables the half-precision (16-bit) floating-point
operations support.
config CMSIS_DSP_LAX_VECTOR_CONVERSIONS
bool "Lax Vector Conversions"
default y
depends on FP_HARDABI && (ARMV8_1_M_MVEI || ARMV8_1_M_MVEF)
help
This option enables lax vector conversions
endif #CMSIS_DSP

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_BASICMATH=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_BAYES=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_COMPLEXMATH=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_DISTANCE=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_FASTMATH=y

View file

@ -2,7 +2,6 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_FILTERING=y
# Test Options
CONFIG_CMSIS_DSP_TEST_FILTERING_BIQUAD=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_FILTERING=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_INTERPOLATION=y

View file

@ -2,7 +2,6 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_MATRIX=y
# Test Options
CONFIG_CMSIS_DSP_TEST_MATRIX_UNARY_Q7=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_MATRIX=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_QUATERNIONMATH=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_STATISTICS=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_SUPPORT=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_SVM=y

View file

@ -2,7 +2,6 @@ CONFIG_ZTEST=y
CONFIG_NEWLIB_LIBC=y
CONFIG_ZTEST_NEW_API=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_TRANSFORM=y
# Test Options
CONFIG_CMSIS_DSP_TEST_TRANSFORM_CQ15=y

View file

@ -2,4 +2,3 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_TRANSFORM=y

View file

@ -3,5 +3,4 @@ CONFIG_ZTEST_NEW_API=y
CONFIG_NEWLIB_LIBC=y
CONFIG_DSP=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_BASICMATH=y
CONFIG_DSP_BACKEND_CMSIS=y

View file

@ -4,5 +4,4 @@ CONFIG_ARCMWDT_LIBC=y
CONFIG_CPLUSPLUS=y
CONFIG_DSP=y
CONFIG_CMSIS_DSP=y
CONFIG_CMSIS_DSP_BASICMATH=y
CONFIG_DSP_BACKEND_ARCMWDT=y

View file

@ -126,6 +126,9 @@ manifest:
path: modules/hal/cmsis
groups:
- hal
- name: cmsis-dsp
revision: ff7b5fd1ea5f094665c090c343ec44e74dc0b193
path: modules/lib/cmsis-dsp
- name: edtt
revision: 64e5105ad82390164fb73fc654be3f73a608209a
path: tools/edtt