Skip to content

sukunis/CUNFFT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUNFFT - Nonequispaced FFT and it's inversion in CUDA

Overview
--------
CUNFFT is written in CUDA and based on the NFFT3,a software library written in C 
for computing nonequispaced fast Fourier and related transformations. 
In detail, CUNFFT implements

 1) The nonequispaced fast Fourier transform (CUNFFT)
    - the forward transform (CUNFFT)
    - the adjoint transform (adjoint CUNFFT)

For an introduction, please read the "NFFT 3.0 - Tutorial" first. It is
available in the subdirectory doc/tutorial/tutorial.pdf. Detailed API
documentation can be found in HTML format in /doc/api/html/index.html
or in LaTeX format for self compilation in /doc/api/latex/refman.tex.
For installation instructions, you can also refer to the file INSTALL
in this directory.

The most current general paper, and the one that we recommend if you wish
to cite NFFT, is: The paper by Keiner, J., Kunis, S., and Potts, D.
''Using NFFT 3 - a software library for various nonequispaced fast Fourier transforms''
ACM Trans. Math. Software,36, Article 19, 1-30,  2009

Directory structure
-------------------
auto_cunfft_cmake.sh		Automatic build script for cmake
build				All files generated by cmake and make
CMakeModule			Cmake helper module
Debug				Used by cmake
lib					Generated CUNFFT libraries
src					CUDA and c++/c code, executable test file
CMakeLists.txt  	Cmake script


src structure
-------------------
CMakeLists.txt		Used by cmake (for nvcc flags see here)
config.h			Macro defines set by cmake.. -D <var>:<type>=<value> (default set in ../CMakeLists.txt)
config.h.in			Used by cmake
cuda_util.cpp 		Utilities like error norm, create example data, memory restriction tests
cunfft.cu			Data init ,finalize and transfer functions, caller for wrapper
cunfft.h
cunfft_kernel.cu	Implemenations of kernel
cunfft_kernel.cuh
cunfft_typedefs.h	Type definitions
cunfft_util.h		Header for c_util.cpp and cuda_util.cpp, CUDA error functions
cunfft_wrapper.cu	Implementations of kernel calls
c_util.cpp			Utilities like timer and output function
ndft.h				NDFT implementation
simpleTest.cpp		Manuell tests

Feedback
========
Your comments are welcome! This is the first version of the library and may
not be as robust or well documented as it should be. Please keep track of bugs
or missing/confusing instructions and report them to

  Susanne Kunis <sukunis@uos.de>
  Universität Osnabrueck, Fakultaet fuer Mathematik
  Albrechtstrasse 28a
  49076 Osnabrueck, GERMANY

or

  Stefan Kunis           <skunis@uos.de>
  
If you find CUNFFT useful, we would be delighted to hear about what application
you are using CUNFFT for!


Legal Information & Credits
===========================
Copyright (C) 2011-2015 Susanne Kunis

This software was written by Susanne Kunis and Stefan Kunis.
It was developed at the Mathematical Institute, University of
Osnabrueck.

CUNFFT1 is free software. You can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. If not stated otherwise, this applies to all files contained in this
package and its sub-directories. 

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA