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