X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f Message-Id: <200603211140.k2LBekNR004916@delorie.com> X-Authenticated: #27081556 From: Juan Manuel Guerrero To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: DJGPP port of FFTW 3.1.1 uploaded Date: Tue, 21 Mar 2006 10:57:51 +0100 Content-Disposition: inline X-Y-GMX-Trusted: 0 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 . Send suggestions and bug reports concerning the DJGPP port to comp.os.msdos.djgpp or . Enjoy. Guerrero, Juan Manuel