The first beta release of FFTW-3.3 is available at http://fftw.org
Notable changes include support for the AVX instruction set, an MPI
implementation, and a Fortran 2003 interface.
Detailed list of changes since FFTW 3.2.2:
* Add support for the AVX extensions to x86 and x86-64. The AVX code
works with 16-byte alignment (as opposed to 32-byte alignment),
so there is no ABI change compared to FFTW 3.2.2.
* Added Fortran 2003 interface, which should be usable on most modern
Fortran compilers (e.g. gfortran) and provides type-checked access
to the the C FFTW interface. (The legacy Fortran-77 interface is
still included also.)
* Added MPI distributed-memory transforms. Compared to 3.3alpha,
the major changes in the MPI transforms are:
- Fixed some deadlock and crashing bugs.
- Added Fortran 2003 interface.
- Added new-array execute functions for MPI plans.
- Eliminated use of large MPI tags, since Cray MPI requires tags <
thanks to Jonathan Bentz for the bug report.
- Expanded documentation.
- 'make check' now runs MPI tests
- Some ABI changes - not binary-compatible with 3.3alpha MPI.
* Add support for quad-precision __float128 in gcc 4.6 or later (on
x86-64, and Itanium). The new routines use the fftwq_ prefix.
* Temporarily removed MIPS paired-single support due to lack of
available hardware for testing. We hope to add it back before the
final FFTW 3.3 release; meanwhile, users who want this functionality
should continue using FFTW 3.2.x.
* Removed support for the Cell Broadband Engine. Cell users should
use FFTW 3.2.x.
* New convenience functions fftw_alloc_real and fftw_alloc_complex
to use fftw_malloc for real and complex arrays without typecasts
* New convenience functions fftw_export_wisdom_to_filename and
fftw_import_wisdom_from_filename that export/import wisdom
to a file, which don't require you to open/close the file yourself.
* New function fftw_cost to return FFTW's internal cost metric for
a given plan; thanks to Rhys Ulerich and Nathanael Schaeffer for the
* The --enable-sse2 configure flag now works in both double and single
precision (and is equivalent to --enable-sse in the latter case).
* Remove --enable-portable-binary flag: we new produce portable
* Remove the automatic detection of native architecture flag for gcc
which was introduced in fftw-3.1, since new gcc supports -
Remove the --with-gcc-arch flag; if you want to specify a particlar
arch to configure, use ./configure CC="gcc -mtune=...".
* --with-our-malloc16 configure flag is now renamed --with-our-malloc.
* Fixed build problem failure when srand48 declaration is missing;
thanks to Ralf Wildenhues for the bug report.
* Fixed bug in fftw_set_timelimit: ensure that a negative timelimit
is equivalent to no timelimit in all cases. Thanks to William
Burnson for the bug report.
* Fixed stack-overflow problem on OpenBSD caused by using alloca with
too large a buffer.