Now let me introduce a DSP library which is currently a main part of LSP Project.
This library provides set of functions that perform SIMD-optimized computing on several hardware architectures.
Currently supported set of SIMD extensions:
- i586 architecture (32-bit): SSE, SSE2, SSE3, AVX, AVX2 and FMA3;
- x86_64 architecture (64-bit): SSE, SSE2, SSE3, AVX, AVX2 and FMA3;
- armv7 architecture (32-bit): NEON;
- AArch64 architecture (64-bit): ASIMD.
Current set of functions provided:
- Functions that gather system information and optimize CPU for better computing;
- Cooley-Tukey 1-dimensional FFT algorithms with unpacked complex numbers;
- Cooley-Tukey 1-dimensional FFT algorithms with packed complex numbers;
- Direct convolution algorithm;
- Fast convolution functions that enhance performance of FFT-based convolution algorithms;
- Biquad static filter transform and processing algorithms;
- Biquad dynamic filter transform and processing algorithms;
- Floating-point operations: copying, moving, protection from NaNs and denormals;
- Parallel arithmetics functions on long vectors including fused multiply operations;
- Basic unpacked complex number arithmetics;
- Basic packed complex number arithmetics;
- Some functions that operate on RGB and HSL colors and their conversions;
- Mid/Side matrix functions for converting Stereo channel to Mid/Side and back;
- Functions for searching minimums and maximums;
- Resampling functions based on Lanczos filter;
- Some set of function to work with 3D mathematics.