What's new in KFR 6¶
- DFT performance has been improved up to 40% (backported to KFR 5.2.0 branch)
- C API for non x86 architectures
- DSP refactoring with easier initialization
- Multiarchitecture for resampling, FIR and IIR filters
matrix_transpose: optimized matrix transpose (square/non-square, inplace/out-of-place, real/complex, scalar/vectors)- CMake config file generation (
find_package(KFR CONFIG)support, see installation) .npyformat support (reading/writing, v1/v2, c/fortran order, real/complex, bigendian/littleendian)- Multidimensional DFT: real/complex
inline_vector- Windows arm64 support
- Emscripten (wasm/wasm64) support
Other changes¶
- CMake minimum version is 3.12
- Multidimensional reference DFT
- Easier cross compilation to ARM64 on x86_64 macOS
- Automated tests using GitHub Actions (previously Azure Pipelines)
- GCC 7 and 8: emulate missing avx-512 instrinsics
read_groupandwrite_group- [❗breaking change]
reshape_may_copyandflatten_may_copyintensor<>allows copying by default shape<>::transposefunctiontensor<>::transposefunctionconvert_endianess- DFT, DSP and IO sources have been moved to
src/directory - Multiarchitecture is enabled by default
KFR_DFT_NO_NPo2has been removed (assumed always enabled)- Tests refactoring
- Some tests moved to
tests/internal/ - [❗breaking change] Scalars are now passed by value in expressions (this fixes dangling references in some cases)
- Expression functions should return
expression_make_functioninstead ofexpression_function KFR_WITH_CLANGKFR_VERSIONCMake variable- Functions to get module versions (
library_version_dft,library_version_dspetc) - Exceptions are no longer enforced in MSVC
kfr::complexremoved (usestd::complexinstead).KFR_STD_COMPLEXcmake variable removed toostrides_for_shapefor fortran order- AARCH and ARM emulation refactoring (dynamic libraries are now supported)
call_with_tempmaximum_dimsis now 16 (was 8)to_fmt/from_fmtsupports inplaceshaperefactoring:rotate_left,rotate_right,remove_back,remove_front- temp argument can be
nullptrfor DFT (temporary buffer will be allocated on stack or heap) dft_planand similar classes have now default and move constructors-DCMAKE_POSITION_INDEPENDENT_CODE=ONis required for building C APIci/run.shcan now build in a directory outside source tree- [❗breaking change]
graphics/color.hppandgraphics/geometry.hpphave been removed - Simpler
CMT_CVALmacro /Zc:lambdais now required for building KFR in MSVCprintlnforstring_view- MSVC internal compiler error fixed
- Complex vector operators fixed
For KFR5 changelog see What's new in KFR 5