# FFTW 3.2.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 64-bit Guru Interface
  - 4.6 New-array Execute Functions
  - 4.7 Wisdom
    - 4.7.1 Wisdom Export
    - 4.7.2 Wisdom Import
    - 4.7.3 Forgetting Wisdom
    - 4.7.4 Wisdom Utilities
  - 4.8 What FFTW Really Computes
    - 4.8.1 The 1d Discrete Fourier Transform (DFT)
    - 4.8.2 The 1d Real-data DFT
    - 4.8.3 1d Real-even DFTs (DCTs)
    - 4.8.4 1d Real-odd DFTs (DSTs)
    - 4.8.5 1d Discrete Hartley Transforms (DHTs)
    - 4.8.6 Multi-dimensional Transforms
- 5 Multi-threaded FFTW
  - 5.1 Installation and Supported Hardware/Software
  - 5.2 Usage of Multi-threaded FFTW
  - 5.3 How Many Threads to Use?
  - 5.4 Thread safety
- 6 FFTW on the Cell Processor
  - 6.1 Cell Installation
  - 6.2 Cell Caveats
  - 6.3 FFTW Accuracy on Cell
- 7 Calling FFTW from Fortran
  - 7.1 Fortran-interface routines
  - 7.2 FFTW Constants in Fortran
  - 7.3 FFTW Execution in Fortran
  - 7.4 Fortran Examples
  - 7.5 Wisdom of Fortran?
- 8 Upgrading from FFTW version 2
- 9 Installation and Customization
  - 9.1 Installation on Unix
  - 9.2 Installation on non-Unix systems
  - 9.3 Cycle Counters
  - 9.4 Generating your own code
- 10 Acknowledgments
- 11 License and Copyright
- 12 Concept Index
- 13 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.2.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

Multi-threaded FFTW

FFTW on the Cell Processor

Calling FFTW from Fortran

Installation and Customization