# FFTW 3.1.2

## Table of Contents

- FFTW User Manual
- 1 Introduction
- 2 Tutorial
  - 2.1 Complex One-Dimensional DFTs
  - 2.2 Complex Multi-Dimensional DFTs
  - 2.3 One-Dimensional DFTs of Real Data
  - 2.4 Multi-Dimensional DFTs of Real Data
  - 2.5 More DFTs of Real Data
    - 2.5.1 The Halfcomplex-format DFT
    - 2.5.2 Real even/odd DFTs (cosine/sine transforms)
    - 2.5.3 The Discrete Hartley Transform
- 3 Other Important Topics
  - 3.1 Data Alignment
    - 3.1.1 SIMD alignment and fftw_malloc
    - 3.1.2 Stack alignment on x86
  - 3.2 Multi-dimensional Array Format
    - 3.2.1 Row-major Format
    - 3.2.2 Column-major Format
    - 3.2.3 Fixed-size Arrays in C
    - 3.2.4 Dynamic Arrays in C
    - 3.2.5 Dynamic Arrays in C—The Wrong Way
  - 3.3 Words of Wisdom—Saving Plans
  - 3.4 Caveats in Using Wisdom
- 4 FFTW Reference
  - 4.1 Data Types and Files
    - 4.1.1 Complex numbers
    - 4.1.2 Precision
    - 4.1.3 Memory Allocation
  - 4.2 Using Plans
  - 4.3 Basic Interface
    - 4.3.1 Complex DFTs
    - 4.3.2 Planner Flags
    - 4.3.3 Real-data DFTs
    - 4.3.4 Real-data DFT Array Format
    - 4.3.5 Real-to-Real Transforms
    - 4.3.6 Real-to-Real Transform Kinds
  - 4.4 Advanced Interface
    - 4.4.1 Advanced Complex DFTs
    - 4.4.2 Advanced Real-data DFTs
    - 4.4.3 Advanced Real-to-real Transforms
  - 4.5 Guru Interface
    - 4.5.1 Interleaved and split arrays
    - 4.5.2 Guru vector and transform sizes
    - 4.5.3 Guru Complex DFTs
    - 4.5.4 Guru Real-data DFTs
    - 4.5.5 Guru Real-to-real Transforms
    - 4.5.6 Guru Execution of Plans
  - 4.6 Wisdom
    - 4.6.1 Wisdom Export
    - 4.6.2 Wisdom Import
    - 4.6.3 Forgetting Wisdom
    - 4.6.4 Wisdom Utilities
  - 4.7 What FFTW Really Computes
    - 4.7.1 The 1d Discrete Fourier Transform (DFT)
    - 4.7.2 The 1d Real-data DFT
    - 4.7.3 1d Real-even DFTs (DCTs)
    - 4.7.4 1d Real-odd DFTs (DSTs)
    - 4.7.5 1d Discrete Hartley Transforms (DHTs)
    - 4.7.6 Multi-dimensional Transforms
- 5 Parallel FFTW
  - 5.1 Multi-threaded FFTW
    - 5.1.1 Installation and Supported Hardware/Software
    - 5.1.2 Usage of Multi-threaded FFTW
    - 5.1.3 How Many Threads to Use?
  - 5.2 Thread safety
- 6 Calling FFTW from Fortran
  - 6.1 Fortran-interface routines
  - 6.2 FFTW Constants in Fortran
  - 6.3 Fortran Examples
  - 6.4 Wisdom of Fortran?
- 7 Upgrading from FFTW version 2
- 8 Installation and Customization
  - 8.1 Installation on Unix
  - 8.2 Installation on non-Unix systems
  - 8.3 Cycle Counters
  - 8.4 Generating your own code
- 9 Acknowledgments
- 10 License and Copyright
- 11 Concept Index
- 12 Library Index

## FFTW User Manual

Welcome to FFTW, the Fastest Fourier Transform in the West. FFTW is a collection of fast C routines to compute the discrete Fourier transform. This manual documents FFTW version 3.1.2.

--- The Detailed Node Listing ---

Tutorial

More DFTs of Real Data

Other Important Topics

Data Alignment

Multi-dimensional Array Format

FFTW Reference

Data Types and Files

Basic Interface

Advanced Interface

Guru Interface

Wisdom

What FFTW Really Computes

Parallel FFTW

Multi-threaded FFTW

Calling FFTW from Fortran

Installation and Customization