Commit Graph

200 Commits (main)

Author SHA1 Message Date
Christophe Favergeon 1d9e38adca Reworked FFT initializations to make the work of the linker easier.
New FFT initialization functions to make it easier for the linker
to optimize the code size when the library is used as a static
library and can't be rebuilt.

Compilation directives for code size optimizations have been removed.
3 years ago
tfosdike a5048f6ab9
Fixed compiler warnings (#95)
Fixed shadowed variables in assembly macros for Cortex-M convolution
Fixed type promotions in _f64 matrix and transform code

Co-authored-by: Timothy Fosdike <tfosdike@redarc.com.au>
3 years ago
Christophe Favergeon 2458ff8670 Correction of issue #93
Const qualifier in interpolation functions
3 years ago
Christophe Favergeon 0fe2214dc7 Missing header in arm_math.h added
THe new dsp/window_functions.h header was missing.
(But it could be used and included separately from arm_math.h)
3 years ago
Christophe Favergeon 18d3504390 Corrected issue #85
Add compilation tests for MIN/MAX macro definitions.
3 years ago
Christophe Favergeon 82559adce2 Added DTW to the PythonWrapper API 3 years ago
Christophe Favergeon b46a2f86b5 First version of the dynamic time warping algorithm.
F32 only. Some windows suppported.
3 years ago
SaiCharan bd4b47a205
fix: typo from algorthms to algorithms (#84) 3 years ago
Christophe Favergeon f757add3bb Added window functions for use with Fourier transforms.
Regular functions for use with tone detection and noise estimation.
Flat-top windows for estimation of tone amplitudes.

Parameters of the windows are given.

Kaiser window missing (Bessel function not available in the library).

No f16 implementation since it is not accurate enough. It is better
to compute a f32 window and convert to f16 after.
3 years ago
Christophe Favergeon 258f31c5e6 Corrected issue #72
arm_sqrt_f32 optimizations for clang and gcc.
3 years ago
Silfurion 633ab5913e Add Conversion functions from and to 64 bit floating point
Cleaned f64 conversion functions.
3 years ago
KoenVda88 60e1e88f45
doc(args): make sure function declarations have the same arguments names (#67)
Co-authored-by: Koen <koen@gsf.engineering>
3 years ago
Christophe Favergeon 68ddaa577d Corrected issue #62
MVE tables were not const qualified.
3 years ago
Christophe Favergeon bfda7097d5 Improvements to the compute graph documentation.
Some compute graph nodes have been moved out of the GenericNodes.h header
into their specific headers.
3 years ago
Silfurion 3d5fb83720 Add some f64 Neon optimisations for aarch64
Some documentation improvements.
3 years ago
Silfurion 5630232a47 Remove q7 , q15 and q31 version of accumulate function 3 years ago
Silfurion d2b8728b22 Update Output type to avoid saturation 3 years ago
Silfurion 31807c257c update for pull request 3 years ago
Silfurion bfb2b13b80 Update for pull request 3 years ago
Silfurion 9a1a7d284f Prepare for merge 3 years ago
Christophe Favergeon 5721f94b28 Improved documentation
Corrected issues #7 and #8
Removed duplicates
Started using Mathjax
3 years ago
Christophe Favergeon 91f599c052 Householder and QR decomposition for matrices (f64,f32,f16).
(not yet optimized)
3 years ago
Vladimir Marchenko 155759586a Updated Documentation to Doxygen 1.9.2 and new layout. 3 years ago
Christophe Favergeon 3f95fbca89 New repository for CMSIS-DSP 4 years ago
Christophe Favergeon cb0960577d CMSIS-DSP: Improvements to matrix inversion.
Partial pivoting added for better numerical stability.
4 years ago
Christophe Favergeon 99bcacd027 CMSIS-DSP: Some improvements for sign conversion warnings.
Added new tests for function in utils.h
4 years ago
Christophe Favergeon 29cb70ce55 CMSIS-DSP: scalar atan2 q31, q15, f32 and f16
Correction to q15 and q31 division when denominator is max
negative value.
4 years ago
Johan Bengtsson 065e8351c3 DSP: Remove undefined behavior in post-increment/decrement read (#1443)
According to the C standard q15_t * and const q15_t * are not compatible
types which, among other things, imply that an object of type const
q15_t * can't be modified by writing to a q15_t ** or vice versa.
Programs doing this are undefined.

Because of this rule all programs using the functions read_q15x2_ia,
read_q15x2_da, read_q7x4_ia, or read_q7x4_da for reading data from an
array of constant elements will be undefined. To solve this it is not
enough to change the type of the function since this will give problems
when reading data from an array of non-const elements. To get a defined
solution I needed to switch from functions to macros to allow the
increment to be done in the original type of the pointer.
4 years ago
Christophe Favergeon 8dcdb350a4 CMSIS-DSP: Mean square error for q15, q31, f16, f32, f64.
Reworked q7 to have a bit more accuracy.
4 years ago
Christophe Favergeon 47a987217f CMSIS-DSP: Mean square error q7 4 years ago
JbR e5a6e60f5b Fixing compilation issue with Visual Studio 2022 in Arm64EC (#1450) 4 years ago
Christophe Favergeon fb90fab3e7 CMSIS-DSP: Added missing functions to the Python wrapper
Changed the version of Jinja2 required by the wrapper to avoid warnings
when using google colab.
4 years ago
Markus Klein 08755ab07d This fixed some GCC warnings with -WConversion enabled: (#1427) 4 years ago
Christophe Favergeon 02b12fd1cf CMSIS-DSP: New min/max functions.
Added arm_(max|min)_no_idx_(q7|q15|q31|f16|f32|f64).c
Added arm_abs(max|min)_no_idx_(q7|q15|q31|f16|f32|f64).c

For both functions : Helium and scalar versions.
4 years ago
Christophe Favergeon e45dc7c22e CMSIS-DSP: Improvements to pull request #1363
To avoid having to change the API in an incompatible way,
a arm_mat_mult_opt_q31 was introduced and is providing a faster implementation
to use with Helium (but requiring more storage for intermediate results).

Some improvements to tests for matrix functions added.
4 years ago
Christophe Favergeon 02d4e88031 CMSIS-DSP: Reworked sqrt q15 and q31 4 years ago
Christophe Favergeon 96c5596875 CMSIS-DSP: Add support to build with XCode 4 years ago
JbR 8353800b3f Ignore old c cast style not supported by apple cc (#1334) 4 years ago
Christophe Favergeon 46231a68e5 CMSIS-DSP: Correcting issue #1285
representation of float 16 values in generated tables.
4 years ago
Christophe Favergeon b4822217d0 CMSIS-DSP: Fixes to build with an additional compiler 4 years ago
JbR 606f49743b Adding support for Apple Compiler 4 years ago
TTornblom 225ab53a54 DSP: Eliminate some non-standard C code
Cleaned out some non-standard C code, typeof() and using
"const" variables as constants.

Also added some initial IAR support.

Signed-off-by: TTornblom <thomas.tornblom@iar.com>
4 years ago
TTornblom 9b6b4fff80 DSP: Eliminate some non-standard C code
Cleaned out some non-standard C code, typeof() and using
"const" variables as constants.

Also added some initial IAR support.

Signed-off-by: TTornblom <thomas.tornblom@iar.com>
4 years ago
Christophe Favergeon 8092cc61f9 CMSIS-DSP: New MFCC Q15 and Q31
arm_cmplx_mag_q15 reworked to be more accurate but less efficient.

New function arm_cmplx_mag_fast_q15 introduced to retain previous
(less accurate) but faster behavior.

Improvement to Python wrapper to support the new functions.
4 years ago
JbR 7a4579d9a9 Implement some f64 methods 4 years ago
Christophe Favergeon 9674e00294 CMSIS-DSP: log f16 update 4 years ago
Christophe Favergeon 8fb55a90b7 CMSIS-DSP: Added MFCC F16
This first version is not very accurate due to problems with the log.
A coming commit will improve the log accuracy.

Issues #1305 and #1304 also corrected as part of this commit.
4 years ago
Christophe Favergeon 3d264cfabb CMSIS-DSP: MFCC F32
MFCC F32 implementation
MFCC F32 tests
MFCC F32 in Python wrapper
Python wrapper structure updated to support submodule like
cmsisdsp.mfcc and cmsisdsp.fixedpoint
PythonWrapper tests updated to use the new fixedpoint
cmsisdsp.mfcc is used to generate the mel filter, dct and window coefficients.
4 years ago
Christophe Favergeon f1e33b7a7f CMSIS-DSP: Correcting issue 1293
Missing const qualifier in linear interpolation
4 years ago
Christophe Favergeon 840a233053 CMSIS-DSP: Scalar version for arm_vlog_q31
Added scalar version of arm_vlog_q15

Updated PythonWrapper with vlog q31 and q15
Corrected small compilation issue with AC5 compiler.
4 years ago