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>
Corrected issue with RFFT APIs
Added some features to compute graph
Improved documentation related to RFFT
Changed how Python wrapper is built (to prepare fro future
evolution).
Corrected issues with arm_fir_decimate and arm_fir_interpolate
Corrected issues with real FFTs in the wrapper
Added a customization option for the FIFO class in compute graph.
Added Python tests for the corrected functions.
Table configuration issue with RFFT Fast F32 and F16
The define use to include or exclude the bit reverse table is different
for scalar and MVE versions. The test was not covering both cases.
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.
The IAR compiler appears to provide more warnings about type
mismatches than the other compilers. This cleans a lot of them up.
Signed-off-by: TTornblom <thomas.tornblom@iar.com>
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>
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.
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.
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.
Solve most of f16 issues. But there are still some remaining
build issues with gcc10q4.
2 functions are reverting to scalar version when build with gcc on M55.
(Since Helium versions of those functions are not building).