Mercurial > hg > sv-dependency-builds
diff src/fftw-3.3.5/doc/fftw3.texi @ 42:2cd0e3b3e1fd
Current fftw source
author | Chris Cannam |
---|---|
date | Tue, 18 Oct 2016 13:40:26 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/fftw-3.3.5/doc/fftw3.texi Tue Oct 18 13:40:26 2016 +0100 @@ -0,0 +1,278 @@ +\input texinfo @c -*-texinfo-*- +@c Update by C-x C-e on: (texinfo-multiple-files-update "fftw3.texi" nil t) +@setfilename fftw3.info +@include version.texi +@settitle FFTW @value{VERSION} +@setchapternewpage odd +@c define constant index (ct) +@defcodeindex ct +@syncodeindex ct fn +@syncodeindex vr fn +@syncodeindex pg fn +@syncodeindex tp fn +@c define foreign function index (ff) +@defcodeindex ff +@syncodeindex ff cp +@c define foreign constant index (fc) +@defcodeindex fc +@syncodeindex fc cp +@c define foreign program index (fp) +@defcodeindex fp +@syncodeindex fp cp +@comment %**end of header + +@iftex +@paragraphindent 0 +@parskip=@medskipamount +@end iftex + +@c +@c The following macros are coded in a weird way: + +@c @macro FOO +@c @noindent +@c <STUFF> +@c @refill +@c @end macro + +@c The @noindent/@refill stuff is not necessary in texinfo up to version +@c 4, but it is a hack necessary to make texinfo-5 work. + +@c Texinfo has been stable for the first 15 years of FFTW's history. +@c Then some genius, with too much time in his hands and on a mission to +@c deliver the world from the evil of the C language, decided to rewrite +@c makeinfo in Perl, the old C version of makeinfo being, as I said, +@c evil. The official excuse for the rewrite was that now I can have my +@c manual in XML format, as if XML were a feature. + +@c The result of this stroke of genius is that texinfo-5 has different +@c rules for macro expansion than texinfo-4 does, specifically regarding +@c whether or not spaces after a macro are ignored. Texinfo-4 had weird +@c rules, but at least they were constant and internally more or less +@c consistent. Texinfo-5 has different rules, and even worse the rules +@c in texinfo-5 are inconsistent between the TeX and HTML output +@c processors. This situation makes it almost impossible for us to +@c produce a manual that works with both texinfo 4 and 5 in all modes +@c (TeX, info, and html). The @noindent/@refill hack is my best shot at +@c patching this situation. + +@c "@noindent" has two effects: First, it makes texinfo-5 believe that +@c the next "@ifinfo" is on a new line, otherwise texinfo-5 complains +@c that it is not (even though it obviously is). Second, "@noindent" is +@c a macro that eats extra space, and we want this effect because somehow +@c macro expansion in texinfo-5 inserts extra spaces that were not there +@c in texinfo-4. + +@c "@refill" stops texinfo-5 from interpreting the rest of the line after +@c a macro invocation as an argument to "@end tex". For example, in +@c "FFTW uses @Onlogn algorithms", somehow texinfo-5 thinks that +@c "algorithms" is an argument to "@end tex". "@noindent" would have the +@c same effect (as would any other macro invocation, I think), but, +@c unlike "@noindent", "@refill" does not eat spaces and does not scan +@c the rest of the input file for macro arguments. However, "@refill" is +@c deemed "obsolete" in the texinfo-5 source code, so expect this to +@c break at some point. + +@c This situation is wholly unsatisfactory, and the GNU project is +@c obviously out of control. If this nonsense persists, we will abandon +@c texinfo and produce a latex-only version of the manual. + + +@macro Onlogn +@noindent +@ifinfo +O(n log n) +@end ifinfo +@html +<i>O</i>(<i>n</i> log <i>n</i>) +@end html +@tex +$O(n \\log n)$ +@end tex +@refill +@end macro + +@macro ndims +@noindent +@ifinfo +n[0] x n[1] x n[2] x ... x n[d-1] +@end ifinfo +@html +n<sub>0</sub> × n<sub>1</sub> × n<sub>2</sub> × … × n<sub>d-1</sub> +@end html +@tex +$n_0 \\times n_1 \\times n_2 \\times \\cdots \\times n_{d-1}$ +@end tex +@refill +@end macro + +@macro ndimshalf +@noindent +@ifinfo +n[0] x n[1] x n[2] x ... x (n[d-1]/2 + 1) +@end ifinfo +@html +n<sub>0</sub> × n<sub>1</sub> × n<sub>2</sub> × … × (n<sub>d-1</sub>/2 + 1) +@end html +@tex +$n_0 \\times n_1 \\times n_2 \\times \\cdots \\times (n_{d-1}/2 + 1)$ +@end tex +@refill +@end macro + +@macro ndimspad +@noindent +@ifinfo +n[0] x n[1] x n[2] x ... x [2 (n[d-1]/2 + 1)] +@end ifinfo +@html +n<sub>0</sub> × n<sub>1</sub> × n<sub>2</sub> × … × [2 (n<sub>d-1</sub>/2 + 1)] +@end html +@tex +$n_0 \\times n_1 \\times n_2 \\times \\cdots \\times [2(n_{d-1}/2 + 1)]$ +@end tex +@refill +@end macro + +@macro twodims{d1, d2} +@noindent +@ifinfo +\d1\ x \d2\ +@end ifinfo +@html +\d1\ × \d2\ +@end html +@tex +$\d1\ \\times \d2\$ +@end tex +@refill +@end macro + +@macro threedims{d1, d2, d3} +@noindent +@ifinfo +\d1\ x \d2\ x \d3\ +@end ifinfo +@html +\d1\ × \d2\ × \d3\ +@end html +@tex +$\d1\ \\times \d2\ \\times \d3\$ +@end tex +@refill +@end macro + +@macro dimk{k} +@noindent +@ifinfo +n[\k\] +@end ifinfo +@html +n<sub>\k\</sub> +@end html +@tex +$n_\k\$ +@end tex +@refill +@end macro + + +@macro ndimstrans +@noindent +@ifinfo +n[1] x n[0] x n[2] x ... x n[d-1] +@end ifinfo +@html +n<sub>1</sub> × n<sub>0</sub> × n<sub>2</sub> ×…× n<sub>d-1</sub> +@end html +@tex +$n_1 \\times n_0 \\times n_2 \\times \\cdots \\times n_{d-1}$ +@end tex +@refill +@end macro + +@copying +This manual is for FFTW +(version @value{VERSION}, @value{UPDATED}). + +Copyright @copyright{} 2003 Matteo Frigo. + +Copyright @copyright{} 2003 Massachusetts Institute of Technology. + +@quotation +Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation +approved by the Free Software Foundation. +@end quotation +@end copying + +@dircategory Development +@direntry +* fftw3: (fftw3). FFTW User's Manual. +@end direntry + +@titlepage +@title FFTW +@subtitle for version @value{VERSION}, @value{UPDATED} +@author Matteo Frigo +@author Steven G. Johnson +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@contents + +@ifnottex +@node Top, Introduction, (dir), (dir) +@top 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 @value{VERSION}. +@end ifnottex + +@menu +* Introduction:: +* Tutorial:: +* Other Important Topics:: +* FFTW Reference:: +* Multi-threaded FFTW:: +* Distributed-memory FFTW with MPI:: +* Calling FFTW from Modern Fortran:: +* Calling FFTW from Legacy Fortran:: +* Upgrading from FFTW version 2:: +* Installation and Customization:: +* Acknowledgments:: +* License and Copyright:: +* Concept Index:: +* Library Index:: +@end menu + +@c ************************************************************ +@include intro.texi +@include tutorial.texi +@include other.texi +@include reference.texi +@include threads.texi +@include mpi.texi +@include modern-fortran.texi +@include legacy-fortran.texi +@include upgrading.texi +@include install.texi +@include acknowledgements.texi +@include license.texi +@include cindex.texi +@include findex.texi +@c ************************************************************ + +@bye