-
Notifications
You must be signed in to change notification settings - Fork 79
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
move some updated doc pages to master
- Loading branch information
Showing
4 changed files
with
81 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,44 @@ | ||
.. _ackn: | ||
|
||
Acknowledgments | ||
=============== | ||
|
||
The main code and mathematical development is by: | ||
FINUFFT was initiated by Jeremy Magland and Alex Barnett at the | ||
Center for Computational Mathematics, Flatiron Institute. | ||
The main developer and maintainer is: | ||
|
||
* Alex Barnett (Flatiron Institute) | ||
* Jeremy Magland (Flatiron Institute) | ||
|
||
Significant SIMD vectorization/acceleration of the spreader by: | ||
* Alex Barnett | ||
|
||
* Ludvig af Klinteberg (SFU) | ||
Major code contributions by: | ||
|
||
Other code contributions: | ||
* Jeremy Magland - multithreaded spreader, benchmark vs other codes | ||
* 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, MATLAB/octave, julia interfaces | ||
|
||
Other significant code contributions by: | ||
|
||
* Yu-Hsuan ("Melody") Shih - 2d1many, 2d2many interface for many vectors same points | ||
* Leslie Greengard and June-Yub Lee - CMCL fortran drivers and test codes | ||
* Dan Foreman-Mackey - python wrappers | ||
* Joakim Andén - catching bugs, Matlab/FFTW issues, performance tests, python | ||
* Leslie Greengard and June-Yub Lee - CMCL Fortran test drivers | ||
* Dan Foreman-Mackey - early python wrappers | ||
* David Stein - python wrappers | ||
* Dylan Simon - sphinx help | ||
* Amit Moscovich - Mac OSX build | ||
|
||
Testing, bug reports: | ||
* Vineet Bansal - pypy packaging | ||
|
||
Testing, bug reports, helpful discussions: | ||
|
||
* Joakim Anden - catching memory leak, Matlab/FFTW issues, performance tests | ||
* Hannah Lawrence - user testing and finding bugs | ||
* Marina Spivak - fortran testing | ||
* Marina Spivak - Fortran testing | ||
* Hugo Strand - python bugs | ||
Helpful discussions: | ||
|
||
* Charlie Epstein - analysis of kernel Fourier transform sums | ||
* Amit Moscovich - Mac OSX build | ||
* Dylan Simon - sphinx help | ||
* Zydrunas Gimbutas - 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++ | ||
* Timo Heister - pass/fail numdiff testing ideas | ||
* Zydrunas Gimbutas - explanation that NFFT uses Kaiser-Bessel backwards | ||
* Vladimir Rokhlin - piecewise polynomial approximation on complex boxes | ||
|
||
We are also indebted to the authors of other NUFFT codes | ||
such as NFFT3, CMCL NUFFT, MIRT, BART, etc, upon whose interfaces, code, | ||
and algorithms we have built. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,22 @@ | ||
.. _related: | ||
|
||
Related packages | ||
================ | ||
|
||
Other recommended NUFFT libraries | ||
--------------------------------- | ||
|
||
- `NFFT3 <https://www-user.tu-chemnitz.de/~potts/nfft/>`_: well-supported and multi-featured C++ library using FFTW. Has MATLAB interface. However, significantly slower and/or more memory-intensive than FINUFFT (see reference [FIN]). | ||
- `NFFT3 <https://www-user.tu-chemnitz.de/~potts/nfft/>`_: well-supported and multi-featured C++ library using FFTW. Has MATLAB MEX interface. However, significantly slower and/or more memory-intensive than FINUFFT (see reference [FIN]). Has many more general abilities, eg, inverse NUFFT. We are working on this too. | ||
|
||
- `CMCL NUFFT <https://cims.nyu.edu/cmcl/nufft/nufft.html>`_: NYU single-threaded Fortran library using self-contained FFT, fast Gaussian gridding kernel. Has MATLAB MEX interface. Much (up to 50x even for one thread) slower than FINUFFT, but very easy to compile. | ||
|
||
- `CMCL NUFFT <https://cims.nyu.edu/cmcl/nufft/nufft.html>`_: NYU single-threaded Fortran library using self-contained FFT, Gaussian kernel. Has MATLAB interface. Much slower than FINUFFT. | ||
- `cuFINUFFT <https://github.com/flatironinstitute/cufinufft>`_: Our GPU version of FINUFFT, for single precision in 2D and 3D, type 1 and 2. Still under development by Melody Shih (NYU) and others. Often achieves speeds around 10x the CPU version. | ||
|
||
- `MIRT <https://web.eecs.umich.edu/~fessler/code/index.html>`_ Michigan Image Reconstruction Toolbox. Native MATLAB, single-threaded sparse mat-vec, prestores all kernel evaluations, thus is memory-intensive. Slower than FINUFFT for all tolerances smaller than 0.1. | ||
- `MIRT <https://web.eecs.umich.edu/~fessler/code/index.html>`_ Michigan Image Reconstruction Toolbox. Native MATLAB, single-threaded sparse mat-vec, prestores all kernel evaluations, thus is memory-intensive but surprisingly fast for a single-threaded implementation. However, slower than FINUFFT for all tolerances smaller than 0.1. | ||
|
||
- `PyNUFFT <https://github.com/jyhmiinlin/pynufft>`_ Python code supporting CPU and GPU operation. Have not compared against FINUFFT yet. | ||
|
||
|
||
Also see the summary of library performances in our paper [FIN]. | ||
Also see the summary of library performances in our paper [FIN] in the | ||
:ref:`references <refs>`. | ||
|
||
|
||
Interfaces to FINUFFT from other languages | ||
------------------------------------------ | ||
|
||
- `FINUFFT.jl <https://github.com/ludvigak/FINUFFT.jl>`_: a `julia <https://julialang.org/>`_ language wrapper by Ludvig af Klinteberg (SFU). This is actually a secondary wrapper around our python interface, so you should make sure that the latter is working first. | ||
|
||
- Vineet Bansal's pypi package https://pypi.org/project/finufftpy/ | ||
|
||
|
||
Packages making use of FINUFFT | ||
------------------------------ | ||
|
||
Here are some packages dependent on FINUFFT (please let us know others): | ||
|
||
- `ASPIRE <http://spr.math.princeton.edu>`_: software for cryo-EM, based at Amit Singer's group at Princeton. `github <https://github.com/PrincetonUniversity/ASPIRE-Python>`_ | ||
|
||
- `sinctransform <https://github.com/hannahlawrence/sinctransform>`_: C++ | ||
and MATLAB codes to evaluate sums of the sinc and sinc^2 kernels between arbitrary nonuniform points in 1,2, or 3 dimensions, by Hannah Lawrence (2017 summer intern at Flatiron). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.