Kernels
volk_32f_stddev_and_mean_32f_x2: implemented Young and Cramer's algorithm
volk_32fc_accumulator_s32fc: Add new kernel
volk_16ic_x2_dot_prod_16ic_u_avx2: Fix Typo, was _axv2.
Remove _mm256_zeroupper() calls
Enforce consistent function prototypes
32fc_index_max: Improve speed of AVX2 version
conv_k7_r2: Disable broken AVX2 code
improve volk_8i_s32f_convert_32f for ARM NEON
Calculate cos in AVX512F
Calculate sin using AVX512F
Build
Fix python version detection
cmake: Check that 'distutils' is available
c11: Remove pre-C11 preprocessor instructions
pkgsrc: since the volk release tarball only provides the required cpu_features
library as a git submodule that has to be manually cloned, we instead depend on
devel/cpu_features from pkgsrc and patch the cmake files to accept the static
library as an external dependency.
Documentation
Update README to be more verbose and to improve usefulness.
Compilers
AppleClang: Treat AppleClang as Clang.
Paired with the cpu_features introduction, this enables us to use architecture
specific kernels on a broader set of platforms.
CMake
Enable to not install volk_modtool.
Remove "find_package_handle_standard_args" warning.
cpu_features
Use cpu_features v0.6.0 as a private submodule to detect available CPU
features.
Fix incorrect feature detection for newer AVX versions.
Circumvent platform specific feature detection.
Enable more architecture specific kernels on more platforms.
Kernels
Disable slow and broken SSE4.1 kernel in volk_32fc_x2_dot_prod_32fc
Adjust min/max for 32f_s32f_convert_8i kernel
Use INT8_* instead of CHAR_*
The Vector-Optimized Library of Kernel is a library that contains kernels of
hand-written SIMD code for different mathematical operations. Since each SIMD
architecture can be very different and no compiler has yet come along to
handle vectorization properly or highly efficiently, VOLK approaches the
problem differently.
VOLK is a sub-project of GNU Radio.