Acknowledgments¶
FINUFFT was initiated by Jeremy Magland and Alex Barnett at the Center for Computational Mathematics, Flatiron Institute (then called Simons Center for Data Analysis) in early 2017. The main developer and maintainer is:
Alex Barnett
Major code contributions (loosely in chronological order) by:
Jeremy Magland - early multithreaded spreader, benchmark vs other libraries, py wrapper
Ludvig af Klinteberg - SIMD vectorization/acceleration of spreader, julia wrapper
Yu-Hsuan (“Melody”) Shih - 2d1many, 2d2many vectorized interface, GPU version
Andrea Malleo - guru interface prototype and tests
Libin Lu - guru Fortran, python/wheels, MATLAB/octave, julia interfaces, cmake, CI, user support, SIMD kernel
Joakim Andén - python, MATLAB/FFTW issues, dual-precision, performance tests, GPU python/docs/tests
Robert Blackwell - atomic OMP add_wrapped_subgrid, GPU version merge
Marco Barbone - SIMD kernel manual vectorization, benchmarking, foldrescale, Cmake/packaging, Windows, GPU optimization
Martin Reinecke - SIMD kernel and interp auto-vectorization, binsort, switchable FFT to DUCC0, de-macro-izing; good ideas
Other significant code contributions by:
Leslie Greengard and June-Yub Lee - CMCL Fortran test drivers
Dan Foreman-Mackey - early python wrappers
David Stein - python wrappers, finding “pi-1ULP” spreadcheck error
Garrett Wright - dual-precision build, py packaging, GPU version
Wenda Zhou - Cmake build, code review, professionalization, SIMD ideas
Testing, bug reports, helpful discussions:
Dan Fortunato - MATLAB setpts temp array bug and fix
Hannah Lawrence - user testing and finding bugs
Marina Spivak - Fortran testing
Hugo Strand - python bugs
Amit Moscovich - Mac OSX build
Dylan Simon - sphinx help
Zydrunas Gimbutas - MWrap extension, explanation that NFFT uses Kaiser-Bessel backwards
Charlie Epstein - help with analysis of kernel Fourier transform sums
Christian Muller - optimization (CMA-ES) for early kernel design
Andras Pataki - complex number speed in C++, thread-safety of FFTW
Jonas Krimmer - thread safety of FFTW, Windows makefile
Timo Heister - pass/fail numdiff testing ideas
Vladimir Rokhlin - piecewise polynomial approximation on complex boxes
Reinhard Neder - fortran90 demo using finufft as module, OSX build
Vineet Bansal - py packaging
Logo design: Sherry Choi with input from Alex Barnett and Lucy Reading-Ikkanda.
We are also indebted to the authors of other NUFFT codes such as NFFT3, CMCL NUFFT, MIRT, BART, DUCC0, etc, upon whose interfaces, code, and algorithms we have built.