v2.5.0
FINUFFT 2.5.0
Major update including:
Math changes for the CPU code:
- major improvement of spreading (gridding) kernel, switching from ES to PSWF
- better kernel parameter logic that much more closely than before matches user tolerance
- on-the-fly polynomial coefficient generation allowing SIMD-vectorized Horner kernel evaluation at
- arbitrary upsampling factor
New GPU method 3 for type 1 NUFFTs (spread) with higher performance than method 2 especially at high accuracy
Other improvements / features / changes (CPU unless stated):
- new "execute_adjoint" added to the API, so that only one plan needed for type 1/2 pairs
- work array allocation moved from plan/setpts to execute stage
- major CMake/CI build improvement, including MATLAB/CUDA, LTO support
- improved tolerance-sweeping error tests as part of CI, better performance tests
- moving finufft_spread_opts.h from public to private
- finufft_opts adds spread_kerformula, deprecates kerevalmeth and kerpad
- GPU performance improvements via binsize and np heuristics
- various minor bugfixes and tidying (GPU and CPU)
- See CHANGELOG and GH Discussion posts 798 and 809 for details.