Difference between revisions of "FFTW"

From CBLFS
Jump to navigationJump to search
m (Versioning.)
(Formatted to conform with the template.)
Line 5: Line 5:
 
|}
 
|}
  
== Introduction to FFTW ==
+
= 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.
+
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.
  
== Non-Multilib ==
+
<b>Homepage:</b> http://www.fftw.org/
 +
 
 +
= Dependencies =
 +
 
 +
== Optional ==
 +
 
 +
* [[Objective Caml]]
 +
* OpenMP is required if passing the <i>--with-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>--with-openmp:</i> use OpenMP directives instead of a threads library.
 +
 
 +
= Non-Multilib =
  
 
Compile the package:
 
Compile the package:
Line 15: Line 44:
 
  ./configure --prefix=/usr --enable-shared &&
 
  ./configure --prefix=/usr --enable-shared &&
 
  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:
Line 22: Line 49:
 
  make install
 
  make install
  
== Multilib ==
+
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}}
  
=== 32Bit ===
+
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
 +
 
 +
= Multilib =
 +
 
 +
== 32Bit ==
  
 
Compile the package:
 
Compile the package:
Line 31: Line 72:
 
  ./configure --prefix=/usr --enable-shared &&
 
  ./configure --prefix=/usr --enable-shared &&
 
  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:
Line 38: Line 77:
 
  make install
 
  make install
  
=== N32 ===
+
== N32 ==
  
 
Compile the package:
 
Compile the package:
Line 45: Line 84:
 
  ./configure --prefix=/usr --libdir=/usr/lib32 --enable-shared &&
 
  ./configure --prefix=/usr --libdir=/usr/lib32 --enable-shared &&
 
  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
Line 52: Line 89:
 
  make install
 
  make install
  
=== 64Bit ===
+
== 64Bit ==
  
 
Compile the package:
 
Compile the package:
Line 59: Line 96:
 
  ./configure --prefix=/usr --libdir=/usr/lib64 --enable-shared &&
 
  ./configure --prefix=/usr --libdir=/usr/lib64 --enable-shared &&
 
  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
 
== Documentation ==
 
  
 
Build and install the info pages for FFTW:
 
Build and install the info pages for FFTW:
Line 82: Line 115:
 
   cp -v doc/html/*.html /usr/share/doc/FFTW-{{FFTW-Version}}/html
 
   cp -v doc/html/*.html /usr/share/doc/FFTW-{{FFTW-Version}}/html
  
== Contents ==
+
= Contents =
  
* Installed Programs: /usr/bin/fftw-wisdom, /usr/bin/fftw-wisdom-to-conf
+
{| style="text-align: left
* Installed Libraries: /usr/lib/libfftw3.{la,a}
+
|-valign="top"
 +
!Installed Programs:
 +
|fftw-wisdom, fftw-wisdom-to-conf
 +
|-valign="top"
 +
!Installed Libraries:
 +
|libfftw3.{la,a}
 +
|}
  
=== Short Description ===
+
== Short Description ==
  
* fftw-wisdom: Creates wisdom (pre-planned/optimized transforms) for specified sizes, writing wisdom to stdout or file.
+
{| style="text-align: left
* fftw-wisdom-to-conf: Converts wisdom (stdin) to C configuration routine (stdout).
+
|-valign="top"
 +
!fftw-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).
 +
|}

Revision as of 10:48, 22 December 2006

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.

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

Dependencies

Optional

  • Objective Caml
  • OpenMP is required if passing the --with-openmp: switch to the configure script.

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.
--with-openmp: use OpenMP directives instead of a threads library.

Non-Multilib

Compile the package:

./configure --prefix=/usr --enable-shared &&
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 &&
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 &&
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 &&
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 Programs: fftw-wisdom, fftw-wisdom-to-conf
Installed Libraries: libfftw3.{la,a}

Short Description

fftw-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).