Difference between revisions of "FFTW"

From CBLFS
Jump to navigationJump to search
(Added page.)
 
m (renamend --with-openmp to --enable-openmp)
 
(12 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
|-
 
|-
 
!Download Source:
 
!Download Source:
| ftp://ftp.fftw.org/pub/fftw/fftw-3.1.2.tar.gz
+
| ftp://ftp.fftw.org/pub/fftw/fftw-{{FFTW-Version}}.tar.gz
 
|}
 
|}
  
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions.  The name, "FFTW," stands for "Fastest Fourier Transform in the West."  FFTW was developed at MIT, which is in the east.
+
----
 +
 
 +
{{Package-Introduction|FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions.  The name, "FFTW," stands for "Fastest Fourier Transform in the West."  FFTW was developed at MIT, which is in the east. [[DJBFFT]] is an alternative that claims to be faster.|http://www.fftw.org/}}
 +
 
 +
== Dependencies ==
 +
 
 +
=== Optional ===
 +
 
 +
* [[Objective Caml]]
 +
* [[OpenMPI]] is required if passing the <i>--enable-openmp:</i> switch to the configure script.
 +
 
 +
== Configuration Information ==
 +
 
 +
Some options that you may wish to pass to the configure script.
 +
 
 +
{|style="text-align: left"
 +
|-valign=top
 +
|<i>--enable-single:</i> compile FFTW in single precision.
 +
|-valign=top
 +
|<i>--enable-long-double:</i> compile FFTW in long-double precision.
 +
|-valign=top
 +
|<i>--enable-k7:</i> enable AMD k7 optimizations, including 3dNow!
 +
|-valign=top
 +
|<i>--enable-sse:</i> enable SSE optimizations.
 +
|-valign=top
 +
|<i>--enable-sse2:</i> enable SSE2 optimizations.
 +
|-valign=top
 +
|<i>--disable-fortran:</i> don't include FORTRAN callable wrappers.
 +
|-valign=top
 +
|<i>--enable-openmp:</i> use OpenMP directives instead of a threads library.
 +
|}
 +
 
 +
{{Note|The default is to build a double precision library.  Generally one would build fftw three times; add the --enable-single and --enable-long-double options to the configuration for subsequent builds.  This will result in libfft3, libfftw3f, and libfftw3l for single, double, and long-double libraries.}}
  
 
== Non-Multilib ==
 
== Non-Multilib ==
Line 11: Line 43:
 
Compile the package:
 
Compile the package:
  
    ./configure --prefix=/opt/gnu --enable-k7 –enable-sse2 &&
+
./configure --prefix=/usr --enable-shared --enable-threads &&
    make
+
make
 +
 
 +
Install the package:
 +
 
 +
make install
 +
 
 +
Build and install the info pages for FFTW:
 +
 
 +
make install-info
 +
 
 +
Install the PDF documentation for FFTW:
  
There are several options that can be passed to the configure script to optimize the resulting build. Execute ./configure --help to see these additional options.
+
  install -v -m755 -d /usr/share/doc/FFTW-{{FFTW-Version}} &&
 +
cp -v doc/fftw3.pdf /usr/share/doc/FFTW-{{FFTW-Version}}
  
Install the package:
+
Install the html documentation for FFTW:
  
    make install
+
install -v -m755 -d /usr/share/doc/FFTW-{{FFTW-Version}}/html &&
 +
cp -v doc/html/*.html /usr/share/doc/FFTW-{{FFTW-Version}}/html
  
 
== Multilib ==
 
== Multilib ==
Line 26: Line 70:
 
Compile the package:
 
Compile the package:
  
    CC="gcc ${BUILD32}" ./configure --prefix=/opt/scimath --libdir=/opt/scimath/lib \
+
CC="gcc ${BUILD32} -fPIC" CXX="g++ ${BUILD32} -fPIC" \
    --enable-k7 –enable-sse2 &&
+
./configure --prefix=/usr --enable-shared --enable-threads &&
    make
+
make
 
 
There are several options that can be passed to the configure script to optimize the resulting build.  Execute ./configure --help to see these additional options.
 
  
 
Install the package:
 
Install the package:
  
    make install
+
make install
  
 
=== N32 ===
 
=== N32 ===
Line 40: Line 82:
 
Compile the package:
 
Compile the package:
  
Install the package:
+
CC="gcc ${BUILDN32} -fPIC" CXX="g++ ${BUILDN32} -fPIC" \
 +
./configure --prefix=/usr --libdir=/usr/lib32 --enable-shared --enable-threads &&
 +
make
 +
 
 +
Install the package
 +
 
 +
make install
  
 
=== 64Bit ===
 
=== 64Bit ===
Line 46: Line 94:
 
Compile the package:
 
Compile the package:
  
    CC="gcc ${BUILD64}" ./configure --prefix=/opt/scimath --libdir=/opt/scimath/lib64 \
+
CC="gcc ${BUILD64} -fPIC" CXX="g++ ${BUILD64} -fPIC" \
    --enable-k7 –enable-sse2 &&
+
./configure --prefix=/usr --libdir=/usr/lib64 --enable-shared --enable-threads &&
    make
+
make
 +
 
 +
Install the package:
 +
 
 +
make install
 +
 
 +
Build and install the info pages for FFTW:
 +
 
 +
make install-info
 +
 
 +
Install the PDF documentation for FFTW:
 +
 
 +
install -v -m755 -d /usr/share/doc/FFTW-{{FFTW-Version}} &&
 +
cp -v doc/fftw3.pdf /usr/share/doc/FFTW-{{FFTW-Version}}
 +
 
 +
Install the html documentation for FFTW:
 +
 
 +
install -v -m755 -d /usr/share/doc/FFTW-{{FFTW-Version}}/html &&
 +
cp -v doc/html/*.html /usr/share/doc/FFTW-{{FFTW-Version}}/html
  
There are several options that can be passed to the configure script to optimize the resulting build.  Execute ./configure --help to see these additional options.
+
= Contents =
  
Install the package:
+
{|style="text-align: left"
 +
|-valign="top"
 +
!Installed Directories:
 +
|None
 +
|-valign="top"
 +
!Installed Programs:
 +
|fftwl-wisdom, fftw-wisdom-to-conf
 +
|-valign="top"
 +
!Installed Libraries:
 +
|libfftw3l.so, libfftw3l.la, libfftw3l.a
 +
|-valign="top"
 +
!Symlinks:
 +
|None
 +
|}
  
    make install
+
== Short Description ==
  
== Contents ==
+
{| style="text-align: left
 +
|-valign="top"
 +
!fftwl-wisdom:
 +
|Creates wisdom (pre-planned/optimized transforms) for specified sizes, writing wisdom to stdout or file.
 +
|-valign="top"
 +
!fftw-wisdom-to-conf:
 +
|Converts wisdom (stdin) to C configuration routine (stdout).
 +
|}
  
* Installed Programs: /opt/scimath/bin/fftw-wisdom, /opt/scimath/bin/fftw-wisdom-to-conf
+
[[Category:Science_Engineering]]
* Installed Libraries: /opt/scimath/lib/libfftw3.{la,a}
 

Latest revision as of 07:08, 3 November 2010

Download Source: ftp://ftp.fftw.org/pub/fftw/fftw-3.2.2.tar.gz

Introduction to FFTW

FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions. The name, "FFTW," stands for "Fastest Fourier Transform in the West." FFTW was developed at MIT, which is in the east. DJBFFT is an alternative that claims to be faster.

Project Homepage: http://www.fftw.org/

Dependencies

Optional

Configuration Information

Some options that you may wish to pass to the configure script.

--enable-single: compile FFTW in single precision.
--enable-long-double: compile FFTW in long-double precision.
--enable-k7: enable AMD k7 optimizations, including 3dNow!
--enable-sse: enable SSE optimizations.
--enable-sse2: enable SSE2 optimizations.
--disable-fortran: don't include FORTRAN callable wrappers.
--enable-openmp: use OpenMP directives instead of a threads library.
Caution.png

Note

The default is to build a double precision library. Generally one would build fftw three times; add the --enable-single and --enable-long-double options to the configuration for subsequent builds. This will result in libfft3, libfftw3f, and libfftw3l for single, double, and long-double libraries.

Non-Multilib

Compile the package:

./configure --prefix=/usr --enable-shared --enable-threads &&
make

Install the package:

make install

Build and install the info pages for FFTW:

make install-info

Install the PDF documentation for FFTW:

install -v -m755 -d /usr/share/doc/FFTW-3.2.2 &&
cp -v doc/fftw3.pdf /usr/share/doc/FFTW-3.2.2

Install the html documentation for FFTW:

install -v -m755 -d /usr/share/doc/FFTW-3.2.2/html &&
cp -v doc/html/*.html /usr/share/doc/FFTW-3.2.2/html

Multilib

32Bit

Compile the package:

CC="gcc ${BUILD32} -fPIC" CXX="g++ ${BUILD32} -fPIC" \
./configure --prefix=/usr --enable-shared --enable-threads &&
make

Install the package:

make install

N32

Compile the package:

CC="gcc ${BUILDN32} -fPIC" CXX="g++ ${BUILDN32} -fPIC" \
./configure --prefix=/usr --libdir=/usr/lib32 --enable-shared --enable-threads &&
make

Install the package

make install

64Bit

Compile the package:

CC="gcc ${BUILD64} -fPIC" CXX="g++ ${BUILD64} -fPIC" \
./configure --prefix=/usr --libdir=/usr/lib64 --enable-shared --enable-threads &&
make

Install the package:

make install

Build and install the info pages for FFTW:

make install-info

Install the PDF documentation for FFTW:

install -v -m755 -d /usr/share/doc/FFTW-3.2.2 &&
cp -v doc/fftw3.pdf /usr/share/doc/FFTW-3.2.2

Install the html documentation for FFTW:

install -v -m755 -d /usr/share/doc/FFTW-3.2.2/html &&
cp -v doc/html/*.html /usr/share/doc/FFTW-3.2.2/html

Contents

Installed Directories: None
Installed Programs: fftwl-wisdom, fftw-wisdom-to-conf
Installed Libraries: libfftw3l.so, libfftw3l.la, libfftw3l.a
Symlinks: None

Short Description

fftwl-wisdom: Creates wisdom (pre-planned/optimized transforms) for specified sizes, writing wisdom to stdout or file.
fftw-wisdom-to-conf: Converts wisdom (stdin) to C configuration routine (stdout).