FosFFT aims to be a free, (compiler) optimizable, and simple FFT library for block lengths being powers of 2. The source code contains about 500 lines of code including comments and tests and is available under a permissive license. Special care has been taken such that C compilers may optimize the library to allow for a fairly fast execution at run-time while keeping the source code simple and small.

Note that only complex-valued, one-dimensional transforms are supported, and that there are other, faster implementations than FosFFT. Do not use FosFFT if you need to compute arbitary size blocks (other than powers of 2) or if you look for a real-valued implementation. Also consider using a different, faster library if speed is your main focus.

For your convenience, FosFFT includes code to calculate values for a window function (parameterized Kaiser window).



  • 2021-01-14: Version 1.2.1
    • Fixed bug in example code for fast convolution algorithm in README
  • 2020-08-02: Version 1.2
    • Added FFT/IFFT variants where the second half of input data ia assumed to be zero
    • Code cleanup (use more macros to avoid redundancy)
  • 2020-07-23: Version 1.1
    • Duplicated all FFT functions to support single-precision (float) and double-precision (double) types in the same library
    • Added window function support (parameterized Kaiser window)
  • 2020-07-15: Version 1.0