Skip to content

What's new in KFR 5

  • New tensor<T, dims> class for multidimensional data (like nparray)
  • All builtin 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