The highlights of this release are as follows:
New Features
- FFTW3-compatible API: C and Fortran FFTW3 application interfaces are fully supported, allowing existing FFTW3 applications to switch to AOCL-FFTZ with no source code changes.
- New solver types:
- Split Radix solver (single-threaded) for powers-of-two transform sizes.
- Complex Buffered solver for in-place transforms of complex inputs.
- Batched Cooley-Tukey Direct solver for solving single-level CT problems efficiently.
- Real-to-Complex (R2C) and Complex-to-Real (C2R) N-dimensional solvers.
- Real SizeOne solver to solve unit inputs.
- New higher radix complex kernels – Radix-20 and Radix-48 introduced for optimally solving the respective composite transform sizes.
- Build system integration: pkg-config and CMake metadata files provided for straightforward integration into projects and applications.
Performance Improvements
- Improved Radix-12 kernel with FMA instructions and reduced multiplications.
- Improved Radix-4 twiddle kernel by avoiding redundant loads.
Bug Fixes
- Fixed a race condition in multi-threaded batch FFT execution that could silently suppress failure executions leading to incorrect results.
- Fixed use-after-free memory issue in the
aoclfftz_execute_ioAPI. - Fixed various issues in GTest, Fuzztest, and Testbench including GCC 15 build compatibility fix.