{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,11]],"date-time":"2026-09-11T03:04:38Z","timestamp":1789095878666,"version":"build-2803163510"},"reference-count":29,"publisher":"Society for Industrial & Applied Mathematics (SIAM)","issue":"3","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["SIAM J. Sci. Comput."],"published-print":{"date-parts":[[2023,6,30]]},"abstract":"<jats:p>Abstract.<\/jats:p>\n                  <jats:p>The nonequidistant fast Fourier transform (NFFT) is an extension of the famous fast Fourier transform (FFT) that can be applied to nonequidistantly sampled data in time\/space or frequency domain. It is an approximative algorithm that allows one to control the approximation error in such a way that machine precision is reached while keeping the algorithmic complexity in the same order as a regular FFT. The NFFT plays a major role in many signal processing applications and has been intensively studied from a theoretical and computational perspective. The fastest CPU implementations of the NFFT are implemented in the low-level programming languages C and C++ and require a compromise between code generalizability, code readability, and code efficiency. The programming language Julia promises new opportunities in optimizing these three conflicting goals. In this work we show that Julia indeed allows one to develop an NFFT implementation which is completely generic and dimension-agnostic and requires about two to three times less code than the other famous libraries NFFT3 and FINUFFT while still being one of the fastest NFFT implementations developed to date.<\/jats:p>","DOI":"10.1137\/22m1510935","type":"journal-article","created":{"date-parts":[[2023,6,13]],"date-time":"2023-06-13T12:59:05Z","timestamp":1686661145000},"page":"C179-C205","source":"Crossref","is-referenced-by-count":6,"title":["NFFT.jl: Generic and Fast Julia Implementation of the Nonequidistant Fast Fourier Transform"],"prefix":"10.1137","volume":"45","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-1589-8517","authenticated-orcid":true,"given":"Tobias","family":"Knopp","sequence":"first","affiliation":[{"name":"Institute for Biomedical Imaging, Hamburg University of Technology, Hamburg 21073, Germany."},{"name":"Section for Biomedical Imaging, University Medical Center Hamburg-Eppendorf, Hamburg 22529, Germany."}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3419-7481","authenticated-orcid":true,"given":"Marija","family":"Boberg","sequence":"additional","affiliation":[{"name":"Institute for Biomedical Imaging, Hamburg University of Technology, Hamburg 21073, Germany."},{"name":"Section for Biomedical Imaging, University Medical Center Hamburg-Eppendorf, Hamburg 22529, Germany."}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8005-8859","authenticated-orcid":true,"given":"Mirco","family":"Grosser","sequence":"additional","affiliation":[{"name":"Institute for Biomedical Imaging, Hamburg University of Technology, Hamburg 21073, Germany."},{"name":"Section for Biomedical Imaging, University Medical Center Hamburg-Eppendorf, Hamburg 22529, Germany."}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"351","published-online":{"date-parts":[[2023,6,13]]},"reference":[{"key":"ref1","doi-asserted-by":"publisher","DOI":"10.1137\/0917059"},{"key":"ref2","doi-asserted-by":"publisher","DOI":"10.1137\/18M120885X"},{"key":"ref3","doi-asserted-by":"publisher","DOI":"10.1006\/acha.1995.1026"},{"key":"ref4","doi-asserted-by":"publisher","DOI":"10.1137\/141000671"},{"key":"ref5","doi-asserted-by":"publisher","DOI":"10.1090\/S0025-5718-1965-0178586-1"},{"key":"ref6","doi-asserted-by":"publisher","DOI":"10.1137\/0914081"},{"key":"ref7","doi-asserted-by":"publisher","DOI":"10.1016\/j.jmr.2007.06.012"},{"key":"ref8","doi-asserted-by":"publisher","DOI":"10.1109\/TSP.2002.807005"},{"key":"ref9","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2004.840301"},{"key":"ref10","doi-asserted-by":"crossref","unstructured":"D. Hillmann , \nG. Huttmann , and \nP. Koch , Using nonequispaced fast Fourier transformation to process optical coherence tomography signals, in European Conference on Biomedical Optics, Optical Society of America, 2009, 7372_R.","DOI":"10.1364\/ECBO.2009.7372_0R"},{"key":"ref11","unstructured":"R. D. Jacobsen , \nM. Nielsen , and \nM. G. Rasmussen , Generalized Sampling in Julia, preprint, https:\/\/arxiv.org\/abs\/1607.04091, 2016."},{"key":"ref12","doi-asserted-by":"publisher","DOI":"10.1002\/mrm.21840"},{"key":"ref13","doi-asserted-by":"publisher","DOI":"10.1145\/1555386.1555388"},{"key":"ref14","unstructured":"F. Knoll , \nA. Schwarzl , \nC. Diwoky , and \nD. K. Sodickson , gpuNUFFT - an open source GPU library for 3D regridding with direct Matlab interface, in International Society for Magnetic Resonance in Medicine: Scientific Meeting & Exhibition, 2014, abstract 4297."},{"key":"ref15","doi-asserted-by":"crossref","unstructured":"T. Knopp , Experimental multi-threading support for the Julia programming language, in Proceedings of the First Workshop for High Performance Technical Computing in Dynamic Languages, IEEE Press, 2014, pp. 1\u20135.","DOI":"10.1109\/HPTCDL.2014.11"},{"key":"ref16","doi-asserted-by":"publisher","DOI":"10.1002\/mrm.28792"},{"key":"ref17","doi-asserted-by":"publisher","DOI":"10.1155\/2007\/24727"},{"key":"ref18","doi-asserted-by":"publisher","DOI":"10.1002\/pamm.201210003"},{"key":"ref19","doi-asserted-by":"publisher","DOI":"10.1007\/BF03549487"},{"key":"ref20","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4612-0143-4_12"},{"key":"ref21","doi-asserted-by":"publisher","DOI":"10.1007\/s10444-021-09873-8"},{"key":"ref22","doi-asserted-by":"publisher","DOI":"10.1007\/s43670-021-00017-z"},{"key":"ref23","doi-asserted-by":"crossref","unstructured":"A. Schutz , \nA. Ferrari , \nD. Mary , \n\u00c9. Thi\u00e9baut , and \nF. Soulez , Large scale 3D image reconstruction in optical interferometry, in 2015 23rd European Signal Processing Conference (EUSIPCO), IEEE, 2015, pp. 474\u2013478.","DOI":"10.1109\/EUSIPCO.2015.7362428"},{"key":"ref24","doi-asserted-by":"crossref","unstructured":"Y.h. Shih , \nG. Wright , \nJ. And\u00e9n , \nJ. Blaschke , and \nA. H. Barnett ,  cuFINUFFT: A load-balanced GPU library for general-purpose nonuniform FFTs, in 2021 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), IEEE, 2021, pp. 688\u2013697.","DOI":"10.1109\/IPDPSW52791.2021.00105"},{"key":"ref25","doi-asserted-by":"publisher","DOI":"10.1109\/TMI.2007.909834"},{"key":"ref26","doi-asserted-by":"publisher","DOI":"10.1023\/A:1018901926283"},{"key":"ref27","unstructured":"T. Volkmer , OpenMP Parallelization in the NFFT Software Library, preprint, 2012, https:\/\/www-user.tu-chemnitz.de\/\u223cpotts\/paper\/openmpNFFT.pdf."},{"key":"ref28","doi-asserted-by":"publisher","DOI":"10.1137\/S003614459731533X"},{"key":"ref29","doi-asserted-by":"publisher","DOI":"10.1016\/j.acha.2016.04.009"}],"container-title":["SIAM Journal on Scientific Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/epubs.siam.org\/doi\/pdf\/10.1137\/22M1510935","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,8,21]],"date-time":"2026-08-21T17:52:45Z","timestamp":1787334765000},"score":1,"resource":{"primary":{"URL":"https:\/\/epubs.siam.org\/doi\/10.1137\/22M1510935"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,6,13]]},"references-count":29,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2023,6,30]]}},"alternative-id":["10.1137\/22M1510935"],"URL":"https:\/\/doi.org\/10.1137\/22m1510935","relation":{},"ISSN":["1064-8275","1095-7197"],"issn-type":[{"value":"1064-8275","type":"print"},{"value":"1095-7197","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,6,13]]}}}