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