kburns / finufft

Non-uniform fast Fourier transform library of types 1,2,3 in dimensions 1,2,3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Flatiron Institute Nonuniform Fast Fourier Transform libraries: FINUFFT

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 instructions
  • docs/math.rst : mathematical definitions
  • docs/dirs.rst : explanation of directories and files in the package
  • docs/usage.rst : interfaces from C++, C and Fortran, notes on parameters
  • docs/matlabhelp.raw : MATLAB/octave interfaces
  • finufftpy/_interfaces.py : python interface docstrings
  • docs/related.rst : packages using FINUFFT
  • docs/issues.rst : known issues and bug reports
  • docs/refs.rst : journal article references
  • docs/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).

About

Non-uniform fast Fourier transform library of types 1,2,3 in dimensions 1,2,3

License:Other


Languages

Language:C++ 40.7%Language:C 32.6%Language:Fortran 9.8%Language:MATLAB 7.8%Language:Python 6.4%Language:Makefile 1.7%Language:Shell 1.0%