source: general/genlib/fftw.xml@ fa559f1

12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since fa559f1 was 6aa631b, checked in by Bruce Dubbs <bdubbs@…>, 10 months ago

Tag most of the remaining general libraries.

  • Property mode set to 100644
File size: 10.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY fftw-download-http "https://www.fftw.org/fftw-&fftw-version;.tar.gz">
8 <!ENTITY fftw-download-ftp "ftp://ftp.fftw.org/pub/fftw/fftw-&fftw-version;.tar.gz ">
9 <!ENTITY fftw-md5sum "8ccbf6a5ea78a16dbc3e1306e234cc5c">
10 <!ENTITY fftw-size "4.0 MB">
11 <!ENTITY fftw-buildsize "59 MB">
12 <!ENTITY fftw-time "1.6 SBU (add 3.4 SBU for tests, both using parallelism=4)">
13]>
14
15<sect1 id="fftw" xreflabel="fftw-&fftw-version;">
16 <?dbhtml filename="fftw.html"?>
17
18
19 <title>fftw-&fftw-version;</title>
20
21 <indexterm zone="fftw">
22 <primary sortas="a-fftw">fftw</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to fftw</title>
27
28 <para>
29 FFTW is a C subroutine library for computing the discrete Fourier
30 transform (DFT) in one or more dimensions, of arbitrary input size, and
31 of both real and complex data (as well as of even/odd data, i.e. the
32 discrete cosine/sine transforms or DCT/DST).
33 </para>
34
35 &lfs120_checked;
36
37 <bridgehead renderas="sect3">Package Information</bridgehead>
38 <itemizedlist spacing="compact">
39 <listitem>
40 <para>
41 Download (HTTP): <ulink url="&fftw-download-http;"/>
42 </para>
43 </listitem>
44 <listitem>
45 <para>
46 Download (FTP): <ulink url="&fftw-download-ftp;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download MD5 sum: &fftw-md5sum;
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download size: &fftw-size;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Estimated disk space required: &fftw-buildsize;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated build time: &fftw-time;
67 </para>
68 </listitem>
69 </itemizedlist>
70
71
72 </sect2>
73
74 <sect2 role="installation">
75 <title>Installation of fftw</title>
76
77 <note>
78 <para>
79 We build fftw three times for different libraries in different
80 numerical precisions: the default double precision floating point, the
81 older 32-bit (single precision) version named float which sacrifices
82 precision for speed, and the long double which offers increased
83 precision at the cost of slower execution.
84 </para>
85 </note>
86
87 <para>
88 The first build is for double precision arithmetic. Install
89 <application>fftw</application> by running the following commands:
90 </para>
91
92<screen><userinput>./configure --prefix=/usr \
93 --enable-shared \
94 --disable-static \
95 --enable-threads \
96 --enable-sse2 \
97 --enable-avx \
98 --enable-avx2 &amp;&amp;
99make</userinput></screen>
100
101 <para>
102 To test the results, issue: <command>make check</command>.
103 On 32-bit systems, the tests can take substantially longer than
104 they would on 64-bit machines.
105 </para>
106
107 <para>
108 Now, as the <systemitem class="username">root</systemitem> user:
109 </para>
110
111<screen role="root"><userinput>make install</userinput></screen>
112
113 <para>
114 Now build single precision:
115 </para>
116
117<screen><userinput>make clean &amp;&amp;
118
119./configure --prefix=/usr \
120 --enable-shared \
121 --disable-static \
122 --enable-threads \
123 --enable-sse2 \
124 --enable-avx \
125 --enable-avx2 \
126 --enable-float &amp;&amp;
127make</userinput></screen>
128
129 <para>
130 As the <systemitem class="username">root</systemitem> user:
131 </para>
132
133<screen role="root"><userinput>make install</userinput></screen>
134
135 <para>
136 Finally, build long double precision:
137 </para>
138
139<screen><userinput>make clean &amp;&amp;
140
141./configure --prefix=/usr \
142 --enable-shared \
143 --disable-static \
144 --enable-threads \
145 --enable-long-double &amp;&amp;
146make</userinput></screen>
147
148 <para>
149 As the <systemitem class="username">root</systemitem> user:
150 </para>
151
152<screen role="root"><userinput>make install</userinput></screen>
153
154 </sect2>
155
156 <sect2 role="commands">
157 <title>Command Explanations</title>
158
159 <para>
160 <parameter>--enable-shared --disable-static</parameter>: Use shared
161 libs instead of static libs.
162 </para>
163
164 <para>
165 <parameter>--enable-threads</parameter>: This enables <filename
166 class="libraryfile"> libfftw3_threads.so</filename> to be compiled.
167 It is used by e.g. the <application>gimp</application> plugin from
168 <ulink url="https://gmic.eu/">G'MIC</ulink>.
169 </para>
170
171 <para>
172 <parameter>--enable-{sse2,avx,avx2}</parameter>: These enables building
173 the optimized routines using SSE2, AVX, and AVX2 instructions. FFTW
174 will check if these routines can be really used on the current CPU when
175 the FFTW library is loaded, so a FFTW build with these routines enabled
176 can still run on a CPU without SSE2, AVX, or AVX512. These options
177 are not compatible with <parameter>--enable-long-double</parameter>.
178 </para>
179
180 <para>
181 <parameter>--enable-float</parameter>: This enables building the library that
182 uses single precision floating point arithmetic. It is faster but less
183 precise than the default double precision library. The library will be
184 called <filename class="libraryfile">libfftw3f.so</filename> needed by
185 <xref linkend="pulseaudio"/>.
186 </para>
187
188 <para>
189 <parameter>--enable-long-double</parameter>: This enables building the
190 library that uses higher precision long-double floating point arithmetic.
191 The library will be called <filename
192 class="libraryfile">libfftw3l.so</filename>.
193 </para>
194
195 <para>
196 <option>--enable-avx512</option>: This enables building the optimized
197 routines using AVX512F instructions. FFTW will check if these routines
198 can be really used on the current CPU when the FFTW library is loaded,
199 so a FFTW build with these routines enabled can still run on a CPU
200 without AVX512F. Use this option if the FFTW build will be used on
201 a CPU with AVX512F. This option is not compatible with
202 <option>--enable-long-double</option>.
203 </para>
204 </sect2>
205
206 <sect2 role="content">
207 <title>Contents</title>
208
209 <segmentedlist>
210 <segtitle>Installed Programs</segtitle>
211 <segtitle>Installed Libraries</segtitle>
212 <segtitle>Installed Directories</segtitle>
213
214 <seglistitem>
215 <seg>
216 fftw-wisdom and fftw-wisdom-to-conf
217 </seg>
218 <seg>
219 libfftw3.so, libfftw3_threads.so, libfftw3f.so,
220 libfftw3f_threads.so, libfftw3l.so and libfftw3l_threads.so
221 </seg>
222 <seg>
223 None
224 </seg>
225 </seglistitem>
226 </segmentedlist>
227
228 <variablelist>
229 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
230 <?dbfo list-presentation="list"?>
231 <?dbhtml list-presentation="table"?>
232
233 <varlistentry id="fftw-wisdom">
234 <term><command>fftw-wisdom</command></term>
235 <listitem>
236 <para>
237 is a utility to generate FFTW wisdom files, which contain saved
238 information about how to optimally compute (Fourier) transforms of
239 various sizes
240 </para>
241 <indexterm zone="fftw fftw-wisdom">
242 <primary sortas="b-fftw-wisdom">fftw-wisdom</primary>
243 </indexterm>
244 </listitem>
245 </varlistentry>
246
247 <varlistentry id="fftw-wisdom-to-conf">
248 <term><command>fftw-wisdom-to-conf</command></term>
249 <listitem>
250 <para>
251 is a utility to generate C configuration routines from FFTW wisdom
252 files, where the latter contain saved information about how to
253 optimally compute (Fourier) transforms of various sizes
254 </para>
255 <indexterm zone="fftw fftw-wisdom-to-conf">
256 <primary sortas="b-fftw-wisdom-to-conf">fftw-wisdom-to-conf</primary>
257 </indexterm>
258 </listitem>
259 </varlistentry>
260
261 <varlistentry id="libfftw3">
262 <term><filename class="libraryfile">libfftw3.so</filename></term>
263 <listitem>
264 <para>
265 is the Fast Fourier Transform library
266 </para>
267 <indexterm zone="fftw libfftw3">
268 <primary sortas="c-libfftw3">libfftw3.so</primary>
269 </indexterm>
270 </listitem>
271 </varlistentry>
272
273 <varlistentry id="libfftw3_threads">
274 <term><filename class="libraryfile">libfftw3_threads.so</filename></term>
275 <listitem>
276 <para>
277 is the threaded Fast Fourier Transform library
278 </para>
279 <indexterm zone="fftw libfftw3_threads">
280 <primary sortas="c-libfftw3_threads">libfftw3_threads.so</primary>
281 </indexterm>
282 </listitem>
283 </varlistentry>
284
285 <varlistentry id="libfftw3f">
286 <term><filename class="libraryfile">libfftw3f.so</filename></term>
287 <listitem>
288 <para>
289 is the single-precision Fast Fourier Transform library, described
290 as <quote>float</quote> for historic reasons
291 </para>
292 <indexterm zone="fftw libfftw3f">
293 <primary sortas="c-libfftw3f">libfftw3f.so</primary>
294 </indexterm>
295 </listitem>
296 </varlistentry>
297
298 <varlistentry id="libfftw3f_threads">
299 <term><filename class="libraryfile">libfftw3f_threads.so</filename></term>
300 <listitem>
301 <para>
302 is the threaded single-precision Fast Fourier Transform library
303 </para>
304 <indexterm zone="fftw libfftw3f_threads">
305 <primary sortas="c-libfftw3f_threads">libfftw3f_threads.so</primary>
306 </indexterm>
307 </listitem>
308 </varlistentry>
309
310 <varlistentry id="libfftw3l">
311 <term><filename class="libraryfile">libfftw3l.so</filename></term>
312 <listitem>
313 <para>
314 is the long double Fast Fourier Transform library
315 </para>
316 <indexterm zone="fftw libfftw3l">
317 <primary sortas="c-libfftw3l">libfftw3l.so</primary>
318 </indexterm>
319 </listitem>
320 </varlistentry>
321
322 <varlistentry id="libfftw3l_threads">
323 <term><filename class="libraryfile">libfftw3l_threads.so</filename></term>
324 <listitem>
325 <para>
326 is the threaded long double Fast Fourier Transform library
327 </para>
328 <indexterm zone="fftw libfftw3l_threads">
329 <primary sortas="c-libfftw3l_threads">libfftw3l_threads.so</primary>
330 </indexterm>
331 </listitem>
332 </varlistentry>
333
334 </variablelist>
335
336 </sect2>
337
338</sect1>
Note: See TracBrowser for help on using the repository browser.