source: general/genlib/fftw.xml@ 9106fcb

12.0 12.1 kea ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 9106fcb was dc1a45e, checked in by Bruce Dubbs <bdubbs@…>, 17 months ago

Lots of tags

  • Property mode set to 100644
File size: 10.9 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 &lfs113_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 <para condition="html" role="usernotes">
72 User Notes: <ulink url="&blfs-wiki;/fftw"/>
73 </para>
74
75 </sect2>
76
77 <sect2 role="installation">
78 <title>Installation of fftw</title>
79
80 <note>
81 <para>
82 We build fftw three times for different libraries in different
83 numerical precisions: the default double precision floating point, the
84 older 32-bit (single precision) version named float which sacrifices
85 precision for speed, and the long double which offers increased
86 precision at the cost of slower execution.
87 </para>
88 </note>
89
90 <para>
91 The first build is for double precision arithmetic. Install
92 <application>fftw</application> by running the following commands:
93 </para>
94
95<screen><userinput>./configure --prefix=/usr \
96 --enable-shared \
97 --disable-static \
98 --enable-threads \
99 --enable-sse2 \
100 --enable-avx \
101 --enable-avx2 &amp;&amp;
102make</userinput></screen>
103
104 <para>
105 To test the results, issue: <command>make check</command>.
106 On 32-bit systems, the tests can take substantially longer than
107 they would on 64-bit machines.
108 </para>
109
110 <para>
111 Now, as the <systemitem class="username">root</systemitem> user:
112 </para>
113
114<screen role="root"><userinput>make install</userinput></screen>
115
116 <para>
117 Now build single precision:
118 </para>
119
120<screen><userinput>make clean &amp;&amp;
121
122./configure --prefix=/usr \
123 --enable-shared \
124 --disable-static \
125 --enable-threads \
126 --enable-sse2 \
127 --enable-avx \
128 --enable-avx2 \
129 --enable-float &amp;&amp;
130make</userinput></screen>
131
132 <para>
133 As the <systemitem class="username">root</systemitem> user:
134 </para>
135
136<screen role="root"><userinput>make install</userinput></screen>
137
138 <para>
139 Finally, build long double precision:
140 </para>
141
142<screen><userinput>make clean &amp;&amp;
143
144./configure --prefix=/usr \
145 --enable-shared \
146 --disable-static \
147 --enable-threads \
148 --enable-long-double &amp;&amp;
149make</userinput></screen>
150
151 <para>
152 As the <systemitem class="username">root</systemitem> user:
153 </para>
154
155<screen role="root"><userinput>make install</userinput></screen>
156
157 </sect2>
158
159 <sect2 role="commands">
160 <title>Command Explanations</title>
161
162 <para>
163 <parameter>--enable-shared --disable-static</parameter>: Use shared
164 libs instead of static libs.
165 </para>
166
167 <para>
168 <parameter>--enable-threads</parameter>: This enables <filename
169 class="libraryfile"> libfftw3_threads.so</filename> to be compiled.
170 It is used by e.g. the <application>gimp</application> plugin from
171 <ulink url="https://gmic.eu/">G'MIC</ulink>.
172 </para>
173
174 <para>
175 <parameter>--enable-{sse2,avx,avx2}</parameter>: These enables building
176 the optimized routines using SSE2, AVX, and AVX2 instructions. FFTW
177 will check if these routines can be really used on the current CPU when
178 the FFTW library is loaded, so a FFTW build with these routines enabled
179 can still run on a CPU without SSE2, AVX, or AVX512. These options
180 are not compatible with <parameter>--enable-long-double</parameter>.
181 </para>
182
183 <para>
184 <parameter>--enable-float</parameter>: This enables building the library that
185 uses single precision floating point arithmetic. It is faster but less
186 precise than the default double precision library. The library will be
187 called <filename class="libraryfile">libfftw3f.so</filename> needed by
188 <xref linkend="pulseaudio"/>.
189 </para>
190
191 <para>
192 <parameter>--enable-long-double</parameter>: This enables building the
193 library that uses higher precision long-double floating point arithmetic.
194 The library will be called <filename
195 class="libraryfile">libfftw3l.so</filename>.
196 </para>
197
198 <para>
199 <option>--enable-avx512</option>: This enables building the optimized
200 routines using AVX512F instructions. FFTW will check if these routines
201 can be really used on the current CPU when the FFTW library is loaded,
202 so a FFTW build with these routines enabled can still run on a CPU
203 without AVX512F. Use this option if the FFTW build will be used on
204 a CPU with AVX512F. This option is not compatible with
205 <option>--enable-long-double</option>.
206 </para>
207 </sect2>
208
209 <sect2 role="content">
210 <title>Contents</title>
211
212 <segmentedlist>
213 <segtitle>Installed Programs</segtitle>
214 <segtitle>Installed Libraries</segtitle>
215 <segtitle>Installed Directories</segtitle>
216
217 <seglistitem>
218 <seg>
219 fftw-wisdom and fftw-wisdom-to-conf
220 </seg>
221 <seg>
222 libfftw3.so, libfftw3_threads.so, libfftw3f.so,
223 libfftw3f_threads.so, libfftw3l.so and libfftw3l_threads.so
224 </seg>
225 <seg>
226 None
227 </seg>
228 </seglistitem>
229 </segmentedlist>
230
231 <variablelist>
232 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
233 <?dbfo list-presentation="list"?>
234 <?dbhtml list-presentation="table"?>
235
236 <varlistentry id="fftw-wisdom">
237 <term><command>fftw-wisdom</command></term>
238 <listitem>
239 <para>
240 is a utility to generate FFTW wisdom files, which contain saved
241 information about how to optimally compute (Fourier) transforms of
242 various sizes
243 </para>
244 <indexterm zone="fftw fftw-wisdom">
245 <primary sortas="b-fftw-wisdom">fftw-wisdom</primary>
246 </indexterm>
247 </listitem>
248 </varlistentry>
249
250 <varlistentry id="fftw-wisdom-to-conf">
251 <term><command>fftw-wisdom-to-conf</command></term>
252 <listitem>
253 <para>
254 is a utility to generate C configuration routines from FFTW wisdom
255 files, where the latter contain saved information about how to
256 optimally compute (Fourier) transforms of various sizes
257 </para>
258 <indexterm zone="fftw fftw-wisdom-to-conf">
259 <primary sortas="b-fftw-wisdom-to-conf">fftw-wisdom-to-conf</primary>
260 </indexterm>
261 </listitem>
262 </varlistentry>
263
264 <varlistentry id="libfftw3">
265 <term><filename class="libraryfile">libfftw3.so</filename></term>
266 <listitem>
267 <para>
268 is the Fast Fourier Transform library
269 </para>
270 <indexterm zone="fftw libfftw3">
271 <primary sortas="c-libfftw3">libfftw3.so</primary>
272 </indexterm>
273 </listitem>
274 </varlistentry>
275
276 <varlistentry id="libfftw3_threads">
277 <term><filename class="libraryfile">libfftw3_threads.so</filename></term>
278 <listitem>
279 <para>
280 is the threaded Fast Fourier Transform library
281 </para>
282 <indexterm zone="fftw libfftw3_threads">
283 <primary sortas="c-libfftw3_threads">libfftw3_threads.so</primary>
284 </indexterm>
285 </listitem>
286 </varlistentry>
287
288 <varlistentry id="libfftw3f">
289 <term><filename class="libraryfile">libfftw3f.so</filename></term>
290 <listitem>
291 <para>
292 is the single-precision Fast Fourier Transform library, described
293 as <quote>float</quote> for historic reasons
294 </para>
295 <indexterm zone="fftw libfftw3f">
296 <primary sortas="c-libfftw3f">libfftw3f.so</primary>
297 </indexterm>
298 </listitem>
299 </varlistentry>
300
301 <varlistentry id="libfftw3f_threads">
302 <term><filename class="libraryfile">libfftw3f_threads.so</filename></term>
303 <listitem>
304 <para>
305 is the threaded single-precision Fast Fourier Transform library
306 </para>
307 <indexterm zone="fftw libfftw3f_threads">
308 <primary sortas="c-libfftw3f_threads">libfftw3f_threads.so</primary>
309 </indexterm>
310 </listitem>
311 </varlistentry>
312
313 <varlistentry id="libfftw3l">
314 <term><filename class="libraryfile">libfftw3l.so</filename></term>
315 <listitem>
316 <para>
317 is the long double Fast Fourier Transform library
318 </para>
319 <indexterm zone="fftw libfftw3l">
320 <primary sortas="c-libfftw3l">libfftw3l.so</primary>
321 </indexterm>
322 </listitem>
323 </varlistentry>
324
325 <varlistentry id="libfftw3l_threads">
326 <term><filename class="libraryfile">libfftw3l_threads.so</filename></term>
327 <listitem>
328 <para>
329 is the threaded long double Fast Fourier Transform library
330 </para>
331 <indexterm zone="fftw libfftw3l_threads">
332 <primary sortas="c-libfftw3l_threads">libfftw3l_threads.so</primary>
333 </indexterm>
334 </listitem>
335 </varlistentry>
336
337 </variablelist>
338
339 </sect2>
340
341</sect1>
Note: See TracBrowser for help on using the repository browser.