flatironinstitute/finufft

Non-uniform fast Fourier transform library of types 1,2,3 in dimensions 1,2,3 on the CPU or GPU

What it solves

FINUFFT is a lightweight library designed to compute the three standard types of nonuniform Fast Fourier Transforms (NUFFT) in one, two, or three dimensions. It allows users to perform Fourier transforms on data that is not sampled on a regular grid, providing a specified level of precision.

How it works

The library is written in C++ and implements a parallel non-uniform fast Fourier transform based on an "exponential of semicircle" kernel. It provides a high-performance implementation that can be executed on both CPUs and GPUs (via the integrated cuFINUFFT CUDA library).

Who it’s for

Researchers and developers working with signal processing, scientific computing, and data analysis where data is sampled non-uniformly.

Highlights

  • Multi-platform support: Supports a wide range of CPU platforms including Windows, macOS, and Linux.
  • Multi-language interfaces: Provides interfaces for C, Fortran, MATLAB/Octave, Python, and Julia.
  • GPU Acceleration: Integrates cuFINUFFT for CUDA-enabled GPU acceleration.
  • High Precision: Computes transforms to a user-specified precision level.

Related

  • Project
  • Project
  • Project
  • Project
  • Project