Mail Archives: djgpp-announce/2006/03/21/06:50:04
This is a port of FFTW 3.1.1 to MSDOS/DJGPP.
FFTW is a free collection of fast C routines for computing the
Discrete Fourier Transform in one or more dimensions. It includes
complex, real, symmetric, and parallel transforms, and can handle
arbitrary array sizes efficiently. FFTW is typically faster than
other publically-available FFT implementations, and is even
competitive with vendor-tuned libraries.
Please, read carefully the NEWS file to see the user visible changes
and read the info or html docs to become familiar with the program.
DJGPP specific changes.
=======================
- Please note that this package **needs** long filename support to compile.
If you are using Win98 with numerical tail aliases disabled, you will have
to reenable it again to install the package. Thus this package can not be
compiled on plain DOS.
- Due to the 8.3 file name length restriction the libraries file names
have been changed from:
libfftw3X.a to libfftwX.a
where X stands for the character `f' or for nothing. This should be
remembered when reading the info docs or man pages and when linking.
- The package provides two versions of the library:
libfftwf.a (float precision version)
libfftw.a (double precision version, default)
The two libraries use the same header: fftw3.h. In your application
you will have to replace function calls that starts with "fftw_" with
"fftwf_" in the case of float. You can use both libraries at the same
time in your appliction. This means that you can performe certain
computation with single precision in some function and perform another
computation with double precision in another or in the same function of
your application. Please read the info docs to become familiar with
this library. The original package offers a third version of the library,
this is one with long double precision. This version can not be compiled
with djgpp because it needs versions of trigonometric functions with
long double precision that are not available in djgpp.
- To make the package good for all djgpp installations, I have configured
and compiled with --enable-portable-binary. In this case -mtune but not
-march is used to generate code, so the produced library will run on
any architecture even tough it is optimized for a particular one.
I have also configured and compiled with the fortran callable wrapper
routines included. This makes the library a little bit bigger, but this
amount of size should be negligable. If these wrapper routines should not
be included then you have to reconfigure and recompile the sources using
the:
--disable-fortran
option.
- Also the package can be configured to take advantage of processor
specific instruction set. The options are:
--enable-3dnow (fallback for non AMD K7 compatible processor)
--enable-k7 (enables K7 *and* 3dnow instruction set)
--enable-sse
--enable-sse2
Enabling one of the above options produces SIMD code. 3dnow and sse
only work with --enable-float and k7 and sse2 only work with double
precision (the default). If you want to optimize the library for your
particular processor, you will have to reconfigure and recompile the
sources from scratch.
Please read the docs carefully to check if the options you may have
choosen to recompile the package make sense. The relevant section is
8.1 in chapter 8 of the pdf or info formated doc.
- The only djgpp specific changes concern the texi files to reflect the
name change of the library. The source code itself compiles out-of-the-box.
As usual, all djgpp specific files (config.bat, diffs, readme files, etc.)
are located in the /djgpp subdir.
Here is an extract of the NEWS file showing the user visible changes from
the last port (fftw-3.1) to this one:
FFTW 3.1.1
* Performance improvements for Intel EMT64.
* Performance improvements for large-size transforms with SIMD.
* Cycle counter support for Intel icc and Visual C++ on x86-64.
* In fftw-wisdom tool, replaced obsolete --impatient with --measure.
* Fixed compilation failure with AIX/xlc; thanks to Joseph Thomas.
* Windows DLL support for Fortran API (added missing __declspec(dllexport)).
* SSE/SSE2 code works properly (i.e. disables itself) on older 386 and 486
CPUs lacking a CPUID instruction; thanks to Eric Korpela.
----------------------------------------------------------------------------
The port consists of the usual three packages that can be downloaded from
ftp.delorie.com and mirrors as (timestamp 2006-03-20):
FFTW 3.1 binary, info and man format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2tk/fftw31b.zip
FFTW 3.1 dvi, html, pdf and ps format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2tk/fftw31d.zip
FFTW 3.1 source:
ftp://ftp.delorie.com/pub/djgpp/current/v2tk/fftw31s.zip
For the convenience of the WinXP users binaries compiled with djdev204
are also distributed and can be downloaded from ftp.delorie.com and
mirrors as (timestamp 2006-03-20):
FFTW 3.1 binary, info and man format documentation:
ftp://ftp.delorie.com/pub/djgpp/beta/v2tk/fftw31b.zip
Send FFTW specific bug reports to <fftw AT fftw DOT org>.
Send suggestions and bug reports concerning the DJGPP port
to comp.os.msdos.djgpp or <djgpp AT delorie DOT com>.
Enjoy.
Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>
- Raw text -