Alex H. Barnett and Jeremy F. Magland, with additional code by Ludvig af Klinteberg and Yu-hsuan "Melody" Shih.
This is a lightweight library to compute the three standard types of nonuniform FFT to a specified precision, in one, two, or three dimensions. It is written in C++ with interfaces to C, Fortran, MATLAB/octave, and python. A julia interface also exists.
Please see the online documentation, or its equivalent, the user manual.
You will also want to see example codes in the directories
examples
, test
, fortran
, matlab
, and python_tests
.
If you cannot compile, try our precompiled binaries.
If you prefer to read text files, the source to generate the above documentation is in human-readable (mostly .rst) files as follows:
docs/install.rst
: installation and compilation instructionsdocs/math.rst
: mathematical definitionsdocs/dirs.rst
: explanation of directories and files in the packagedocs/usage.rst
: interfaces from C++, C and Fortran, notes on parametersdocs/matlabhelp.raw
: MATLAB/octave interfacesfinufftpy/_interfaces.py
: python interface docstringsdocs/related.rst
: packages using FINUFFTdocs/issues.rst
: known issues and bug reportsdocs/refs.rst
: journal article referencesdocs/ackn.rst
: acknowledgments
If you find FINUFFT useful in your work, please cite this code and our paper:
A parallel non-uniform fast Fourier transform library based on an ``exponential of semicircle'' kernel. A. H. Barnett, J. F. Magland, and L. af Klinteberg. SIAM J. Sci. Comput. 41(5), C479-C504 (2019).