cannam@127
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
cannam@127
|
2 <html>
|
cannam@127
|
3 <!-- This manual is for FFTW
|
cannam@127
|
4 (version 3.3.5, 30 July 2016).
|
cannam@127
|
5
|
cannam@127
|
6 Copyright (C) 2003 Matteo Frigo.
|
cannam@127
|
7
|
cannam@127
|
8 Copyright (C) 2003 Massachusetts Institute of Technology.
|
cannam@127
|
9
|
cannam@127
|
10 Permission is granted to make and distribute verbatim copies of this
|
cannam@127
|
11 manual provided the copyright notice and this permission notice are
|
cannam@127
|
12 preserved on all copies.
|
cannam@127
|
13
|
cannam@127
|
14 Permission is granted to copy and distribute modified versions of this
|
cannam@127
|
15 manual under the conditions for verbatim copying, provided that the
|
cannam@127
|
16 entire resulting derived work is distributed under the terms of a
|
cannam@127
|
17 permission notice identical to this one.
|
cannam@127
|
18
|
cannam@127
|
19 Permission is granted to copy and distribute translations of this manual
|
cannam@127
|
20 into another language, under the above conditions for modified versions,
|
cannam@127
|
21 except that this permission notice may be stated in a translation
|
cannam@127
|
22 approved by the Free Software Foundation. -->
|
cannam@127
|
23 <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
|
cannam@127
|
24 <head>
|
cannam@127
|
25 <title>FFTW 3.3.5: Top</title>
|
cannam@127
|
26
|
cannam@127
|
27 <meta name="description" content="FFTW 3.3.5: Top">
|
cannam@127
|
28 <meta name="keywords" content="FFTW 3.3.5: Top">
|
cannam@127
|
29 <meta name="resource-type" content="document">
|
cannam@127
|
30 <meta name="distribution" content="global">
|
cannam@127
|
31 <meta name="Generator" content="makeinfo">
|
cannam@127
|
32 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
cannam@127
|
33 <link href="#Top" rel="start" title="Top">
|
cannam@127
|
34 <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
|
cannam@127
|
35 <link href="#SEC_Contents" rel="contents" title="Table of Contents">
|
cannam@127
|
36 <link href="../dir/index.html" rel="up" title="(dir)">
|
cannam@127
|
37 <link href="Introduction.html#Introduction" rel="next" title="Introduction">
|
cannam@127
|
38 <style type="text/css">
|
cannam@127
|
39 <!--
|
cannam@127
|
40 a.summary-letter {text-decoration: none}
|
cannam@127
|
41 blockquote.smallquotation {font-size: smaller}
|
cannam@127
|
42 div.display {margin-left: 3.2em}
|
cannam@127
|
43 div.example {margin-left: 3.2em}
|
cannam@127
|
44 div.indentedblock {margin-left: 3.2em}
|
cannam@127
|
45 div.lisp {margin-left: 3.2em}
|
cannam@127
|
46 div.smalldisplay {margin-left: 3.2em}
|
cannam@127
|
47 div.smallexample {margin-left: 3.2em}
|
cannam@127
|
48 div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
|
cannam@127
|
49 div.smalllisp {margin-left: 3.2em}
|
cannam@127
|
50 kbd {font-style:oblique}
|
cannam@127
|
51 pre.display {font-family: inherit}
|
cannam@127
|
52 pre.format {font-family: inherit}
|
cannam@127
|
53 pre.menu-comment {font-family: serif}
|
cannam@127
|
54 pre.menu-preformatted {font-family: serif}
|
cannam@127
|
55 pre.smalldisplay {font-family: inherit; font-size: smaller}
|
cannam@127
|
56 pre.smallexample {font-size: smaller}
|
cannam@127
|
57 pre.smallformat {font-family: inherit; font-size: smaller}
|
cannam@127
|
58 pre.smalllisp {font-size: smaller}
|
cannam@127
|
59 span.nocodebreak {white-space:nowrap}
|
cannam@127
|
60 span.nolinebreak {white-space:nowrap}
|
cannam@127
|
61 span.roman {font-family:serif; font-weight:normal}
|
cannam@127
|
62 span.sansserif {font-family:sans-serif; font-weight:normal}
|
cannam@127
|
63 ul.no-bullet {list-style: none}
|
cannam@127
|
64 -->
|
cannam@127
|
65 </style>
|
cannam@127
|
66
|
cannam@127
|
67
|
cannam@127
|
68 </head>
|
cannam@127
|
69
|
cannam@127
|
70 <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
|
cannam@127
|
71 <h1 class="settitle" align="center">FFTW 3.3.5</h1>
|
cannam@127
|
72
|
cannam@127
|
73
|
cannam@127
|
74
|
cannam@127
|
75
|
cannam@127
|
76
|
cannam@127
|
77
|
cannam@127
|
78
|
cannam@127
|
79
|
cannam@127
|
80
|
cannam@127
|
81
|
cannam@127
|
82
|
cannam@127
|
83
|
cannam@127
|
84
|
cannam@127
|
85
|
cannam@127
|
86
|
cannam@127
|
87
|
cannam@127
|
88
|
cannam@127
|
89
|
cannam@127
|
90
|
cannam@127
|
91
|
cannam@127
|
92
|
cannam@127
|
93
|
cannam@127
|
94
|
cannam@127
|
95 <a name="SEC_Contents"></a>
|
cannam@127
|
96 <h2 class="contents-heading">Table of Contents</h2>
|
cannam@127
|
97
|
cannam@127
|
98 <div class="contents">
|
cannam@127
|
99
|
cannam@127
|
100 <ul class="no-bullet">
|
cannam@127
|
101 <li><a name="toc-Introduction-1" href="Introduction.html#Introduction">1 Introduction</a></li>
|
cannam@127
|
102 <li><a name="toc-Tutorial-1" href="Tutorial.html#Tutorial">2 Tutorial</a>
|
cannam@127
|
103 <ul class="no-bullet">
|
cannam@127
|
104 <li><a name="toc-Complex-One_002dDimensional-DFTs-1" href="Complex-One_002dDimensional-DFTs.html#Complex-One_002dDimensional-DFTs">2.1 Complex One-Dimensional DFTs</a></li>
|
cannam@127
|
105 <li><a name="toc-Complex-Multi_002dDimensional-DFTs-1" href="Complex-Multi_002dDimensional-DFTs.html#Complex-Multi_002dDimensional-DFTs">2.2 Complex Multi-Dimensional DFTs</a></li>
|
cannam@127
|
106 <li><a name="toc-One_002dDimensional-DFTs-of-Real-Data-1" href="One_002dDimensional-DFTs-of-Real-Data.html#One_002dDimensional-DFTs-of-Real-Data">2.3 One-Dimensional DFTs of Real Data</a></li>
|
cannam@127
|
107 <li><a name="toc-Multi_002dDimensional-DFTs-of-Real-Data-1" href="Multi_002dDimensional-DFTs-of-Real-Data.html#Multi_002dDimensional-DFTs-of-Real-Data">2.4 Multi-Dimensional DFTs of Real Data</a></li>
|
cannam@127
|
108 <li><a name="toc-More-DFTs-of-Real-Data-1" href="More-DFTs-of-Real-Data.html#More-DFTs-of-Real-Data">2.5 More DFTs of Real Data</a>
|
cannam@127
|
109 <ul class="no-bullet">
|
cannam@127
|
110 <li><a name="toc-The-Halfcomplex_002dformat-DFT-1" href="The-Halfcomplex_002dformat-DFT.html#The-Halfcomplex_002dformat-DFT">2.5.1 The Halfcomplex-format DFT</a></li>
|
cannam@127
|
111 <li><a name="toc-Real-even_002fodd-DFTs-_0028cosine_002fsine-transforms_0029-1" href="Real-even_002fodd-DFTs-_0028cosine_002fsine-transforms_0029.html#Real-even_002fodd-DFTs-_0028cosine_002fsine-transforms_0029">2.5.2 Real even/odd DFTs (cosine/sine transforms)</a></li>
|
cannam@127
|
112 <li><a name="toc-The-Discrete-Hartley-Transform-1" href="The-Discrete-Hartley-Transform.html#The-Discrete-Hartley-Transform">2.5.3 The Discrete Hartley Transform</a></li>
|
cannam@127
|
113 </ul></li>
|
cannam@127
|
114 </ul></li>
|
cannam@127
|
115 <li><a name="toc-Other-Important-Topics-1" href="Other-Important-Topics.html#Other-Important-Topics">3 Other Important Topics</a>
|
cannam@127
|
116 <ul class="no-bullet">
|
cannam@127
|
117 <li><a name="toc-SIMD-alignment-and-fftw_005fmalloc-1" href="SIMD-alignment-and-fftw_005fmalloc.html#SIMD-alignment-and-fftw_005fmalloc">3.1 SIMD alignment and fftw_malloc</a></li>
|
cannam@127
|
118 <li><a name="toc-Multi_002ddimensional-Array-Format-1" href="Multi_002ddimensional-Array-Format.html#Multi_002ddimensional-Array-Format">3.2 Multi-dimensional Array Format</a>
|
cannam@127
|
119 <ul class="no-bullet">
|
cannam@127
|
120 <li><a name="toc-Row_002dmajor-Format-1" href="Row_002dmajor-Format.html#Row_002dmajor-Format">3.2.1 Row-major Format</a></li>
|
cannam@127
|
121 <li><a name="toc-Column_002dmajor-Format-1" href="Column_002dmajor-Format.html#Column_002dmajor-Format">3.2.2 Column-major Format</a></li>
|
cannam@127
|
122 <li><a name="toc-Fixed_002dsize-Arrays-in-C-1" href="Fixed_002dsize-Arrays-in-C.html#Fixed_002dsize-Arrays-in-C">3.2.3 Fixed-size Arrays in C</a></li>
|
cannam@127
|
123 <li><a name="toc-Dynamic-Arrays-in-C-1" href="Dynamic-Arrays-in-C.html#Dynamic-Arrays-in-C">3.2.4 Dynamic Arrays in C</a></li>
|
cannam@127
|
124 <li><a name="toc-Dynamic-Arrays-in-C_002d_002d_002dThe-Wrong-Way" href="Dynamic-Arrays-in-C_002dThe-Wrong-Way.html#Dynamic-Arrays-in-C_002dThe-Wrong-Way">3.2.5 Dynamic Arrays in C—The Wrong Way</a></li>
|
cannam@127
|
125 </ul></li>
|
cannam@127
|
126 <li><a name="toc-Words-of-Wisdom_002d_002d_002dSaving-Plans" href="Words-of-Wisdom_002dSaving-Plans.html#Words-of-Wisdom_002dSaving-Plans">3.3 Words of Wisdom—Saving Plans</a></li>
|
cannam@127
|
127 <li><a name="toc-Caveats-in-Using-Wisdom-1" href="Caveats-in-Using-Wisdom.html#Caveats-in-Using-Wisdom">3.4 Caveats in Using Wisdom</a></li>
|
cannam@127
|
128 </ul></li>
|
cannam@127
|
129 <li><a name="toc-FFTW-Reference-1" href="FFTW-Reference.html#FFTW-Reference">4 FFTW Reference</a>
|
cannam@127
|
130 <ul class="no-bullet">
|
cannam@127
|
131 <li><a name="toc-Data-Types-and-Files-1" href="Data-Types-and-Files.html#Data-Types-and-Files">4.1 Data Types and Files</a>
|
cannam@127
|
132 <ul class="no-bullet">
|
cannam@127
|
133 <li><a name="toc-Complex-numbers-1" href="Complex-numbers.html#Complex-numbers">4.1.1 Complex numbers</a></li>
|
cannam@127
|
134 <li><a name="toc-Precision-1" href="Precision.html#Precision">4.1.2 Precision</a></li>
|
cannam@127
|
135 <li><a name="toc-Memory-Allocation-1" href="Memory-Allocation.html#Memory-Allocation">4.1.3 Memory Allocation</a></li>
|
cannam@127
|
136 </ul></li>
|
cannam@127
|
137 <li><a name="toc-Using-Plans-1" href="Using-Plans.html#Using-Plans">4.2 Using Plans</a></li>
|
cannam@127
|
138 <li><a name="toc-Basic-Interface-1" href="Basic-Interface.html#Basic-Interface">4.3 Basic Interface</a>
|
cannam@127
|
139 <ul class="no-bullet">
|
cannam@127
|
140 <li><a name="toc-Complex-DFTs-1" href="Complex-DFTs.html#Complex-DFTs">4.3.1 Complex DFTs</a></li>
|
cannam@127
|
141 <li><a name="toc-Planner-Flags-1" href="Planner-Flags.html#Planner-Flags">4.3.2 Planner Flags</a></li>
|
cannam@127
|
142 <li><a name="toc-Real_002ddata-DFTs-1" href="Real_002ddata-DFTs.html#Real_002ddata-DFTs">4.3.3 Real-data DFTs</a></li>
|
cannam@127
|
143 <li><a name="toc-Real_002ddata-DFT-Array-Format-1" href="Real_002ddata-DFT-Array-Format.html#Real_002ddata-DFT-Array-Format">4.3.4 Real-data DFT Array Format</a></li>
|
cannam@127
|
144 <li><a name="toc-Real_002dto_002dReal-Transforms-1" href="Real_002dto_002dReal-Transforms.html#Real_002dto_002dReal-Transforms">4.3.5 Real-to-Real Transforms</a></li>
|
cannam@127
|
145 <li><a name="toc-Real_002dto_002dReal-Transform-Kinds-1" href="Real_002dto_002dReal-Transform-Kinds.html#Real_002dto_002dReal-Transform-Kinds">4.3.6 Real-to-Real Transform Kinds</a></li>
|
cannam@127
|
146 </ul></li>
|
cannam@127
|
147 <li><a name="toc-Advanced-Interface-1" href="Advanced-Interface.html#Advanced-Interface">4.4 Advanced Interface</a>
|
cannam@127
|
148 <ul class="no-bullet">
|
cannam@127
|
149 <li><a name="toc-Advanced-Complex-DFTs-1" href="Advanced-Complex-DFTs.html#Advanced-Complex-DFTs">4.4.1 Advanced Complex DFTs</a></li>
|
cannam@127
|
150 <li><a name="toc-Advanced-Real_002ddata-DFTs-1" href="Advanced-Real_002ddata-DFTs.html#Advanced-Real_002ddata-DFTs">4.4.2 Advanced Real-data DFTs</a></li>
|
cannam@127
|
151 <li><a name="toc-Advanced-Real_002dto_002dreal-Transforms-1" href="Advanced-Real_002dto_002dreal-Transforms.html#Advanced-Real_002dto_002dreal-Transforms">4.4.3 Advanced Real-to-real Transforms</a></li>
|
cannam@127
|
152 </ul></li>
|
cannam@127
|
153 <li><a name="toc-Guru-Interface-1" href="Guru-Interface.html#Guru-Interface">4.5 Guru Interface</a>
|
cannam@127
|
154 <ul class="no-bullet">
|
cannam@127
|
155 <li><a name="toc-Interleaved-and-split-arrays-1" href="Interleaved-and-split-arrays.html#Interleaved-and-split-arrays">4.5.1 Interleaved and split arrays</a></li>
|
cannam@127
|
156 <li><a name="toc-Guru-vector-and-transform-sizes-1" href="Guru-vector-and-transform-sizes.html#Guru-vector-and-transform-sizes">4.5.2 Guru vector and transform sizes</a></li>
|
cannam@127
|
157 <li><a name="toc-Guru-Complex-DFTs-1" href="Guru-Complex-DFTs.html#Guru-Complex-DFTs">4.5.3 Guru Complex DFTs</a></li>
|
cannam@127
|
158 <li><a name="toc-Guru-Real_002ddata-DFTs-1" href="Guru-Real_002ddata-DFTs.html#Guru-Real_002ddata-DFTs">4.5.4 Guru Real-data DFTs</a></li>
|
cannam@127
|
159 <li><a name="toc-Guru-Real_002dto_002dreal-Transforms-1" href="Guru-Real_002dto_002dreal-Transforms.html#Guru-Real_002dto_002dreal-Transforms">4.5.5 Guru Real-to-real Transforms</a></li>
|
cannam@127
|
160 <li><a name="toc-64_002dbit-Guru-Interface-1" href="64_002dbit-Guru-Interface.html#g_t64_002dbit-Guru-Interface">4.5.6 64-bit Guru Interface</a></li>
|
cannam@127
|
161 </ul></li>
|
cannam@127
|
162 <li><a name="toc-New_002darray-Execute-Functions-1" href="New_002darray-Execute-Functions.html#New_002darray-Execute-Functions">4.6 New-array Execute Functions</a></li>
|
cannam@127
|
163 <li><a name="toc-Wisdom-1" href="Wisdom.html#Wisdom">4.7 Wisdom</a>
|
cannam@127
|
164 <ul class="no-bullet">
|
cannam@127
|
165 <li><a name="toc-Wisdom-Export-1" href="Wisdom-Export.html#Wisdom-Export">4.7.1 Wisdom Export</a></li>
|
cannam@127
|
166 <li><a name="toc-Wisdom-Import-1" href="Wisdom-Import.html#Wisdom-Import">4.7.2 Wisdom Import</a></li>
|
cannam@127
|
167 <li><a name="toc-Forgetting-Wisdom-1" href="Forgetting-Wisdom.html#Forgetting-Wisdom">4.7.3 Forgetting Wisdom</a></li>
|
cannam@127
|
168 <li><a name="toc-Wisdom-Utilities-1" href="Wisdom-Utilities.html#Wisdom-Utilities">4.7.4 Wisdom Utilities</a></li>
|
cannam@127
|
169 </ul></li>
|
cannam@127
|
170 <li><a name="toc-What-FFTW-Really-Computes-1" href="What-FFTW-Really-Computes.html#What-FFTW-Really-Computes">4.8 What FFTW Really Computes</a>
|
cannam@127
|
171 <ul class="no-bullet">
|
cannam@127
|
172 <li><a name="toc-The-1d-Discrete-Fourier-Transform-_0028DFT_0029-1" href="The-1d-Discrete-Fourier-Transform-_0028DFT_0029.html#The-1d-Discrete-Fourier-Transform-_0028DFT_0029">4.8.1 The 1d Discrete Fourier Transform (DFT)</a></li>
|
cannam@127
|
173 <li><a name="toc-The-1d-Real_002ddata-DFT-1" href="The-1d-Real_002ddata-DFT.html#The-1d-Real_002ddata-DFT">4.8.2 The 1d Real-data DFT</a></li>
|
cannam@127
|
174 <li><a name="toc-1d-Real_002deven-DFTs-_0028DCTs_0029-1" href="1d-Real_002deven-DFTs-_0028DCTs_0029.html#g_t1d-Real_002deven-DFTs-_0028DCTs_0029">4.8.3 1d Real-even DFTs (DCTs)</a></li>
|
cannam@127
|
175 <li><a name="toc-1d-Real_002dodd-DFTs-_0028DSTs_0029-1" href="1d-Real_002dodd-DFTs-_0028DSTs_0029.html#g_t1d-Real_002dodd-DFTs-_0028DSTs_0029">4.8.4 1d Real-odd DFTs (DSTs)</a></li>
|
cannam@127
|
176 <li><a name="toc-1d-Discrete-Hartley-Transforms-_0028DHTs_0029-1" href="1d-Discrete-Hartley-Transforms-_0028DHTs_0029.html#g_t1d-Discrete-Hartley-Transforms-_0028DHTs_0029">4.8.5 1d Discrete Hartley Transforms (DHTs)</a></li>
|
cannam@127
|
177 <li><a name="toc-Multi_002ddimensional-Transforms-1" href="Multi_002ddimensional-Transforms.html#Multi_002ddimensional-Transforms">4.8.6 Multi-dimensional Transforms</a></li>
|
cannam@127
|
178 </ul></li>
|
cannam@127
|
179 </ul></li>
|
cannam@127
|
180 <li><a name="toc-Multi_002dthreaded-FFTW-1" href="Multi_002dthreaded-FFTW.html#Multi_002dthreaded-FFTW">5 Multi-threaded FFTW</a>
|
cannam@127
|
181 <ul class="no-bullet">
|
cannam@127
|
182 <li><a name="toc-Installation-and-Supported-Hardware_002fSoftware-1" href="Installation-and-Supported-Hardware_002fSoftware.html#Installation-and-Supported-Hardware_002fSoftware">5.1 Installation and Supported Hardware/Software</a></li>
|
cannam@127
|
183 <li><a name="toc-Usage-of-Multi_002dthreaded-FFTW-1" href="Usage-of-Multi_002dthreaded-FFTW.html#Usage-of-Multi_002dthreaded-FFTW">5.2 Usage of Multi-threaded FFTW</a></li>
|
cannam@127
|
184 <li><a name="toc-How-Many-Threads-to-Use_003f-1" href="How-Many-Threads-to-Use_003f.html#How-Many-Threads-to-Use_003f">5.3 How Many Threads to Use?</a></li>
|
cannam@127
|
185 <li><a name="toc-Thread-safety-1" href="Thread-safety.html#Thread-safety">5.4 Thread safety</a></li>
|
cannam@127
|
186 </ul></li>
|
cannam@127
|
187 <li><a name="toc-Distributed_002dmemory-FFTW-with-MPI-1" href="Distributed_002dmemory-FFTW-with-MPI.html#Distributed_002dmemory-FFTW-with-MPI">6 Distributed-memory FFTW with MPI</a>
|
cannam@127
|
188 <ul class="no-bullet">
|
cannam@127
|
189 <li><a name="toc-FFTW-MPI-Installation-1" href="FFTW-MPI-Installation.html#FFTW-MPI-Installation">6.1 FFTW MPI Installation</a></li>
|
cannam@127
|
190 <li><a name="toc-Linking-and-Initializing-MPI-FFTW-1" href="Linking-and-Initializing-MPI-FFTW.html#Linking-and-Initializing-MPI-FFTW">6.2 Linking and Initializing MPI FFTW</a></li>
|
cannam@127
|
191 <li><a name="toc-2d-MPI-example-1" href="2d-MPI-example.html#g_t2d-MPI-example">6.3 2d MPI example</a></li>
|
cannam@127
|
192 <li><a name="toc-MPI-Data-Distribution-1" href="MPI-Data-Distribution.html#MPI-Data-Distribution">6.4 MPI Data Distribution</a>
|
cannam@127
|
193 <ul class="no-bullet">
|
cannam@127
|
194 <li><a name="toc-Basic-and-advanced-distribution-interfaces-1" href="Basic-and-advanced-distribution-interfaces.html#Basic-and-advanced-distribution-interfaces">6.4.1 Basic and advanced distribution interfaces</a></li>
|
cannam@127
|
195 <li><a name="toc-Load-balancing-1" href="Load-balancing.html#Load-balancing">6.4.2 Load balancing</a></li>
|
cannam@127
|
196 <li><a name="toc-Transposed-distributions-1" href="Transposed-distributions.html#Transposed-distributions">6.4.3 Transposed distributions</a></li>
|
cannam@127
|
197 <li><a name="toc-One_002ddimensional-distributions-1" href="One_002ddimensional-distributions.html#One_002ddimensional-distributions">6.4.4 One-dimensional distributions</a></li>
|
cannam@127
|
198 </ul></li>
|
cannam@127
|
199 <li><a name="toc-Multi_002ddimensional-MPI-DFTs-of-Real-Data-1" href="Multi_002ddimensional-MPI-DFTs-of-Real-Data.html#Multi_002ddimensional-MPI-DFTs-of-Real-Data">6.5 Multi-dimensional MPI DFTs of Real Data</a></li>
|
cannam@127
|
200 <li><a name="toc-Other-multi_002ddimensional-Real_002dData-MPI-Transforms" href="Other-Multi_002ddimensional-Real_002ddata-MPI-Transforms.html#Other-Multi_002ddimensional-Real_002ddata-MPI-Transforms">6.6 Other multi-dimensional Real-Data MPI Transforms</a></li>
|
cannam@127
|
201 <li><a name="toc-FFTW-MPI-Transposes-1" href="FFTW-MPI-Transposes.html#FFTW-MPI-Transposes">6.7 FFTW MPI Transposes</a>
|
cannam@127
|
202 <ul class="no-bullet">
|
cannam@127
|
203 <li><a name="toc-Basic-distributed_002dtranspose-interface-1" href="Basic-distributed_002dtranspose-interface.html#Basic-distributed_002dtranspose-interface">6.7.1 Basic distributed-transpose interface</a></li>
|
cannam@127
|
204 <li><a name="toc-Advanced-distributed_002dtranspose-interface-1" href="Advanced-distributed_002dtranspose-interface.html#Advanced-distributed_002dtranspose-interface">6.7.2 Advanced distributed-transpose interface</a></li>
|
cannam@127
|
205 <li><a name="toc-An-improved-replacement-for-MPI_005fAlltoall-1" href="An-improved-replacement-for-MPI_005fAlltoall.html#An-improved-replacement-for-MPI_005fAlltoall">6.7.3 An improved replacement for MPI_Alltoall</a></li>
|
cannam@127
|
206 </ul></li>
|
cannam@127
|
207 <li><a name="toc-FFTW-MPI-Wisdom-1" href="FFTW-MPI-Wisdom.html#FFTW-MPI-Wisdom">6.8 FFTW MPI Wisdom</a></li>
|
cannam@127
|
208 <li><a name="toc-Avoiding-MPI-Deadlocks-1" href="Avoiding-MPI-Deadlocks.html#Avoiding-MPI-Deadlocks">6.9 Avoiding MPI Deadlocks</a></li>
|
cannam@127
|
209 <li><a name="toc-FFTW-MPI-Performance-Tips-1" href="FFTW-MPI-Performance-Tips.html#FFTW-MPI-Performance-Tips">6.10 FFTW MPI Performance Tips</a></li>
|
cannam@127
|
210 <li><a name="toc-Combining-MPI-and-Threads-1" href="Combining-MPI-and-Threads.html#Combining-MPI-and-Threads">6.11 Combining MPI and Threads</a></li>
|
cannam@127
|
211 <li><a name="toc-FFTW-MPI-Reference-1" href="FFTW-MPI-Reference.html#FFTW-MPI-Reference">6.12 FFTW MPI Reference</a>
|
cannam@127
|
212 <ul class="no-bullet">
|
cannam@127
|
213 <li><a name="toc-MPI-Files-and-Data-Types-1" href="MPI-Files-and-Data-Types.html#MPI-Files-and-Data-Types">6.12.1 MPI Files and Data Types</a></li>
|
cannam@127
|
214 <li><a name="toc-MPI-Initialization-1" href="MPI-Initialization.html#MPI-Initialization">6.12.2 MPI Initialization</a></li>
|
cannam@127
|
215 <li><a name="toc-Using-MPI-Plans-1" href="Using-MPI-Plans.html#Using-MPI-Plans">6.12.3 Using MPI Plans</a></li>
|
cannam@127
|
216 <li><a name="toc-MPI-Data-Distribution-Functions-1" href="MPI-Data-Distribution-Functions.html#MPI-Data-Distribution-Functions">6.12.4 MPI Data Distribution Functions</a></li>
|
cannam@127
|
217 <li><a name="toc-MPI-Plan-Creation-1" href="MPI-Plan-Creation.html#MPI-Plan-Creation">6.12.5 MPI Plan Creation</a></li>
|
cannam@127
|
218 <li><a name="toc-MPI-Wisdom-Communication-1" href="MPI-Wisdom-Communication.html#MPI-Wisdom-Communication">6.12.6 MPI Wisdom Communication</a></li>
|
cannam@127
|
219 </ul></li>
|
cannam@127
|
220 <li><a name="toc-FFTW-MPI-Fortran-Interface-1" href="FFTW-MPI-Fortran-Interface.html#FFTW-MPI-Fortran-Interface">6.13 FFTW MPI Fortran Interface</a></li>
|
cannam@127
|
221 </ul></li>
|
cannam@127
|
222 <li><a name="toc-Calling-FFTW-from-Modern-Fortran-1" href="Calling-FFTW-from-Modern-Fortran.html#Calling-FFTW-from-Modern-Fortran">7 Calling FFTW from Modern Fortran</a>
|
cannam@127
|
223 <ul class="no-bullet">
|
cannam@127
|
224 <li><a name="toc-Overview-of-Fortran-interface-1" href="Overview-of-Fortran-interface.html#Overview-of-Fortran-interface">7.1 Overview of Fortran interface</a>
|
cannam@127
|
225 <ul class="no-bullet">
|
cannam@127
|
226 <li><a name="toc-Extended-and-quadruple-precision-in-Fortran-1" href="Extended-and-quadruple-precision-in-Fortran.html#Extended-and-quadruple-precision-in-Fortran">7.1.1 Extended and quadruple precision in Fortran</a></li>
|
cannam@127
|
227 </ul></li>
|
cannam@127
|
228 <li><a name="toc-Reversing-array-dimensions-1" href="Reversing-array-dimensions.html#Reversing-array-dimensions">7.2 Reversing array dimensions</a></li>
|
cannam@127
|
229 <li><a name="toc-FFTW-Fortran-type-reference-1" href="FFTW-Fortran-type-reference.html#FFTW-Fortran-type-reference">7.3 FFTW Fortran type reference</a></li>
|
cannam@127
|
230 <li><a name="toc-Plan-execution-in-Fortran-1" href="Plan-execution-in-Fortran.html#Plan-execution-in-Fortran">7.4 Plan execution in Fortran</a></li>
|
cannam@127
|
231 <li><a name="toc-Allocating-aligned-memory-in-Fortran-1" href="Allocating-aligned-memory-in-Fortran.html#Allocating-aligned-memory-in-Fortran">7.5 Allocating aligned memory in Fortran</a></li>
|
cannam@127
|
232 <li><a name="toc-Accessing-the-wisdom-API-from-Fortran-1" href="Accessing-the-wisdom-API-from-Fortran.html#Accessing-the-wisdom-API-from-Fortran">7.6 Accessing the wisdom API from Fortran</a>
|
cannam@127
|
233 <ul class="no-bullet">
|
cannam@127
|
234 <li><a name="toc-Wisdom-File-Export_002fImport-from-Fortran-1" href="Wisdom-File-Export_002fImport-from-Fortran.html#Wisdom-File-Export_002fImport-from-Fortran">7.6.1 Wisdom File Export/Import from Fortran</a></li>
|
cannam@127
|
235 <li><a name="toc-Wisdom-String-Export_002fImport-from-Fortran-1" href="Wisdom-String-Export_002fImport-from-Fortran.html#Wisdom-String-Export_002fImport-from-Fortran">7.6.2 Wisdom String Export/Import from Fortran</a></li>
|
cannam@127
|
236 <li><a name="toc-Wisdom-Generic-Export_002fImport-from-Fortran-1" href="Wisdom-Generic-Export_002fImport-from-Fortran.html#Wisdom-Generic-Export_002fImport-from-Fortran">7.6.3 Wisdom Generic Export/Import from Fortran</a></li>
|
cannam@127
|
237 </ul></li>
|
cannam@127
|
238 <li><a name="toc-Defining-an-FFTW-module-1" href="Defining-an-FFTW-module.html#Defining-an-FFTW-module">7.7 Defining an FFTW module</a></li>
|
cannam@127
|
239 </ul></li>
|
cannam@127
|
240 <li><a name="toc-Calling-FFTW-from-Legacy-Fortran-1" href="Calling-FFTW-from-Legacy-Fortran.html#Calling-FFTW-from-Legacy-Fortran">8 Calling FFTW from Legacy Fortran</a>
|
cannam@127
|
241 <ul class="no-bullet">
|
cannam@127
|
242 <li><a name="toc-Fortran_002dinterface-routines-1" href="Fortran_002dinterface-routines.html#Fortran_002dinterface-routines">8.1 Fortran-interface routines</a></li>
|
cannam@127
|
243 <li><a name="toc-FFTW-Constants-in-Fortran-1" href="FFTW-Constants-in-Fortran.html#FFTW-Constants-in-Fortran">8.2 FFTW Constants in Fortran</a></li>
|
cannam@127
|
244 <li><a name="toc-FFTW-Execution-in-Fortran-1" href="FFTW-Execution-in-Fortran.html#FFTW-Execution-in-Fortran">8.3 FFTW Execution in Fortran</a></li>
|
cannam@127
|
245 <li><a name="toc-Fortran-Examples-1" href="Fortran-Examples.html#Fortran-Examples">8.4 Fortran Examples</a></li>
|
cannam@127
|
246 <li><a name="toc-Wisdom-of-Fortran_003f-1" href="Wisdom-of-Fortran_003f.html#Wisdom-of-Fortran_003f">8.5 Wisdom of Fortran?</a></li>
|
cannam@127
|
247 </ul></li>
|
cannam@127
|
248 <li><a name="toc-Upgrading-from-FFTW-version-2-1" href="Upgrading-from-FFTW-version-2.html#Upgrading-from-FFTW-version-2">9 Upgrading from FFTW version 2</a></li>
|
cannam@127
|
249 <li><a name="toc-Installation-and-Customization-1" href="Installation-and-Customization.html#Installation-and-Customization">10 Installation and Customization</a>
|
cannam@127
|
250 <ul class="no-bullet">
|
cannam@127
|
251 <li><a name="toc-Installation-on-Unix-1" href="Installation-on-Unix.html#Installation-on-Unix">10.1 Installation on Unix</a></li>
|
cannam@127
|
252 <li><a name="toc-Installation-on-non_002dUnix-systems-1" href="Installation-on-non_002dUnix-systems.html#Installation-on-non_002dUnix-systems">10.2 Installation on non-Unix systems</a></li>
|
cannam@127
|
253 <li><a name="toc-Cycle-Counters-1" href="Cycle-Counters.html#Cycle-Counters">10.3 Cycle Counters</a></li>
|
cannam@127
|
254 <li><a name="toc-Generating-your-own-code-1" href="Generating-your-own-code.html#Generating-your-own-code">10.4 Generating your own code</a></li>
|
cannam@127
|
255 </ul></li>
|
cannam@127
|
256 <li><a name="toc-Acknowledgments-1" href="Acknowledgments.html#Acknowledgments">11 Acknowledgments</a></li>
|
cannam@127
|
257 <li><a name="toc-License-and-Copyright-1" href="License-and-Copyright.html#License-and-Copyright">12 License and Copyright</a></li>
|
cannam@127
|
258 <li><a name="toc-Concept-Index-1" href="Concept-Index.html#Concept-Index">13 Concept Index</a></li>
|
cannam@127
|
259 <li><a name="toc-Library-Index-1" href="Library-Index.html#Library-Index">14 Library Index</a></li>
|
cannam@127
|
260 </ul>
|
cannam@127
|
261 </div>
|
cannam@127
|
262
|
cannam@127
|
263
|
cannam@127
|
264 <a name="Top"></a>
|
cannam@127
|
265 <div class="header">
|
cannam@127
|
266 <p>
|
cannam@127
|
267 Next: <a href="Introduction.html#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="../dir/index.html" accesskey="p" rel="prev">(dir)</a>, Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
|
cannam@127
|
268 </div>
|
cannam@127
|
269 <hr>
|
cannam@127
|
270 <a name="FFTW-User-Manual"></a>
|
cannam@127
|
271 <h1 class="top">FFTW User Manual</h1>
|
cannam@127
|
272 <p>Welcome to FFTW, the Fastest Fourier Transform in the West. FFTW is a
|
cannam@127
|
273 collection of fast C routines to compute the discrete Fourier transform.
|
cannam@127
|
274 This manual documents FFTW version 3.3.5.
|
cannam@127
|
275 </p>
|
cannam@127
|
276 <table class="menu" border="0" cellspacing="0">
|
cannam@127
|
277 <tr><td align="left" valign="top">• <a href="Introduction.html#Introduction" accesskey="1">Introduction</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
278 </td></tr>
|
cannam@127
|
279 <tr><td align="left" valign="top">• <a href="Tutorial.html#Tutorial" accesskey="2">Tutorial</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
280 </td></tr>
|
cannam@127
|
281 <tr><td align="left" valign="top">• <a href="Other-Important-Topics.html#Other-Important-Topics" accesskey="3">Other Important Topics</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
282 </td></tr>
|
cannam@127
|
283 <tr><td align="left" valign="top">• <a href="FFTW-Reference.html#FFTW-Reference" accesskey="4">FFTW Reference</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
284 </td></tr>
|
cannam@127
|
285 <tr><td align="left" valign="top">• <a href="Multi_002dthreaded-FFTW.html#Multi_002dthreaded-FFTW" accesskey="5">Multi-threaded FFTW</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
286 </td></tr>
|
cannam@127
|
287 <tr><td align="left" valign="top">• <a href="Distributed_002dmemory-FFTW-with-MPI.html#Distributed_002dmemory-FFTW-with-MPI" accesskey="6">Distributed-memory FFTW with MPI</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
288 </td></tr>
|
cannam@127
|
289 <tr><td align="left" valign="top">• <a href="Calling-FFTW-from-Modern-Fortran.html#Calling-FFTW-from-Modern-Fortran" accesskey="7">Calling FFTW from Modern Fortran</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
290 </td></tr>
|
cannam@127
|
291 <tr><td align="left" valign="top">• <a href="Calling-FFTW-from-Legacy-Fortran.html#Calling-FFTW-from-Legacy-Fortran" accesskey="8">Calling FFTW from Legacy Fortran</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
292 </td></tr>
|
cannam@127
|
293 <tr><td align="left" valign="top">• <a href="Upgrading-from-FFTW-version-2.html#Upgrading-from-FFTW-version-2" accesskey="9">Upgrading from FFTW version 2</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
294 </td></tr>
|
cannam@127
|
295 <tr><td align="left" valign="top">• <a href="Installation-and-Customization.html#Installation-and-Customization">Installation and Customization</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
296 </td></tr>
|
cannam@127
|
297 <tr><td align="left" valign="top">• <a href="Acknowledgments.html#Acknowledgments">Acknowledgments</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
298 </td></tr>
|
cannam@127
|
299 <tr><td align="left" valign="top">• <a href="License-and-Copyright.html#License-and-Copyright">License and Copyright</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
300 </td></tr>
|
cannam@127
|
301 <tr><td align="left" valign="top">• <a href="Concept-Index.html#Concept-Index">Concept Index</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
302 </td></tr>
|
cannam@127
|
303 <tr><td align="left" valign="top">• <a href="Library-Index.html#Library-Index">Library Index</a>:</td><td> </td><td align="left" valign="top">
|
cannam@127
|
304 </td></tr>
|
cannam@127
|
305 </table>
|
cannam@127
|
306
|
cannam@127
|
307 <hr>
|
cannam@127
|
308 <div class="header">
|
cannam@127
|
309 <p>
|
cannam@127
|
310 Next: <a href="Introduction.html#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="../dir/index.html" accesskey="p" rel="prev">(dir)</a>, Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
|
cannam@127
|
311 </div>
|
cannam@127
|
312
|
cannam@127
|
313
|
cannam@127
|
314
|
cannam@127
|
315 </body>
|
cannam@127
|
316 </html>
|