cannam@95: \input texinfo @c -*-texinfo-*- cannam@95: @c Update by C-x C-e on: (texinfo-multiple-files-update "fftw3.texi" nil t) cannam@95: @setfilename fftw3.info cannam@95: @include version.texi cannam@95: @settitle FFTW @value{VERSION} cannam@95: @setchapternewpage odd cannam@95: @c define constant index (ct) cannam@95: @defcodeindex ct cannam@95: @syncodeindex ct fn cannam@95: @syncodeindex vr fn cannam@95: @syncodeindex pg fn cannam@95: @syncodeindex tp fn cannam@95: @c define foreign function index (ff) cannam@95: @defcodeindex ff cannam@95: @syncodeindex ff cp cannam@95: @c define foreign constant index (fc) cannam@95: @defcodeindex fc cannam@95: @syncodeindex fc cp cannam@95: @c define foreign program index (fp) cannam@95: @defcodeindex fp cannam@95: @syncodeindex fp cp cannam@95: @comment %**end of header cannam@95: cannam@95: @iftex cannam@95: @paragraphindent 0 cannam@95: @parskip=@medskipamount cannam@95: @end iftex cannam@95: cannam@95: @macro Onlogn cannam@95: @ifinfo cannam@95: O(n log n) cannam@95: @end ifinfo cannam@95: @html cannam@95: O(n log n) cannam@95: @end html cannam@95: @tex cannam@95: $O(n \\log n)$ cannam@95: @end tex cannam@95: @end macro cannam@95: cannam@95: @macro ndims cannam@95: @ifinfo cannam@95: n[0] x n[1] x n[2] x ... x n[d-1] cannam@95: @end ifinfo cannam@95: @html cannam@95: n0 × n1 × n2 × … × nd-1 cannam@95: @end html cannam@95: @tex cannam@95: $n_0 \\times n_1 \\times n_2 \\times \\cdots \\times n_{d-1}$ cannam@95: @end tex cannam@95: @end macro cannam@95: cannam@95: @macro ndimshalf cannam@95: @ifinfo cannam@95: n[0] x n[1] x n[2] x ... x (n[d-1]/2 + 1) cannam@95: @end ifinfo cannam@95: @html cannam@95: n0 × n1 × n2 × … × (nd-1/2 + 1) cannam@95: @end html cannam@95: @tex cannam@95: $n_0 \\times n_1 \\times n_2 \\times \\cdots \\times (n_{d-1}/2 + 1)$ cannam@95: @end tex cannam@95: @end macro cannam@95: cannam@95: @macro ndimspad cannam@95: @ifinfo cannam@95: n[0] x n[1] x n[2] x ... x [2 (n[d-1]/2 + 1)] cannam@95: @end ifinfo cannam@95: @html cannam@95: n0 × n1 × n2 × … × [2 (nd-1/2 + 1)] cannam@95: @end html cannam@95: @tex cannam@95: $n_0 \\times n_1 \\times n_2 \\times \\cdots \\times [2(n_{d-1}/2 + 1)]$ cannam@95: @end tex cannam@95: @end macro cannam@95: cannam@95: @macro twodims{d1, d2} cannam@95: @ifinfo cannam@95: \d1\ x \d2\ cannam@95: @end ifinfo cannam@95: @html cannam@95: \d1\ × \d2\ cannam@95: @end html cannam@95: @tex cannam@95: $\d1\ \\times \d2\$ cannam@95: @end tex cannam@95: @end macro cannam@95: cannam@95: @macro threedims{d1, d2, d3} cannam@95: @ifinfo cannam@95: \d1\ x \d2\ x \d3\ cannam@95: @end ifinfo cannam@95: @html cannam@95: \d1\ × \d2\ × \d3\ cannam@95: @end html cannam@95: @tex cannam@95: $\d1\ \\times \d2\ \\times \d3\$ cannam@95: @end tex cannam@95: @end macro cannam@95: cannam@95: @macro dimk{k} cannam@95: @ifinfo cannam@95: n[\k\] cannam@95: @end ifinfo cannam@95: @html cannam@95: n\k\ cannam@95: @end html cannam@95: @tex cannam@95: $n_\k\$ cannam@95: @end tex cannam@95: @end macro cannam@95: cannam@95: cannam@95: @macro ndimstrans cannam@95: @ifinfo cannam@95: n[1] x n[0] x n[2] x ... x n[d-1] cannam@95: @end ifinfo cannam@95: @html cannam@95: n1 × n0 × n2 ×…× nd-1 cannam@95: @end html cannam@95: @tex cannam@95: $n_1 \\times n_0 \\times n_2 \\times \\cdots \\times n_{d-1}$ cannam@95: @end tex cannam@95: @end macro cannam@95: cannam@95: @copying cannam@95: This manual is for FFTW cannam@95: (version @value{VERSION}, @value{UPDATED}). cannam@95: cannam@95: Copyright @copyright{} 2003 Matteo Frigo. cannam@95: cannam@95: Copyright @copyright{} 2003 Massachusetts Institute of Technology. cannam@95: cannam@95: @quotation cannam@95: Permission is granted to make and distribute verbatim copies of this cannam@95: manual provided the copyright notice and this permission notice are cannam@95: preserved on all copies. cannam@95: cannam@95: Permission is granted to copy and distribute modified versions of this cannam@95: manual under the conditions for verbatim copying, provided that the cannam@95: entire resulting derived work is distributed under the terms of a cannam@95: permission notice identical to this one. cannam@95: cannam@95: Permission is granted to copy and distribute translations of this manual cannam@95: into another language, under the above conditions for modified versions, cannam@95: except that this permission notice may be stated in a translation cannam@95: approved by the Free Software Foundation. cannam@95: @end quotation cannam@95: @end copying cannam@95: cannam@95: @dircategory Texinfo documentation system cannam@95: @direntry cannam@95: * fftw3: (fftw3). FFTW User's Manual. cannam@95: @end direntry cannam@95: cannam@95: @titlepage cannam@95: @title FFTW cannam@95: @subtitle for version @value{VERSION}, @value{UPDATED} cannam@95: @author{Matteo Frigo} cannam@95: @author{Steven G. Johnson} cannam@95: @page cannam@95: @vskip 0pt plus 1filll cannam@95: @insertcopying cannam@95: @end titlepage cannam@95: cannam@95: @contents cannam@95: cannam@95: @ifnottex cannam@95: @node Top, Introduction, (dir), (dir) cannam@95: @top FFTW User Manual cannam@95: Welcome to FFTW, the Fastest Fourier Transform in the West. FFTW is a cannam@95: collection of fast C routines to compute the discrete Fourier transform. cannam@95: This manual documents FFTW version @value{VERSION}. cannam@95: @end ifnottex cannam@95: cannam@95: @menu cannam@95: * Introduction:: cannam@95: * Tutorial:: cannam@95: * Other Important Topics:: cannam@95: * FFTW Reference:: cannam@95: * Multi-threaded FFTW:: cannam@95: * Distributed-memory FFTW with MPI:: cannam@95: * Calling FFTW from Modern Fortran:: cannam@95: * Calling FFTW from Legacy Fortran:: cannam@95: * Upgrading from FFTW version 2:: cannam@95: * Installation and Customization:: cannam@95: * Acknowledgments:: cannam@95: * License and Copyright:: cannam@95: * Concept Index:: cannam@95: * Library Index:: cannam@95: @end menu cannam@95: cannam@95: @c ************************************************************ cannam@95: @include intro.texi cannam@95: @include tutorial.texi cannam@95: @include other.texi cannam@95: @include reference.texi cannam@95: @include threads.texi cannam@95: @include mpi.texi cannam@95: @include modern-fortran.texi cannam@95: @include legacy-fortran.texi cannam@95: @include upgrading.texi cannam@95: @include install.texi cannam@95: @include acknowledgements.texi cannam@95: @include license.texi cannam@95: @include cindex.texi cannam@95: @include findex.texi cannam@95: @c ************************************************************ cannam@95: cannam@95: @bye