Log InCreate An Account
  1. News
  2. »
  3. Developer Info
  4. »
  5. KFR

KFR DSP Library updated to v5.2.0

-
KFR

KFR, a C++ DSP library, has been updated to v5.2.0 with significant performance improvements (up to 40% increase in speed) and new features.

KFR is packed with optimised building blocks for creating highly efficient audio applications and plug-ins and is known for its top FFT performance.

KFR5 contains DFT-related features, convolution, IIR/FIR filtering and filter design, sample rate conversion, loudness computation, window functions, audio formats support, tensor & matrix operations, SIMD-enabled math and statistical functions, fast random number generation and other features. Optimised for all variants of x86 and arm.

New in KFR 5:

  • New tensor<T, dims> class for multidimensional data (like nparray).
  • All built-in expressions support multiple dimensions.
  • Exception support (may be configured to call user-supplied function or std:abort).
  • [changes required] CMake variables now have KFR_ prefix.
  • Template parameter deduction for vec, so vec{1, 2} is the same as vec<int, 2>{1, 2}
  • [changes required] random_state is now architecture-agnostic and defined in kfr namespace.
  • All expression classes have been moved from kfr:CMT_ARCH_NAME:internal to kfr:CMT_ARCH_NAME namespace.
  • Expression_traits<T> introduced to support interpreting any object as kfr expression.
  • [changes required] User-defined expressions should be rewritten to be used in KFR5.
  • Out-of-class assign operators for all input & output expressions.
  • Round.hpp, clamp.hpp, select.hpp, sort.hpp, saturation.hpp, min_max.hpp, logical.hpp, abs.hpp headers have been moved to simd module.
  • State_holder.hpp has been moved to base module.
  • All code related to expressions have been moved to base module.
  • Vec<T, N>:front() and vec<T, N>:front() are now writable.
  • Set_elements functions for output expressions like get_elements for input expressions.
Discussion

Discussion

Discussion: Active

Please log in to join the discussion