comparison src/fftw-3.3.5/doc/html/Words-of-Wisdom_002dSaving-Plans.html @ 127:7867fa7e1b6b

Current fftw source
author Chris Cannam <cannam@all-day-breakfast.com>
date Tue, 18 Oct 2016 13:40:26 +0100
parents
children
comparison
equal deleted inserted replaced
126:4a7071416412 127:7867fa7e1b6b
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html>
3 <!-- This manual is for FFTW
4 (version 3.3.5, 30 July 2016).
5
6 Copyright (C) 2003 Matteo Frigo.
7
8 Copyright (C) 2003 Massachusetts Institute of Technology.
9
10 Permission is granted to make and distribute verbatim copies of this
11 manual provided the copyright notice and this permission notice are
12 preserved on all copies.
13
14 Permission is granted to copy and distribute modified versions of this
15 manual under the conditions for verbatim copying, provided that the
16 entire resulting derived work is distributed under the terms of a
17 permission notice identical to this one.
18
19 Permission is granted to copy and distribute translations of this manual
20 into another language, under the above conditions for modified versions,
21 except that this permission notice may be stated in a translation
22 approved by the Free Software Foundation. -->
23 <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
24 <head>
25 <title>FFTW 3.3.5: Words of Wisdom-Saving Plans</title>
26
27 <meta name="description" content="FFTW 3.3.5: Words of Wisdom-Saving Plans">
28 <meta name="keywords" content="FFTW 3.3.5: Words of Wisdom-Saving Plans">
29 <meta name="resource-type" content="document">
30 <meta name="distribution" content="global">
31 <meta name="Generator" content="makeinfo">
32 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
33 <link href="index.html#Top" rel="start" title="Top">
34 <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
35 <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
36 <link href="Other-Important-Topics.html#Other-Important-Topics" rel="up" title="Other Important Topics">
37 <link href="Caveats-in-Using-Wisdom.html#Caveats-in-Using-Wisdom" rel="next" title="Caveats in Using Wisdom">
38 <link href="Dynamic-Arrays-in-C_002dThe-Wrong-Way.html#Dynamic-Arrays-in-C_002dThe-Wrong-Way" rel="prev" title="Dynamic Arrays in C-The Wrong Way">
39 <style type="text/css">
40 <!--
41 a.summary-letter {text-decoration: none}
42 blockquote.smallquotation {font-size: smaller}
43 div.display {margin-left: 3.2em}
44 div.example {margin-left: 3.2em}
45 div.indentedblock {margin-left: 3.2em}
46 div.lisp {margin-left: 3.2em}
47 div.smalldisplay {margin-left: 3.2em}
48 div.smallexample {margin-left: 3.2em}
49 div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
50 div.smalllisp {margin-left: 3.2em}
51 kbd {font-style:oblique}
52 pre.display {font-family: inherit}
53 pre.format {font-family: inherit}
54 pre.menu-comment {font-family: serif}
55 pre.menu-preformatted {font-family: serif}
56 pre.smalldisplay {font-family: inherit; font-size: smaller}
57 pre.smallexample {font-size: smaller}
58 pre.smallformat {font-family: inherit; font-size: smaller}
59 pre.smalllisp {font-size: smaller}
60 span.nocodebreak {white-space:nowrap}
61 span.nolinebreak {white-space:nowrap}
62 span.roman {font-family:serif; font-weight:normal}
63 span.sansserif {font-family:sans-serif; font-weight:normal}
64 ul.no-bullet {list-style: none}
65 -->
66 </style>
67
68
69 </head>
70
71 <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
72 <a name="Words-of-Wisdom_002dSaving-Plans"></a>
73 <div class="header">
74 <p>
75 Next: <a href="Caveats-in-Using-Wisdom.html#Caveats-in-Using-Wisdom" accesskey="n" rel="next">Caveats in Using Wisdom</a>, Previous: <a href="Multi_002ddimensional-Array-Format.html#Multi_002ddimensional-Array-Format" accesskey="p" rel="prev">Multi-dimensional Array Format</a>, Up: <a href="Other-Important-Topics.html#Other-Important-Topics" accesskey="u" rel="up">Other Important Topics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
76 </div>
77 <hr>
78 <a name="Words-of-Wisdom_002d_002d_002dSaving-Plans"></a>
79 <h3 class="section">3.3 Words of Wisdom&mdash;Saving Plans</h3>
80 <a name="index-wisdom"></a>
81 <a name="index-saving-plans-to-disk"></a>
82
83 <p>FFTW implements a method for saving plans to disk and restoring them.
84 In fact, what FFTW does is more general than just saving and loading
85 plans. The mechanism is called <em>wisdom</em>. Here, we describe
86 this feature at a high level. See <a href="FFTW-Reference.html#FFTW-Reference">FFTW Reference</a>, for a less casual
87 but more complete discussion of how to use wisdom in FFTW.
88 </p>
89 <p>Plans created with the <code>FFTW_MEASURE</code>, <code>FFTW_PATIENT</code>, or
90 <code>FFTW_EXHAUSTIVE</code> options produce near-optimal FFT performance,
91 but may require a long time to compute because FFTW must measure the
92 runtime of many possible plans and select the best one. This setup is
93 designed for the situations where so many transforms of the same size
94 must be computed that the start-up time is irrelevant. For short
95 initialization times, but slower transforms, we have provided
96 <code>FFTW_ESTIMATE</code>. The <code>wisdom</code> mechanism is a way to get the
97 best of both worlds: you compute a good plan once, save it to
98 disk, and later reload it as many times as necessary. The wisdom
99 mechanism can actually save and reload many plans at once, not just
100 one.
101 <a name="index-FFTW_005fMEASURE-1"></a>
102 <a name="index-FFTW_005fPATIENT-1"></a>
103 <a name="index-FFTW_005fEXHAUSTIVE"></a>
104 <a name="index-FFTW_005fESTIMATE-1"></a>
105 </p>
106
107 <p>Whenever you create a plan, the FFTW planner accumulates wisdom, which
108 is information sufficient to reconstruct the plan. After planning,
109 you can save this information to disk by means of the function:
110 </p><div class="example">
111 <pre class="example">int fftw_export_wisdom_to_filename(const char *filename);
112 </pre></div>
113 <a name="index-fftw_005fexport_005fwisdom_005fto_005ffilename"></a>
114 <p>(This function returns non-zero on success.)
115 </p>
116 <p>The next time you run the program, you can restore the wisdom with
117 <code>fftw_import_wisdom_from_filename</code> (which also returns non-zero on success),
118 and then recreate the plan using the same flags as before.
119 </p><div class="example">
120 <pre class="example">int fftw_import_wisdom_from_filename(const char *filename);
121 </pre></div>
122 <a name="index-fftw_005fimport_005fwisdom_005ffrom_005ffilename"></a>
123
124 <p>Wisdom is automatically used for any size to which it is applicable, as
125 long as the planner flags are not more &ldquo;patient&rdquo; than those with which
126 the wisdom was created. For example, wisdom created with
127 <code>FFTW_MEASURE</code> can be used if you later plan with
128 <code>FFTW_ESTIMATE</code> or <code>FFTW_MEASURE</code>, but not with
129 <code>FFTW_PATIENT</code>.
130 </p>
131 <p>The <code>wisdom</code> is cumulative, and is stored in a global, private
132 data structure managed internally by FFTW. The storage space required
133 is minimal, proportional to the logarithm of the sizes the wisdom was
134 generated from. If memory usage is a concern, however, the wisdom can
135 be forgotten and its associated memory freed by calling:
136 </p><div class="example">
137 <pre class="example">void fftw_forget_wisdom(void);
138 </pre></div>
139 <a name="index-fftw_005fforget_005fwisdom"></a>
140
141 <p>Wisdom can be exported to a file, a string, or any other medium.
142 For details, see <a href="Wisdom.html#Wisdom">Wisdom</a>.
143 </p>
144 <hr>
145 <div class="header">
146 <p>
147 Next: <a href="Caveats-in-Using-Wisdom.html#Caveats-in-Using-Wisdom" accesskey="n" rel="next">Caveats in Using Wisdom</a>, Previous: <a href="Multi_002ddimensional-Array-Format.html#Multi_002ddimensional-Array-Format" accesskey="p" rel="prev">Multi-dimensional Array Format</a>, Up: <a href="Other-Important-Topics.html#Other-Important-Topics" accesskey="u" rel="up">Other Important Topics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
148 </div>
149
150
151
152 </body>
153 </html>