{"id":13715111,"url":"https://github.com/NFFT/nfft","last_synced_at":"2025-05-07T03:31:22.642Z","repository":{"id":46307120,"uuid":"50946487","full_name":"NFFT/nfft","owner":"NFFT","description":"The official NFFT library repository","archived":false,"fork":false,"pushed_at":"2025-04-01T18:50:42.000Z","size":35155,"stargazers_count":177,"open_issues_count":19,"forks_count":47,"subscribers_count":23,"default_branch":"develop","last_synced_at":"2025-04-12T21:34:04.497Z","etag":null,"topics":["c","fftw","fourier-transform","julia","matlab","nfft"],"latest_commit_sha":null,"homepage":"https://tu-chemnitz.de/~potts/nfft/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NFFT.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/Makefile.am","governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-02-02T19:36:42.000Z","updated_at":"2025-04-01T18:50:47.000Z","dependencies_parsed_at":"2024-01-09T18:04:46.879Z","dependency_job_id":"6d38c093-588b-4fe8-9bf0-685fa8fd4a3f","html_url":"https://github.com/NFFT/nfft","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFFT%2Fnfft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFFT%2Fnfft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFFT%2Fnfft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFFT%2Fnfft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NFFT","download_url":"https://codeload.github.com/NFFT/nfft/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252806435,"owners_count":21807202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","fftw","fourier-transform","julia","matlab","nfft"],"created_at":"2024-08-03T00:00:54.248Z","updated_at":"2025-05-07T03:31:17.631Z","avatar_url":"https://github.com/NFFT.png","language":"C","funding_links":[],"categories":["Other libraries and tools"],"sub_categories":["Mesh tools"],"readme":"NFFT - Nonequispaced FFT\n=========================\n\nOverview\n--------\nNFFT is a software library, written in C, for computing non-equispaced fast\nFourier transforms and related variations. It implements the following\ntransforms:\n\n1. Non-equispaced fast Fourier transform (NFFT)\n    - forward transform *(NFFT)*, i.e. frequency to time/space domain\n    - adjoint transform *(adjoint NFFT)*, i.e. time/space to frequency domain\n\n2. Generalisations\n    - to arbitrary nodes in time *and* frequency domain *(NNFFT)*\n    - to real-valued data, i.e. (co)sine transforms, *(NFCT, NFST)*\n    - to the sphere S^2 *(NFSFT)*\n    - to the rotation group *(NFSOFT)*\n    - to the hyperbolic cross *(NSFFT)*\n\n3. Generalised inverse transformations based on iterative methods, e.g. CGNR/CGNE\n\nSome examples for application of these transforms are provided:\n\n1. Medical imaging\n    - magnetic resonance imaging (mri)\n    - computerised tomography (radon)\n\n2. Summation schemes\n    - fast summation (fastsum)\n    - fast Gauss transform (FGT)\n    - singular kernels\n    - zonal kernels\n\n3. polar FFT, discrete Radon transform, ridgelet transform\n\nDetailed API documentation in HTML format can be found in\n`doc/html/index.html`, if you are working from a release tarball.\nWhen working from a source repository, the documentation can be\ngenerated with Doxygen (which requires the `doxygen-latex` and `perl` packages):\n```\nmake doc\n```\n\nBuilding\n--------\nThe NFFT depends on the [FFTW](https://fftw.org) library, which is available for many Linux distros, Homebrew on macOS and MSYS2 on Windows. If you compile the FFTW yourself, it should be configured with the flag `--enable-shared` (and `--enable-threads` for the multi-threaded version). Building the NFFT requires `make` and a C compiler such as `gcc`.\n\nWhen working from a source repository, you need to run libtoolize and autoreconf first. A bash script to do this is provided. This step requries the tools `autoconf`, `automake` and `libtool`.\n```\n./bootstrap.sh\n```\n\nThe rest of the build process is standard.\n```\n./configure --enable-all --enable-openmp [add options as necessary, see below]\n```\n\nAlternatively, you might run the configure script for Matlab.\n```\n./configure --enable-all --enable-openmp --with-matlab=/path/to/matlab\n```\n\nHere are some useful optional flags for `./configure`:\n* `--enable-all` specifies that all modules should be compiled,\n* `--enable-openmp` enables the multicore support and\n* `--enable-julia` specifies that the julia interface will be compiled.\n* `--with-matlab=/path/to/matlab` specifies the path of a Matlab installation, and\n* `--with-octave=/path/to/octave` does the same for GNU Octave.\n* For a list of all available options, run `./configure --help`.\n\nBuild the software.\n```\nmake\n```\n\nOptionally, unit tests may be run. Some of the unit tests require an installation of [cunit](http://cunit.sourceforge.net).\n```\nmake check\n```\n\nOptionally, install NFFT on your system.\n```\nmake install\n```\n\nCiting\n------\nThe current general paper, the one that we recommend if you wish to cite NFFT, is *Keiner, J., Kunis, S., and Potts, D.\n''Using NFFT 3 - a software library for various nonequispaced fast Fourier transforms''\nACM Trans. Math. Software 36, Article 19, 1-30, 2009*. BibTeX entry:\n```\n@article{KeKuPo09,\n author = {Jens Keiner and Stefan Kunis and Daniel Potts},\n title = {Using {NFFT3} - a Software Library for Various Nonequispaced Fast {Fourier} Transforms},\n journal = {{ACM} Trans. Math. Software},\n year = {2009},\n volume = {36},\n pages = {Article 19, 1--30},\n doi = {10.1145/1555386.1555388}}\n```\n\nFeedback\n--------\nYour comments are welcome! This is the third version of the library and may\nnot be as robust or well documented as it should be. Please keep track of bugs\nor missing/confusing instructions and report them in our issue tracker or directly to\n[Daniel Potts](mailto:potts@mathematik.tu-chemnitz.de).\nThe postal address is\n\n```\n  Prof. Dr. Daniel Potts\n  TU Chemnitz, Fakultaet fuer Mathematik\n  Reichenhainer Str. 39\n  09107 Chemnitz\n  GERMANY\n```\n\nAlternatively, you might contact\n[Stefan Kunis](mailto:stefan.kunis@math.uos.de)\nor\n[Jens Keiner](mailto:jens@nfft.org).\n\nIf you find NFFT useful, we would be delighted to hear about what application\nyou are using NFFT for!\n\nLegal Information \u0026 Credits\n---------------------------\nCopyright (c) 2002, 2017 Jens Keiner, Stefan Kunis, Daniel Potts\n\nThis software was written by Jens Keiner, Stefan Kunis and Daniel Potts.\nIt was developed at the Mathematical Institute, University of\nLuebeck, and at the Faculty of Mathematics, Chemnitz University of Technology.\n\nNFFT3 is free software. You can redistribute it and/or modify it under the\nterms of the GNU General Public License as published by the Free Software\nFoundation; either version 2 of the License, or (at your option) any later\nversion. If not stated otherwise, this applies to all files contained in this\npackage and its sub-directories.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n\nDirectory structure\n-------------------\n\nFile/Folder        | Purpose\n------------------:| ------------------------------------------------------\n3rdparty (dir) \t   | Third-party source code\naclocal.m4\t\t   | Macros for configure script\napplications (dir) | Application programs (see 4) above)\nAUTHORS\t\t\t   | Information about the authors of NFFT\nbootstrap.sh       | Bootstrap shell script that call Autoconf and friends\nChangeLog          | A short version history\nconfig (dir)       | Used by configure script\nconfigure          | Configure script (created by calling ./bootstrap.sh)\nconfigure.ac       | Autoconf configure script template\nCONVENTIONS        | Internal coding conventions\nCOPYING            | Information about redistributing NFFT\ndoc (dir)          | User and developer documentation\nexamples (dir)     | Simple examples for using NFFT routines\ninclude (dir)      | Header files\nINSTALL            | Installation instructions\njulia (dir)        | Julia interface for nfft\nkernel (dir)       | Source code for core library routines\nMakefile.am        | Automake Makefile template\nMakefile.in        | Makefile template generated from Makefile.am, processed by configure script\nmatlab (dir)       | Matlab MEX interfaces for nfft, nfsft, nfsoft, nfft\nNEWS               | New and noteworthy\nREADME             | This file\nREADME.md          | This file\ntests (dir)        | CUnit tests\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNFFT%2Fnfft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNFFT%2Fnfft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNFFT%2Fnfft/lists"}