

It is not enabled by default when Neon is available because performances are dependent on the compiler and target architecture.ĭefine macro ARM_MATH_NEON_EXPERIMENTAL to enable experimental Neon versions of of some DSP functions. By default library builds for little endian targets.ĭefine macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matricesĭefine macro ARM_MATH_ROUNDING for rounding on support functionsĭefine macro ARM_MATH_LOOPUNROLL to enable manual loop unrolling in DSP functionsĭefine macro ARM_MATH_NEON to enable Neon versions of the DSP functions. Core M0, M4, M7, M33, M55, A32 are tested.Įach library project have different preprocessor macros.ĭefine macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. The library is now tested on Fast Models building with cmake.

The library ships with a number of examples which demonstrate how to use the library functions. If you don't want to include everything, you can also rely on headers in Include/dsp folder and use only what you need. The library functions are declared in the public file arm_math.h which is placed in the Include folder. It is strongly advised to compile the library using -Ofast to have the best performances. You don't have to modify your buffers but just ensure that the end of buffer + padding is not outside of a memory region. When using a vectorized version, provide a little bit of padding after the end of a buffer (3 words) because the vectorized code may read a little bit after the end of a buffer. The library is providing vectorized versions of most algorthms for Helium and of most f32 algorithms for Neon. The library has generally separate functions for operating on 8-bit integers, 16-bit integers, 32-bit integer and 32-bit floating-point values.

The library is divided into a number of functions each covering a specific category: This user manual describes the CMSIS DSP software library, a suite of common signal processing functions for use on Cortex-M and Cortex-A processor based devices.
