/usr/share/doc/fftw-libs-single
Edit: /usr/share/doc/fftw-libs-single/ChangeLog (615906B)
commit 700745cdbb34e964e1abda86183809fd8dd95796
Author: Matteo Frigo
Date: Thu May 24 08:00:45 2018 -0400
Bump FFTW_MINOR_VERSION for fftw-3.3.8
commit 902d0982522cdf6f0acd60f01f59203824e8e6f3
Author: Matteo Frigo
Date: Thu May 24 07:43:02 2018 -0400
update NEWS
commit 41b0d9eff394891ba3327b9062811d48677bb411
Author: Matteo Frigo
Date: Thu May 24 07:35:36 2018 -0400
CFLAGS: don't use -ffast-math
-ffast-math is a relic from 1999 when it was kind of necessary for
full use of FMA on powerpc. Nowadays it is just a liability. For
example, 'gcc-8 -ffast-math' ignores the disctintion between +0 and
-0, thus breaking the avx and avx2 implementations in fftw-3.7.
commit 19eeeca592f63413698f23dd02b9961f22581803
Author: Matteo Frigo
Date: Thu May 24 07:29:00 2018 -0400
Fixes for gcc-8
It looks like 'gcc-8 -ffast-math' does honor the distinction between
+0.0 and -0.0 in floating-point constants. I suppose that technically
-ffast-math has the right to do so.
For good measure, this patch encodes such constants as their explicit
binary representation. A separate patch will disable -ffast-math.
commit bf478afbf2367df0f38c77f31d1f912aeeb82585
Author: Miklos Espak
Date: Thu Apr 26 18:31:57 2018 +0100
Define include directory for installed targets (#141)
commit ab888adf510338c03ea8ac49b4aab91fb57f1479
Author: Steven G. Johnson
Date: Sat Apr 14 11:40:39 2018 -0400
don't need both identifier and name fields
commit 2b999c600c58c78b8acb78c3352b02d9df6f6e60
Author: Steven G. Johnson
Date: Fri Apr 13 08:43:35 2018 -0400
JSON doesn't like trailing commas
commit 92eee8bbc4252c871aa870d2dce88eb98d0c7d18
Author: Steven G. Johnson
Date: Fri Apr 13 08:38:50 2018 -0400
list both C and OCaml (as explained in codemeta/codemeta#181)
commit 35e5609f17e212bf1c40da9b2ebe66784ad37052
Author: Steven G. Johnson
Date: Thu Apr 12 12:01:15 2018 -0400
add codemeta file
commit eba07c46b5d2f7824d293ab59aa5c29a25034963
Author: Matteo Frigo
Date: Mon Feb 19 09:30:29 2018 -0500
Call _mm256_zeroupper() when leaving avx512 code
Carsten Steger says:
simd-avx512.h defines VLEAVE as nothing in FFTW 3.3.7. However, the
current Intel® 64 and IA-32 Architectures Optimization Reference Manual,
chapter 15.18, recommends the following:
- When you have to mix group B instructions with Intel SSE instructions,
or you suspect that such a mixture might occur, use the VZEROUPPER
instruction whenever a transition is expected.
- Add VZEROUPPER after group B instructions were executed and before any
function call that might lead to Intel SSE instruction execution.
- Add VZEROUPPER at the end of any function that uses group B instructions.
- Add VZEROUPPER before thread creation if not already in a clean state
so that the thread does not inherit Dirty Upper State.
(Group B are instruction types that modify bits 128-511 of vector
registers 0-15.)
Therefore, I believe it would be prudent to define VLEAVE as
_mm256_zeroupper in simd-avx512.h (see the attached patch).
At https://software.intel.com/en-us/forums/intel-isa-extensions/topic/704023
Mark Charney says:
To be clear, we very much still recommend using VZEROUPPER on
Skylake. Even though it does not have the same penalties as earlier
designs in that family for mixing AVX and SSE code, we definitely
recommend using VZEROUPPER on Skylake.
Yes it would obviously be better if there were one solution. For
code that has to run on both families, the "common code" solution
is to use the Xeon guidelines.
If Mark Charney recommends VZEROUPPER, that's good enough for me.
commit b267008613d082975b108252ed596ba0916ffa31
Author: Matteo Frigo
Date: Wed Nov 22 12:54:18 2017 -0500
fftw3-mpi.f03 should be regenerated when Makefile changes
commit 708b202fd593cf1002cf97dce0863e2a438e3720
Merge: 2e0cfdda 8ba34c40
Author: Matteo Frigo
Date: Mon Nov 20 09:37:17 2017 -0500
Merge pull request #113 from xantares/mingw
CMake enhancements
commit 2e0cfddacacccc8a1e6e679c5e3fa81fb0219bda
Author: Matteo Frigo
Date: Mon Nov 20 07:07:30 2017 -0500
Attempt to strengthen language in README.md
commit 8ba34c40fef38f661c9c413781990a7c021ba22b
Author: Michel Zou
Date: Thu Nov 9 22:33:51 2017 +0100
Preliminary Fortran support
commit bd753a7679ecca2799640e7c8ced6f1f784f1b51
Author: Michel Zou
Date: Mon Nov 6 23:00:29 2017 +0100
CMake MinGW fixes
Mostly fixes the SSE2 macro in config.h, otherwise minor detection fixes
commit da5372a175bcb09578359960869c76da74c9fda3
Author: Matteo Frigo
Date: Tue Oct 31 20:21:17 2017 -0400
EXTRA_DIST += README-perfcnt.md
commit 1b64d9269254e9d0a0f0b088e5eceb0db92d531f
Merge: b5ccc557 2be183c3
Author: Matteo Frigo
Date: Tue Oct 31 20:19:13 2017 -0400
Merge pull request #112 from alexeicolin/PR--armv7-pmccntr-counter-and-docs
Pr armv7 pmccntr counter and docs
commit 2be183c3a44d58aaa11909ba8882310fb44d598c
Author: Alexei Colin
Date: Tue Oct 31 23:34:38 2017 +0000
perf counters: name ARMv8 PMCCNTR_EL0 explicitly
For consistency with the rest.
commit 504ece7f8ffc60c2a03b28d977e9825230052d48
Author: Alexei Colin
Date: Tue Oct 31 23:28:48 2017 +0000
perf counters: add PMCCNTR for ARMv7 and add docs
The existing armv7 counter (CNTVCT) does need enabling from kernel mode (so
updated the configure help), and the enable bit is different from the PMU
enable bit (described in the new docs).
Tested on XU4: printed the returned counter values and they look reasonable.
commit b5ccc557fd2e57bfc955f0db9b5182e92f9cb55c
Author: Matteo Frigo
Date: Sun Oct 29 08:13:04 2017 -0400
fftw-mpi.h should include , not "fftw3.h"
commit 9e3f8da20e65f1e34e677768e550086b06d77f16
Author: Matteo Frigo
Date: Sun Oct 29 08:09:35 2017 -0400
NEWS: warn that cmake support is experimental and not well tested
commit 9616fb9ff1c2694f5cfa2c4a59efa96094ae6812
Author: Matteo Frigo
Date: Sun Oct 29 07:48:43 2017 -0400
Update NEWS for upcoming fftw-3.3.7
commit 62edb203fc09c8c8ac2c2d5ac3299ea8d4dc7838
Author: Matteo Frigo
Date: Tue Oct 10 18:58:37 2017 -0400
Ditch --enable-debug-malloc and --enable-debug-alignment
We wrote DEBUG_MALLOC in 1997 to debug memory leaks. Nowadays
DEBUG_MALLOC is just confusing. Better tools are available, and
DEBUG_MALLOC is not thread-safe and it does not respect SIMD
alignment. It confused at least one user.
In the gcc-2.SOMETHING days, gcc would allocate doubles on the stack
at 4-byte boundary (vs. 8) reducing performance by a factor of 3.
That's when we introduced --enable-debug-alignment, which is totally
obsolete by now.
commit 6ed4297e85e5ef24a18ce428b18e020d8e48413a
Author: Matteo Frigo
Date: Fri Sep 29 19:27:43 2017 -0400
Use armv7a cycle counter unconditionally if HAVE_ARMV7A_CNTVCT
It looks like __ARM_ARCH_7A__ is not always defined. If the
user says HAVE_ARMV7A_CNTVCT, trust the user.
commit 2dd77382319ceb99c32b38418716783eec8adad4
Merge: 04590cb1 e09ab8ca
Author: Matteo Frigo
Date: Thu Sep 21 22:42:38 2017 -0400
Merge pull request #110 from junghans/cmake
Minor cmake fixes
commit e09ab8cac98c0f206968bbd962a6f76cf26e7437
Merge: 890dac59 76427f30
Author: Christoph Junghans
Date: Thu Sep 21 16:13:43 2017 -0600
Merge commit 'refs/pull/109/head' of github.com:FFTW/fftw3 into cmake
commit 04590cb11baa11bbfdebe101fa90186bbf48423c
Author: Matteo Frigo
Date: Thu Sep 21 18:00:58 2017 -0400
simd-vsx.h: don't use vpermxor
It seems like gcc-6 generates incorrect code when using vpermxor
(tested with qemu emulator, so there is a chance that gcc is right and
qemu is wrong). Disable the use of vpermxor and do the simple thing
(one multiplication + one permutation).
commit 76427f30080e2cab3ca5047193ce8ffe6110f047
Author: Michel Zou
Date: Thu Sep 21 23:44:15 2017 +0200
No need to list includes
commit e47e9a81c41454e5e128cd68505b38152ad60500
Author: Matteo Frigo
Date: Thu Sep 21 17:13:14 2017 -0400
Remove AC_FUNC_{MALLOC,REALLOC,MMAP}
They don't do what I thought. E.g., AC_FUNC_MALLOC checks that
malloc(0) returns NULL, and defines malloc to be rpl_malloc otherwise.
We don't support rpl_malloc() and we don't care about malloc(0).
commit 5aebc02ff30af12d2dc3be6c762e821a38f56595
Author: Matteo Frigo
Date: Thu Sep 21 10:09:02 2017 -0400
Dead-Code Police
commit d97394a17250d71d6a722ae64dcc3123130cf08f
Author: Matteo Frigo
Date: Thu Sep 21 09:54:36 2017 -0400
Fixup fftw3-mpi.h
fftw3-mpi.h must include "fftw3.h", not "api/fftw3.h", because both
fftw3-mpi.h and fftw3.h will ultimately be installed in /usr/include.
Thus, as a special exception, mpi/Makefile.am must specify the include
path -I $(top_srcdir)/api.
commit 890dac59aca4c153e7e22add0a8de00766227670
Merge: 4ebda892 106582aa
Author: Christoph Junghans
Date: Wed Sep 20 14:44:04 2017 -0600
Merge commit 'refs/pull/109/head' of github.com:FFTW/fftw3 into cmake
commit 4ebda89297b6b38632c3d91bd5a673a1bee4ffff
Author: Christoph Junghans
Date: Wed Sep 20 14:05:13 2017 -0600
autotools: fix install of FFTW3ConfigVersion.cmake
commit e9a66d5f748037f9cb9c0f5b8d824d73c0425042
Author: Christoph Junghans
Date: Wed Sep 20 13:29:29 2017 -0600
cmake: use GNUInstallDirs
commit 4fbb72ad294e2070d64a83b24f89a601d4f624c6
Author: Matteo Frigo
Date: Wed Sep 20 13:11:55 2017 -0400
Generate codlist.c only when MAINTAINER_MODE
The user is not supposed to regenerate .c files. In addition, the
generation rule is subtly nonportable (it depends on whether or not
'#' can be escaped in Makefiles, an issue that does not appear
settled.)
commit f243f8ce48be61952527d43da222096296fdd2f9
Author: Matteo Frigo
Date: Wed Sep 20 11:54:13 2017 -0400
Generate {dft,rdft}/simd/{sse,sse2,avx,...}/*.c only when MAINTAINER_MODE
Users are not supposed to generate them. Apart from that, the
generation rule uses '$*' in an explicit make rule, which is
technically a GNU extension. (Works with {open,free}bsd, but breaks
Solaris.)
commit 106582aa8f97257f53730cbac81f98e8659b084c
Author: Michel Zou
Date: Wed Sep 20 15:46:51 2017 +0200
Fix includes, export target
commit 1a24e67165ba56447f814bcdc12b9d6e083f1670
Author: Matteo Frigo
Date: Wed Sep 20 07:24:58 2017 -0400
Restore the ability to build out of tree.
Before 1f3704b9, we had "-I $(top_srcdir)/foo -I $(top_srcdir)/bar".
After 1f3704b9, we had no -I specification at all, but automake wants
an explicit -I $(top_srcdir) in order to build out of tree.
commit 919b795940d1e86a948a4430193dbd0853f47272
Merge: 6076339a f7a64365
Author: Matteo Frigo
Date: Wed Sep 20 06:41:50 2017 -0400
Merge pull request #107 from xantares/config-mode
Config mode
commit f7a6436509d324297783eb77df54010320b062f8
Author: Michel Zou
Date: Wed Sep 20 11:46:05 2017 +0200
Build bench according to BUILD_TESTS
commit 82cec28b7e14280ad11878978e23a3680bb0e983
Author: Michel Zou
Date: Wed Sep 20 11:41:20 2017 +0200
Use cmake config mode
Installs FFTW3Config.cmake instead of a FindFFTW3.cmake
Also configures the pkgconfig file from cmake
commit 6076339a342b12b0d0cfd9f6d967bfa9fbf6b1b2
Author: Matteo Frigo
Date: Tue Sep 19 23:38:27 2017 -0400
Fix performance regression with gcc-3.3
commit f4c37657cb32b2552c5e86f0540c0308d4f451ef
Author: Matteo Frigo
Date: Tue Sep 19 23:24:08 2017 -0400
get rid of the sse2-nonportable.c hack
It was necessary to support some broken compiler 15 years ago.
Remove it and see if anybody complains.
commit 362ae5c7b8a9df76b5ec0de4433131db33bae0ae
Author: Matteo Frigo
Date: Tue Sep 19 21:44:13 2017 -0400
configure.ac Police
Remove some obsolete AC_CHECK_HEADERS, add new checks suggested by
autoscan.
commit a56b5b4b149e56fce43778172a56f77d30352833
Author: Matteo Frigo
Date: Tue Sep 19 21:43:45 2017 -0400
Include Police
fftw-wisdom.c was including instead of "api/fftw3.h"
commit 1f3704b9eff4b7e80ef7d775fb13f5bb8de0a5f1
Author: Matteo Frigo
Date: Tue Sep 19 21:12:22 2017 -0400
Do not set include path ("-I") in Makefile.am
.[ch] files should specify their own paths explicitly. Setting paths
in the Makefile was always a bad idea, but it is totally untenable if
we are supporting cmake.
commit 6e0ae04bad14a7dd9b4928f22d7a01e887dfdc03
Author: Matteo Frigo
Date: Tue Sep 19 19:31:55 2017 -0400
Fix OpenBSD build
Using $< in a non-suffix rule context is a GNUmake idiom and OpenBSD
doesn't like it.
commit 31a53789197f90d6bf349dd230ab86023e5fb83c
Author: Matteo Frigo
Date: Tue Sep 19 19:24:34 2017 -0400
EXTRA_DIST += FindFFTW3.cmake.in
commit ae1a764ce88166e8e1f05a25888f105ec8f1939d
Merge: 5fdca1d9 97b273d8
Author: Matteo Frigo
Date: Tue Sep 19 17:13:58 2017 -0400
Merge pull request #69 from junghans/cmake
Build und install cmake module
commit 5fdca1d9b0a0b2e6491c98f63873dcf600355e09
Merge: b521e530 66506470
Author: Matteo Frigo
Date: Tue Sep 19 15:57:59 2017 -0400
Merge pull request #92 from tklauser/armv7a-cycle-counter
Fix ARMV7-A cycle counter detection
commit b521e5305a7317c1c0f1d454beb6580eaf4de1db
Author: Matteo Frigo
Date: Tue Sep 19 15:51:03 2017 -0400
cmake: don't check for dlfcn.h
We don't use it
commit fc852fcdfa80fab30eac2284249686853efa2e4b
Author: Matteo Frigo
Date: Tue Sep 19 15:43:02 2017 -0400
Remove ancient paranoia
In the '90s we used to run autoconf three times, just in case
(because it really didn't work the first time). "Three" was modeled
after the "sync; sync; sync; reboot" incantation of the '80s.
Hopefully we are past this by now.
commit 34738e7f669882c6abc12c2744c8acc347c91719
Author: Matteo Frigo
Date: Tue Sep 19 15:32:39 2017 -0400
Flip boolean in a way that makes more sense to me
commit a2bfd859d9ad08490d02252d8a80c5994dd82747
Author: Matteo Frigo
Date: Tue Sep 19 15:28:56 2017 -0400
Various CMakeLists.txt fixes
* AVX2 codelets require -mfma
* --enable-avx2 automatically enables the 128-bit avx2 codelets in
*dft/simd/avx2-128
* bump FFTW_VERSION to 3.3.7, SOVERSION to 3.5.7
* build bench always, irrespective of Threads_FOUND
commit 93ac6e1075e73c0275a9e0006fe9161c3b6fae38
Merge: a71f3dd3 d3a8d13f
Author: Matteo Frigo
Date: Tue Sep 19 14:31:03 2017 -0400
Merge pull request #103 from xantares/cmake
Add user cmake support
Still needs work, but let's move forward and move this contribution into the official repository
commit d3a8d13f74361a7ffc4c48c229181a86b35e9a7d
Author: Michel Zou
Date: Tue Jul 18 12:16:43 2017 +0200
Add user cmake infrastructure
commit a71f3dd355f802dc362a52674a977ff81daadf9d
Author: Matteo Frigo
Date: Wed Jul 5 06:33:40 2017 -0400
Disable ISA_EXTENSION_PREFERS_FMA for now
I still don't understand whether or not avx2 should use FMA codelets.
Ryzen is faster with the non-FMA version. Haswell prefers the FMA
version.
However, I suspect that Haswell prefers FMA because of a quirk of the
micro-architecture. Haswell has two floating-point "ports". You can
issue an addition only through one "port", but you can issue two FMA
in parallel on both ports, so FMA appears to be faster. Skylake
apparently restores balance (but I haven't tried yet). Suspend
judgment for now until I gather more data.
commit f82b8c94596868897987b71a648eaa664590602a
Author: Matteo Frigo
Date: Tue Jul 4 20:06:57 2017 -0400
Rationalize HAVE_FMA
Distinguish ARCH_PREFERS_FMA, for architectures that "naturally"
prefer FMA (e.g., powerpc), from ISA_EXTENSION_PREFERS_FMA, for
instruction-set extensions that favor FMA where the base architecture
does not (e.g., avx2 on x86).
Previously, --enable-avx2 would use FMA code for scalar and avx
codelets, which is wrong.
This change improves performance by a few percent on Ryzen (where FMA
doesn't really do anything), and is a wash on Haswell.
commit 0869f4e51b8b0aeb7da1b21b2683c30cd4e10a5e
Author: Steven G. Johnson
Date: Tue May 9 09:14:37 2017 -0400
document that howmany ≥ 0 (closes #95)
commit 665064700b26c01c0836e4c12a5ee0eab3923858
Author: Tobias Klauser
Date: Wed Mar 29 16:15:45 2017 +0200
Fix ARMV7-A cycle counter detection
Check for the correct pre-processor define HAVE_ARMV7A_CNTVCT from
config.h (instead of ARMV7A_HAS_CNTVCT) to fix the detection of the
cycle counter for ARMv7-A in the configure script (and actually use it
in the built library).
Without this fix, even the following ./configure call:
./configure --enable-neon --enable-single --enable-armv7a-cntvct \
--host=arm-linux-gnueabihf --disable-fortran \
CC="arm-linux-gnueabihf-gcc -march=armv7-a"
will emit the warning:
checking whether a cycle counter is available... no
***************************************************************
WARNING: No cycle counter found. FFTW will use ESTIMATE mode
for all plans. See the manual for more information.
***************************************************************
With this fix applied, ./configure will correctly detect the cycle
counter register:
...
checking whether a cycle counter is available... yes
...
commit cc5fc8ce7ffd77f467740554f649aab4d3f71344
Merge: 102f2fd0 950b1539
Author: Matteo Frigo
Date: Tue Mar 14 07:21:45 2017 -0400
Merge pull request #91 from fornwall/android-clock-gettime
Avoid trying to use CLOCK_SGI_CYCLE on Android
commit 950b153910f7f0dde9cc20cddeee5dc9048d25b7
Author: Fredrik Fornwall
Date: Mon Mar 13 23:41:35 2017 +0100
Avoid trying to use CLOCK_SGI_CYCLE on Android
The Android headers defines CLOCK_SGI_CYCLE but the call fails at
runtime as it's not implemented. Combined with getticks() not
checking the return value of clock_gettime() this causes bogus
values to be returned from getticks().
commit 102f2fd0249dca301d195b4df1b94e7b339b8c60
Author: Matteo Frigo
Date: Wed Feb 22 14:59:30 2017 -0500
Compute mflops() in 64 bit precision
Old code was overflowing for N>2^32
commit 2b63fc2eaae645a5c2ef4a97c384beb2adefd58d
Author: Matteo Frigo
Date: Fri Jan 27 16:06:27 2017 -0500
Update NEWS for 3.3.6-pl2
commit d2ca54234956ad8be82ba050305ccf979fd631a7
Author: Matteo Frigo
Date: Fri Jan 27 16:01:42 2017 -0500
Get ready for fftw-3.3.6-pl2
commit 83092f8efbf872aefe7cfc6ee8fa43412f8e167a
Author: Matteo Frigo
Date: Fri Jan 27 15:52:18 2017 -0500
Fix scrips that generate the MPI F03 interface
It turns out that the scripts were using fftw3.h from /usr/include,
not ../api, and were failing silently if fftw3.h was not installed.
This bug led to a fftw-3.3.6pl1 release with incomplete mpi/f03 header
files.
commit ab402b00f9a003daa10863b9bcdbe0810b26f541
Author: Steven G. Johnson
Date: Wed Jan 25 13:03:15 2017 -0500
mention mkdist.sh and summarize the build process in README.md (closes #85)
commit fa9f00b3831177f0a9582092f21efb14e3d4601f
Author: Matteo Frigo
Date: Sun Jan 22 14:51:44 2017 -0500
add __cdecl decorators to fftw3.h functions on Windows
This patch re-does 1f19d597 in a more disciplined way.
Also, Whitespace Police.
commit 42c0036e839b78a7af651d5504add62ed57f9961
Author: Matteo Frigo
Date: Sun Jan 22 14:32:32 2017 -0500
Revert "add __cdecl decorators to fftw3.h functions on Windows, in case someone compiles with a non-default calling convention, as discussed in #80"
This reverts commit 1f19d59793eb629dd8228e8a41f4f8618c20a246.
The chosen syntax
FFTW_EXTRN(T) X(name)
is improper because __cdecl appertains to the declarator
and not to the return type. (As is clear, e.g., in
void (__cdecl *foo)(void)).
This forces monstrosities such as
FFTW_EXTRN(R *) X(name)
that contradict the C declaration syntax.
I'll redo the patch in a way that looks like C:
FFTW_EXTERN R *FFTW_CDECL X(name)
commit 1f19d59793eb629dd8228e8a41f4f8618c20a246
Author: Steven G. Johnson
Date: Thu Jan 19 23:09:23 2017 -0500
add __cdecl decorators to fftw3.h functions on Windows, in case someone compiles with a non-default calling convention, as discussed in #80
commit 596b924b86340456771fb75559016ec2cc1b44c4
Author: Matteo Frigo
Date: Mon Jan 16 10:25:37 2017 -0500
Assert that CURRENT-AGE=3
This is an attempt to prevent the 3.3.6 version screwup from occurring
again.
In any reasonable universe, libraries would have a version H and they
would specify a L such that the library is compatible with all
versions in [L..H]. Any sensible programmer would never change L, as
this breaks backward compatibility and screws users. A new version
would increase H and be done. Instead, libtool wants CURRENT=H and
AGE=H-L (a new version change two variables). Furthermore, the name
of the library in the file system is a combination of L and H-L. The
two changes of basis arent't even orthogonal. Pure madness.
This change attempts to impose sanity by asserting that that the
implied L is 3, since we never intend to break backward compatibility
with fftw-3.3, which was version L=3.
commit 6fb9cd7b6359f29ce488a5802793139971d59c6c
Author: Matteo Frigo
Date: Mon Jan 16 09:06:06 2017 -0500
Release 3.3.6-pl1
commit 18b7e53c54727303703db29373e61a35fb8d5db8
Author: Matteo Frigo
Date: Mon Jan 16 08:56:53 2017 -0500
Fix #82: FFTW3 3.3.6 shared version rollback
commit 64a5a288e56c6ff4462b69531f4f34d740fdc12c
Author: Matteo Frigo
Date: Mon Jan 16 08:42:01 2017 -0500
Improve documentation of fftw_make_planner_thread_safe
Specifically, tell people not to use it unless they must.
commit 811a672bdaedec4363272d9f7ed5fae56086aeb1
Author: Matteo Frigo
Date: Sun Jan 15 17:40:37 2017 -0500
rm obsolete simd/ directory
We switched to simd-support/ many years ago, not sure why
it is still in git.
This was not a problem when the repository was private, but
the directory probably confuses people on github.
commit 5c9bead1ea35b3a21fb33f17011d6802722ba44b
Author: Matteo Frigo
Date: Sun Jan 15 07:25:40 2017 -0500
Warnings Police
* suppress dead code in genfft/simd.ml
* fix on size_t/int confusion
* fix one float*/double* confusion (should have been void* because
we only check the alignment of the pointer, not its type).
commit 41b191ee128fefe28a228ab706dfdfb65d32c2e1
Author: Matteo Frigo
Date: Sun Jan 15 07:02:40 2017 -0500
Update configure.ac, NEWS for 3.3.6
commit fc3ada6e6bd790341fb5d91c6775b8afd686bad7
Author: Matteo Frigo
Date: Sun Jan 15 06:40:23 2017 -0500
Ansi C Police
fftw is supposed to compile with c89/c90. Restore this property
so that I can test with gcc -ansi.
This change may seem needlessly reactionary, but in the last release I
accidentally inserted an assertion before a declaration and I broke
the Visual Studio build, so we must be careful not to use C99
constructs.
There are a few non-ANSI function calls in tests, e.g. isnan(),
drand48(), snprintf(). Since nobody has complained about those in
years, I am leaving them alone.
commit 50dacdaba79694c873965ab23d11c8ca3b94d436
Author: Matteo Frigo
Date: Sat Jan 7 09:01:47 2017 -0500
Revert simd-avx.h changes from b606e3191
They didn't improve performance at all as far as I can tell,
and they ended up breaking the PGI compiler.
It is always tempting to use the fancy addsub instructions in FFTW to
do complex multiplications, but the reality is that FFTW is designed
to avoid complex multiplications in most cases (we started in the SSE
days), and thus they don't make any difference. We are better off
using the minimal possible set of AVX instructions to minimize the
chance of triggering compiler bugs.
The same statement holds for _mm256_shuffle_pd() versus
_mm256_permute_pd(): in theory the latter is better, in practice
either one is rarely used. However, SHUFFLE is older (since the SSE
days) and has a higher chance of working.
commit 5fa55dc130e18cc4b3f4d88b8a159307eecf51d0
Merge: 1637e8aa aa00ba84
Author: Matteo Frigo
Date: Sun Nov 13 05:49:09 2016 -0500
Merge pull request #77 from rolandschulz/master
Fix AVX512 load+store
commit aa00ba84079a272637666c9ae941821087f712b8
Author: Roland Schulz
Date: Sat Nov 12 20:52:49 2016 -0800
Fix AVX512 load+store
FFTW alignment is only 16 bytes. AVX512 requires 64 bytes.
Thus unaligned load/store is required. AVX256 does the same.
commit 1637e8aace6e91d67837901b5a4cbbc87c42aca9
Merge: 3e7ee221 a538bf2c
Author: Matteo Frigo
Date: Thu Nov 3 11:24:44 2016 -0400
Merge pull request #76 from forandom/patch-2
Update simd-vsx.h to support building with IBM XLC
commit a538bf2c4a17ec509f2cec37bffe48874702c671
Author: forandom
Date: Thu Nov 3 23:06:17 2016 +0800
Update simd-vsx.h to support building with IBM XLC
defined(__POWER8_VECTOR__) && defined(__GNUC__) && defined(__LITTLE_ENDIAN__) is true for IBM XLC compiler for which we should use the intrinsic __vpermxor instead of __builtin_crypto_vpermxor.
commit 3e7ee2211ae1bd5e76901bbe1bcca67b31f84ccb
Author: Matteo Frigo
Date: Sat Sep 24 06:39:01 2016 -0400
Do not run programs at configure time, ever.
configure was running a program to detect the ARM cycle counter,
thus preventing cross-compiling. Sorry about that.
commit fee0f966b2d3fae18019dd03a9bae338b4108d42
Merge: 3a3173b0 cca0c6e5
Author: Matteo Frigo
Date: Fri Sep 9 06:49:23 2016 -0400
Merge pull request #72 from tkelman/patch-1
#include in threads.c for windows build
commit cca0c6e5a8c717df10f380411709f3360ceea6e9
Author: Tony Kelman
Date: Fri Sep 9 03:24:30 2016 -0700
#include in threads.c for windows build
otherwise an i686-w64-mingw32 cross compile is giving
```
libtool: link: i686-w64-mingw32-gcc -march=pentium4 -m32 -std=gnu99 -shared -Wl,--whole-archive kernel/.libs/libkernel.a dft/.libs/libdft.a dft/scalar/.libs/libdft_scalar.a dft/scalar/codelets/.libs/libdft_scalar_codelets.a rdft/.libs/librdft.a rdft/scalar/.libs/librdft_scalar.a rdft/scalar/r2cf/.libs/librdft_scalar_r2cf.a rdft/scalar/r2cb/.libs/librdft_scalar_r2cb.a rdft/scalar/r2r/.libs/librdft_scalar_r2r.a reodft/.libs/libreodft.a api/.libs/libapi.a simd-support/.libs/libsimd_support.a simd-support/.libs/libsimd_sse2_nonportable.a dft/simd/avx/.libs/libdft_avx_codelets.a rdft/simd/avx/.libs/librdft_avx_codelets.a threads/.libs/libfftw3f_threads.a -Wl,--no-whole-archive -march=pentium4 -m32 -O3 -mtune=native -malign-double -Wl,--stack -Wl,8388608 -o .libs/libfftw3f-3.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libfftw3f.dll.a
libtool: link: i686-w64-mingw32-gcc -march=pentium4 -m32 -std=gnu99 -shared -Wl,--whole-archive kernel/.libs/libkernel.a dft/.libs/libdft.a dft/scalar/.libs/libdft_scalar.a dft/scalar/codelets/.libs/libdft_scalar_codelets.a rdft/.libs/librdft.a rdft/scalar/.libs/librdft_scalar.a rdft/scalar/r2cf/.libs/librdft_scalar_r2cf.a rdft/scalar/r2cb/.libs/librdft_scalar_r2cb.a rdft/scalar/r2r/.libs/librdft_scalar_r2r.a reodft/.libs/libreodft.a api/.libs/libapi.a simd-support/.libs/libsimd_support.a simd-support/.libs/libsimd_sse2_nonportable.a dft/simd/avx/.libs/libdft_avx_codelets.a rdft/simd/avx/.libs/librdft_avx_codelets.a threads/.libs/libfftw3_threads.a -Wl,--no-whole-archive -march=pentium4 -m32 -O3 -mtune=native -malign-double -Wl,--stack -Wl,8388608 -o .libs/libfftw3-3.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libfftw3.dll.a
threads/.libs/libfftw3_threads.a(libfftw3_threads_la-threads.o):threads.c:(.text+0x121): undefined reference to `_mm_pause'
threads/.libs/libfftw3_threads.a(libfftw3_threads_la-threads.o):threads.c:(.text+0x581): undefined reference to `_mm_pause'
collect2: error: ld returned 1 exit status
threads/.libs/libfftw3f_threads.a(libfftw3f_threads_la-threads.o):threads.c:(.text+0x121): undefined reference to `_mm_pause'
threads/.libs/libfftw3f_threads.a(libfftw3f_threads_la-threads.o):threads.c:(.text+0x581): undefined reference to `_mm_pause'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:627: libfftw3f.la] Error 1
make[4]: *** [Makefile:627: libfftw3.la] Error 1
make[3]: *** [Makefile:672: all-recursive] Error 1
make[2]: *** [Makefile:536: all] Error 2
make[3]: *** [Makefile:672: all-recursive] Error 1
make[1]: *** [/home/Tony/julia32/deps/fftw.mk:46: scratch/fftw-3.3.5-single/build-compiled] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:536: all] Error 2
make[1]: *** [/home/Tony/julia32/deps/fftw.mk:46: scratch/fftw-3.3.5-double/build-compiled] Error 2
make: *** [Makefile:81: julia-deps] Error 2
```
commit 97b273d87dcc797e688709e207f119dd4dfca015
Author: Christoph Junghans
Date: Wed Aug 31 14:24:05 2016 -0600
Build und install cmake module
commit 3a3173b018f30d03df5f3166d459888f2669fe25
Author: Matteo Frigo
Date: Wed Aug 31 06:14:51 2016 -0400
C++ compatibility
Although FFTW is a C program, we try to make it compilable by a C++
compiler as well. Implicit cast void * ==> double * is not allowed
in C++.
commit 5fd9609eaed60360ce84d98add5d9548093e0bdc
Author: Matteo Frigo
Date: Fri Aug 12 04:24:52 2016 -0400
Updated NEWS
commit 402d2508fe970770d9316d9c83f21d6fc268ba12
Author: Matteo Frigo
Date: Fri Aug 12 04:21:33 2016 -0400
Fix race condition when destroying a plan.
More generally, this patch calls the planner hooks when destroying a
plan. The intended usage is that the hooks do in fact acquire a lock.
commit 432835f2cd37d2cb8b9528ac8ef983b3b38738f2
Author: Matteo Frigo
Date: Tue Aug 9 05:29:39 2016 -0400
MSVC fixes by Carsten Steger
* don't mix declarations and statements, stick to ANSI C
* suppress some warnings with Intel cc
* undefined variable in x86-cpuid.h when
(_MSC_VER > 1500) || (_MSC_VER == 1500 & _MSC_FULL_VER >= 150030729)
commit c018cbe430fd6b2af31d594c27a0aaf711292567
Author: Matteo Frigo
Date: Thu Aug 4 06:36:29 2016 -0400
Fix SIMD autodetection on amd64 when (_MSC_VER > 1500)
commit d5055c9ae2e60f191f6cc2e8b5200fd06dbdb6be
Author: Matteo Frigo
Date: Sun Jul 31 13:42:00 2016 -0400
revise README.md language
commit 0af8d8b9eea0750add8be0e6dec18841ee61424e
Author: Matteo Frigo
Date: Sun Jul 31 13:39:49 2016 -0400
revise README.md language
commit 0d026e09f9b514cb86bbc7977ad0a03b664b95de
Author: Matteo Frigo
Date: Sun Jul 31 13:37:09 2016 -0400
Attempt to tell users to download official tarballs from fftw.org instead of github
commit b405994456f9a87f2170ba19536d4c4d8278682f
Author: Matteo Frigo
Date: Sat Jul 30 16:33:22 2016 -0400
update AUTHORS
commit 4d0c1894fb37c61b0f0a42b50afd435d226f6b9e
Author: Matteo Frigo
Date: Sat Jul 30 15:18:06 2016 -0400
Fixes for Windows cross-compilation
These days mingw by default produces binaries that depend on
libgcc-sjlj-1.dll, which defeats the whole historical point of mingw
(produce vanilla win32 binaries with no GNU stuff).
Add a hack to link with -static-libgcc, which avoids the problem.
commit a17d44eeb3100780ba106a22f497d47a43be7642
Author: Matteo Frigo
Date: Sat Jul 30 11:39:09 2016 -0400
Misc fixes.
* sed s/avx[_- ]128[-_ ]fma/avx-128-fma
* avoid some signed/unsigned casts
commit f3688be112ed0099b4c57970db74c08373f3604d
Author: Matteo Frigo
Date: Sat Jul 30 10:52:53 2016 -0400
Fix SIMD autodetection
* AVX was not testing for OSXSAVE support
* AVX2 was broken (issuing XGETBV without checking for its presence---failing
on atom)
* AVX512 was broken in the same way as AVX2, I have guessed a fix but
I have no way to test it.
commit 7fce2ae37f8338bd7e021b1a406c75b213c31c77
Author: Matteo Frigo
Date: Fri Jul 29 07:48:10 2016 -0400
document fftw_make_planner_thread_safe()
commit 6167b92e3362f2d116274daa561c0d788fb670d4
Author: Matteo Frigo
Date: Fri Jul 29 07:28:03 2016 -0400
rm README-bench
It appears in tests/README
commit cc9640cbbaa70e6645a0ea46be0508268905c2ba
Author: Matteo Frigo
Date: Fri Jul 29 07:27:25 2016 -0400
Add README-bench
commit d82fe4f3e06bdbf92b09324e36f4d477bc5fe376
Author: Matteo Frigo
Date: Fri Jul 29 07:25:00 2016 -0400
Do not enable avx128-fma unless the user asks for it.
Adding SIMD instruction sets automatically is user-hostile behavior.
Also, update the manual to reflect the new SIMD support
commit dc32329871d304de8d95ad290973844dfbc6101f
Author: Matteo Frigo
Date: Fri Jul 29 07:00:55 2016 -0400
Update NEWS for 3.3.5
commit 2ed010c62b1bc8ca6b23bfda2e09b8c28e1e8bcc
Author: Matteo Frigo
Date: Sun Jun 5 07:07:15 2016 -0400
Clean up some int<->size_t confusion
commit ea86c49ac7470a646d1e6a4fa007ecbda6ab56c4
Author: Matteo Frigo
Date: Sat Jun 4 20:33:15 2016 -0400
Unused Variable Police
commit d9a3f48343bda0a88c8a87cab329d95426ddfcb9
Author: Matteo Frigo
Date: Sat Jun 4 20:30:12 2016 -0400
Integral Type Police
clear some int/unsigned/size_t confusions
commit 29cee6cc95d434321292d013d6a7be4c55379a49
Author: Matteo Frigo
Date: Sat Jun 4 19:50:10 2016 -0400
Cast Police
Eliminate some useless (but harmless) int<->size_t conversions.
commit d7c566eb98523c7c0bafae734c7894a5a3595771
Author: Matteo Frigo
Date: Sun Mar 13 17:50:45 2016 -0400
Clarify ambiguous/wrong documentation of halfcomplex output format.
commit 6543818e3091ea788a1aac41d06ca343e672f103
Author: Matteo Frigo
Date: Wed Jan 20 18:18:14 2016 -0500
Cleanup
Rewrite Unique.make in more idiomatic caml style,
strongly typed.
commit 4965e33c6c98484b66787f1891cfe4f689becee5
Merge: 119aa4c4 f8a73593
Author: Matteo Frigo
Date: Wed Jan 20 15:14:32 2016 -0800
Merge pull request #53 from artemkin/master
Fixed unique token generation in genfft
commit f8a73593a499efc751103460ff2f07d8b1e2ff0c
Author: Stanislav Artemkin
Date: Thu Jan 21 01:17:30 2016 +0400
Fixed unique token generation in genfft
Unique token generation was based on the assumption that OCaml compiler
won't inline a given piece of code. Starting from 4.02.0 it does more
aggressive inlining and breaks this functionality.
commit 119aa4c4a893f32dfd837a84fac9453b6dae6680
Merge: 8c7a7af1 e41df2c3
Author: Matteo Frigo
Date: Wed Sep 30 15:38:00 2015 -0400
Merge pull request #48 from rleonid/master
Replace depracted usage of Pervasives or.
commit e41df2c3cac7c3e69586c07f80f1bb0a24dccd5a
Author: Leonid Rozenberg
Date: Wed Sep 30 15:22:16 2015 -0400
Replace depracted usage of Pervasives or.
commit 8c7a7af184a63064325fa542a8d1d7f4e3b4b8aa
Author: Matteo Frigo
Date: Tue Sep 8 10:35:18 2015 -0400
Clarify how to bootstrap fftw from the git repository
commit a0cbff67eae9ab66f6f2b4cf2ea79de6c95d7d61
Author: Matteo Frigo
Date: Tue Sep 8 10:28:49 2015 -0400
Clarify that ocamlbuild is necessary for --enable-maintainer-mode
commit f6339eadef8a62432ea2f2017ce0b4a1954ea738
Author: Steven G. Johnson
Date: Wed Aug 5 11:11:26 2015 -0400
fix LaTeX typo, thanks to Gael Lorieul
commit 8cd9bfa347289143a00fa0d5eea30f4766192d46
Author: Erik Lindahl
Date: Wed May 27 00:15:57 2015 +0200
Update VSX SIMD to avoid inline assembly
Thanks to some help from Michael Gschwind of
IBM, this removes the remaining inline assembly
calls and replace the with vector functions. This
avoid interfering with the optimizer both on GCC
and XLC, and gets us another 3-10% of performance
when using VSX SIMD. Tested with GCC-4.9, XLC-13.1
in single and double on little-endian power 8.
commit 579cec9a64cc177e673f006eb112d488be21b230
Author: Erik Lindahl
Date: Tue May 26 19:27:58 2015 +0200
Enable SSE2 automatically with AVX,AVX2, or AVX512.
256-bit AVX can be significantly slower than
128-bit SIMD. Despite recommendations many
distributions appear to only enable AVX, but not
SSE. This fixes the problem by also enabling
SSE when we use the wider SIMD instructions.
commit dd80210ec433938876575e2435e12d7e630872e7
Author: Erik Lindahl
Date: Tue May 26 19:09:40 2015 +0200
Turn AVX-128 into AMD-specific AVX-128-FMA
The only platform where AVX-128 really matters
is AMD (since the compute units can execute a
single 256-bit or two 128-bit SIMD instructions),
so now we only use it there which means we can
also enable FMA instructions.
commit b3105ed9529846ca8dd9267e46d7bcd2ebb12ff6
Author: Matteo Frigo
Date: Mon May 25 17:33:15 2015 -0400
Fix broken avx/32-bit compilation
commit d3442a8395e1fc6e77490c3f34c868b1998e4e96
Author: Matteo Frigo
Date: Mon May 25 17:27:31 2015 -0400
rm hooks api's, add fftw_make_planner_thread_safe() api
fftw_make_planner_thread_safe() installs a lock around the planner.
It is guaranteed to be atomic and idempotent.
I wrote an emulation of pthread mutex initializers on Windows, but I
haven't even compiled the Windows code yet.
commit 842596fe6bfb277effc8f8f8db7e1c4008bb59e1
Author: Matteo Frigo
Date: Mon May 25 11:11:58 2015 -0400
Add TODO's
commit eff7dfcd526e90539f169cfff2374ceb2fd2dd0e
Author: Matteo Frigo
Date: Mon May 25 10:50:21 2015 -0400
add TODOs
commit 0e53e3e9d2640a895a69c5aff4a676c156271141
Author: Matteo Frigo
Date: Mon May 25 10:48:03 2015 -0400
Add argument to planner hooks
commit 94ef591d61c8e78e87c65f9779eb003fc7f1ba6b
Author: Matteo Frigo
Date: Mon May 25 10:37:24 2015 -0400
Update shared-version-info
We added an API (planner hooks), so the shared version info
needs to be bumped.
commit 9ef9ec85588c026e6a80b1475df24ba20d098e8e
Author: Matteo Frigo
Date: Mon May 25 10:27:25 2015 -0400
Bump version to 3.3.5
commit 593d55932959366918e209fbbd2f4719d39d448c
Author: Romain Dolbeau
Date: Wed May 13 16:42:23 2015 +0200
Typo ; Fixes #41
commit cd2b27d1600d80ba719f1b70094886e39cf145a3
Author: Erik Lindahl
Date: Thu May 7 17:45:43 2015 +0200
Separate routines to query 128-bit AVX support
This also disables 256-bit AVX for current AMD processors
that work better with 128-bit AVX. Note that this is not
detected by the timing routines since the effect is only
apparent when using multiple cores.
commit a1cf4158dd829853bd9f6b8c4c4951d7495c9e64
Merge: b6135085 0331b39c
Author: Romain Dolbeau
Date: Mon Apr 20 22:01:15 2015 +0200
Merge branch 'master' of github.com:FFTW/fftw3
commit 0331b39cd3641a8ac89be27dbde3e41204fd1888
Merge: 38b93ccf d2ea399c
Author: Erik Lindahl
Date: Mon Apr 20 21:09:44 2015 +0200
Merge branch 'experimental-simd'
Merged in new SIMD architectures from separate branch.
commit d2ea399c46174db45838ca6a3b917cf880970921
Author: Romain Dolbeau
Date: Thu Apr 16 08:54:58 2015 +0200
Fix stack alignment (alloca) for generic256.
commit b6135085bd1ee2e2c6c82b06e78d492e4f242cca
Author: Romain Dolbeau
Date: Tue Apr 14 10:17:38 2015 +0200
Add a configure option to disable building the documentation in doc/. This is useful if some documentation tools are missing on the host (i.e. fig2dev in maintainer mode).
commit 38b93ccfc3786d1c23726dc939de558f4dd2a2d3
Author: Romain Dolbeau
Date: Mon Apr 13 14:16:28 2015 +0200
In maintainer mode, detect whether 'indent' is available and is GNU indent.
BSD 'indent' in e.g. MacOSX doesn't support -kr, which is the default style in FFTW3.
Fallback to 'indent' with no option for non-GNU 'indent', or 'cat' if 'indent' is not available.
This should fix GitHub issue #13.
commit 96eb0ad31c8d0c226a6aeb95e68bda90dd7e6f6a
Author: Romain Dolbeau
Date: Sun Apr 12 13:49:39 2015 +0200
missing AC_ARG_ENABLE for --enable-fma
commit 24ff943f4e99458d41db543305a2c945ba2ba429
Author: Romain Dolbeau
Date: Sun Apr 12 13:47:24 2015 +0200
Revert "reinstate --enable-fma ; not enabled by default for AVX2 & AVX-512 (will ad a warning later)"
This reverts commit 40691a49eea40d305405fe527e174e8067606dae. A different fix is needed.
commit 37a0dbc10f0199fd431f0b5d8b42143cc2a2a88d
Author: Romain Dolbeau
Date: Sun Apr 12 13:39:28 2015 +0200
Add sanity check & warning in AVX2 & AVX-512
commit 40691a49eea40d305405fe527e174e8067606dae
Author: Romain Dolbeau
Date: Sun Apr 12 13:38:29 2015 +0200
reinstate --enable-fma ; not enabled by default for AVX2 & AVX-512 (will ad a warning later)
commit 7960d08a3fe74b38d8dfdd20917efb52d141d53a
Author: Erik Lindahl
Date: Wed Apr 8 22:55:28 2015 +0200
Improved compiler flags for OS X
Separate detection for AVX/AVX2 on gcc and clang.
Clang works for AVX, but AVX2 leads to a compiler
crash. Issue 20471870 has been filed with Apple.
When using gcc, we now request to use the external
system assembler, or the AVX/AVX2 instructions will
cause errors.
commit 91928338b767b84742e8ec86da6b4864381ed889
Author: Erik Lindahl
Date: Wed Apr 8 22:54:41 2015 +0200
Fix alignments for generic simd.
commit eaaec9b6ea9dc0f0656d953639c325855cb3bbee
Author: Erik Lindahl
Date: Wed Apr 8 21:16:13 2015 +0200
Made api versions more verbose for 128-bit AVX.
commit 4b3dbf7009b020bffe7c9c96a5b24c87496fd058
Author: Erik Lindahl
Date: Wed Apr 8 21:09:50 2015 +0200
Make 128/256 bit generic simd separate options
These will only be used on esoteric and/or new
architectures, which likely also miss cycle counters.
In this case the widest simd would be picked automatically
based on flops estimates, so to give the user more
control it is better to provide separate options
to enable/disable these two choices.
commit cbe2a4a64064d12b9b817235906d61a996c00be1
Author: Romain Dolbeau
Date: Mon Mar 30 13:35:47 2015 +0200
AVX-512: minor fix(sp)&improvement(dp) to VDUPL/VDUPH
commit 5379243044ea4113b9cbde25fd097195817b3653
Author: Romain Dolbeau
Date: Sun Mar 29 14:17:13 2015 +0200
AVX-512: fix typo; fix shuffle parameter in SP; _mm512_set1 exists now.
commit 90f9610ee6708efc11c848b5e078dd92997ffa25
Author: Romain Dolbeau
Date: Sun Mar 29 14:14:02 2015 +0200
Fix typo in KCvi
commit 2b44c9213a11816506b1bd3d6b7316ed1ed65a15
Merge: 5c5bed23 1f28d2d3
Author: Romain Dolbeau
Date: Sun Mar 29 10:49:42 2015 +0200
Merge branch 'experimental-simd' of github.com:FFTW/fftw3 into experimental-simd
commit 5c5bed2365693b5f57503f6aad35264a3b3d86b9
Author: Romain Dolbeau
Date: Sun Mar 29 10:48:13 2015 +0200
typo for AVX-512
commit 1f28d2d3693bd919c674e08dc76726cf56d3648f
Author: Romain Dolbeau
Date: Sun Mar 29 10:48:13 2015 +0200
typo
commit a8845007ecb07fd0cc91994c574b1008c64708e0
Author: Romain Dolbeau
Date: Thu Mar 19 19:22:44 2015 +0100
Generic SIMD support for gcc
While not as optimized as the specific SIMD ports, this
enables the usage of gcc's generic vector representation,
which usually gets implemented with SIMD instructions on
most hardware. Double precision implementations for 256
and 128 bits by Romain Dolbeau, merged into a single
generic SIMD implementation and single precision added
by Erik Lindahl. The option --enable-generic-simd will
turn on both 128 and 256 bit versions, and the timers will
choose the fastest codelets.
commit 56bbdbab2f03ebae92fd2c52b9509fb3b8ffe226
Author: Erik Lindahl
Date: Tue Mar 24 19:35:31 2015 +0100
Added Power8 VSX SIMD support
Power8 is a descendent of Power7, but the switch to little endian
means the old altivec SIMD will not work due to shifts on load
and store, and the new VSX instructions are much improved.
This adds support for both single and double precision VSX SIMD,
using either gcc (tested with version 4.9) or IBM xlC (tested with
version 13.1.2, slower than gcc). Clang from llvm-3.7 is still too
buggy to compile VSX code correctly, but flags and detection has
been added so it will work with a correct clang.
commit 8aa91763af07767f3ebb71a9836a69e3b3385cab
Author: Romain Dolbeau
Date: Tue Feb 24 09:27:07 2015 +0100
Double precision Neon SIMD for aarch64
--enable-neon now works in double precision for 64-bit Arm.
Support added for the generic timer virtual counter in armv7a
(optional, available in A15 & A7) & armv8. They are privileged, but
should be made user-readable in recent linux (> 3.19.1 for v7a,
most for v8).
Architecture Reference Manual ARMv7-A and ARMv7-R edition:
E.7.16 CNTVCT, Virtual Count register, system level
Architecture Reference Manual ARMv8, for ARMv8-A architecture
profile Beta: D7.5.17 CNTVCT_EL0, Counter-timer Virtual Count register
commit aa26395250c9c4d6831e8e5017650ea70af56a28
Author: Romain Dolbeau
Date: Thu Sep 5 10:53:42 2013 +0200
AVX-512 SIMD support
New configure flag --enable-avx512
commit de81bfdb66b9bc867e389bbaf67b56490ca2e2cd
Author: Erik Lindahl
Date: Wed Mar 25 15:49:33 2015 +0100
128-bit AVX2 SIMD support
Add 128 bit support for AVX2. Similar to AVX-128, this
improves slightly on SSE2 due to more efficient instructions,
and the shorter SIMD width is beneficial in some cases. Both
128- and 256-bit flavors will be built automatically with
--enable-avx2, and the timing routines will chose the best one
automatically.
commit da988fa4c53fb63fafe2eeff3da4abad93e7d014
Author: Erik Lindahl
Date: Sat Mar 28 12:52:52 2015 +0100
AVX2 kernels and CPUID support
Initial AVX2 code from Romain Dolbeau. Modifications,
cpuid and more compiler flags from Erik Lindahl.
New --enable-avx2 configure flag supported.
commit d7d9b9d2b71bd93bc4d4fa82d46a9c013291b7fe
Author: Romain Dolbeau
Date: Tue Sep 3 10:02:53 2013 +0200
KCvi [Knight Corner Vector Instructions] SIMD support
This adds SIMD support for the first generation of Xeon Phi.
commit b606e3191e5b65e2e13f67ef7dad5b1e7c40206c
Author: Erik Lindahl
Date: Wed Mar 25 01:44:17 2015 +0100
Improved AVX SIMD
Previously, some kernels were actually faster with the old SSE2
SIMD, which made it necessary to compile with both sse2 and avx
for good performance. This adds 128-bit AVX kernels which are
enabled together with the standard AVX kernels. Apart from
being encoded with AVX rather than SSE instructions
(depending on compiler flags), it also uses a couple of new
instructions only available with AVX that use fewer micro-ops.
These instructions have also been added to the 256-bit AVX SIMD
implementation. No new configure flags needed, it is just faster.
commit 131027afcd3ed5d7c0185611036431c1035a734a
Merge: 0ea3051f 56af330f
Author: Matteo Frigo
Date: Sun Mar 22 16:24:29 2015 -0400
Merge pull request #37 from maxlevesque/patch-1
add indent to requirements
commit 56af330fc1600a856241968482ecd443bc2c26aa
Author: Maximilien Levesque
Date: Sat Mar 21 22:41:26 2015 +0100
add indent to requirements
Without indent, `make` reports errors in somewhere in a directory called codelets.
It also reports "/bin/bash: indent: command not found" not far away.
For my Ubuntu 14.04 flavor, a simple `sudo apt-get install indent` made `make` work as expected.
commit 0ea3051f99f2931a46a66aef8862517cd9c5f3c7
Merge: 506c1634 69a82a6c
Author: Matteo Frigo
Date: Mon Feb 16 06:36:46 2015 -0500
Merge pull request #32 from psteinb/2d_mem_layout_complying_to_text
changed ny to n1 and nx to n0 so that the labels match the text
commit 69a82a6c5ff4d2169a7f8a0afda9f3c68f24eb2a
Author: Peter Steinbach
Date: Mon Feb 16 09:10:23 2015 +0100
changed ny to n1 and nx to n0 so that the labels match the text, it's quite confusing otherwise
commit 506c16346f9fc57444b179e542e88225e3c3e923
Author: Steven G. Johnson
Date: Fri Jan 30 15:02:17 2015 -0500
fix #29
commit d94666815b9a0073e4ac8cc48f88e18ac931bd45
Merge: ded00512 9831bbd1
Author: Steven G. Johnson
Date: Sun Dec 7 16:39:15 2014 -0500
Merge pull request #27 from mpip/master
avoid segfaults due to double free
commit 9831bbd14ca5b963ad1dba260c86151c94e000ee
Author: Michael Pippig
Date: Sat Dec 6 15:03:33 2014 +0100
avoid segfaults due to double free
If fftw_mpi_mkplans_posttranspose() fails, the plans cld3, cld2rest,
and cld2 are destroyed at nada and must be set to NULL. Otherwise,
a second destroy at nada in mkplan() will cause a segfault.
commit ded0051238f129fb65846e822191706c9b1f5221
Author: Matteo Frigo
Date: Sun Nov 16 09:45:16 2014 -0500
Conciseness Police
commit 113e1086966fdff4c172672753cc880e6bc74d3d
Author: Matteo Frigo
Date: Sun Nov 16 09:41:05 2014 -0500
add {before,after}_planner_hooks
FFTW now calls fftw_before_planner_hook() before creating a plan, and
fftw_after_planner_hook() afterwards. This allows users, e.g., to
grab a lock.
TBD: add arguments.
commit 28635e1d5f0a0079af3e7d00cd0678c4745e2c2b
Author: Matteo Frigo
Date: Sun Nov 16 09:22:47 2014 -0500
avoid multiple declarations of fftw_alignment_of()
fftw_alignment_of() was declared both in the API header file fftw3.h
and in the internal header file ifftw.h. While there is nothing wrong
with this, it breaks the property that all exported symbols are
defined in the API directory. E.g., I am not sure what happens on
windows without the proper DLLEXPORT nonsense.
To avoid any issues, rename the internal routine to
fftw_ialignment_of(), and define an API wrapper.
commit 36597576e4c3c5dc3efd7d8b57a1bbad505715aa
Author: Steven G. Johnson
Date: Tue Aug 12 12:29:50 2014 -0400
fix #21 (don't use float128 on Portland compilers, which pretend to be gcc)
commit cde4559ba9b822166cb88a84a0994fdb83a2061c
Author: Matteo Frigo
Date: Sat Jul 26 20:09:38 2014 -0400
Avoid transforming uninitalized data.
In r2c/c2r transforms when using 4-way SIMD, sometimes FFTW uses the
following hack: to transform an odd number of inputs, it copies the
input into a buffer that holds space for one extra input; it
transforms the buffer (now comprising an even number of inputs, as
required by SIMD); it copies back the odd number of transformed
inputs, ignoring the padding element.
The extra input was uninitialized until now. This is ok because we
ignore the transform of the uninitialized input. Transforming
uninitialized data may cause floating-point exceptions, an effect that
is observable. This patch initializes the additional elements to
zero, thus avoiding the problem.
This patch also includes a test, but the test is disabled by default
because it is nonportable. To observe the FP exception, one must use
feenableexcept(), which appears to be a GNU-ism.
commit 2493129c332197c5195ecb6796cfeb5e8d92e09a
Author: Steven G. Johnson
Date: Thu Jul 10 10:41:38 2014 -0400
fix #19: missing Fortran interface for fftwq_alloc_real
commit 07ef78dc1b273a40fb4f7db1797d12d3423b1f40
Author: Steven G. Johnson
Date: Tue Jul 8 11:14:15 2014 -0400
fix #18 (disable float128 for CUDACC)
commit 2fd372f31ab7c6417de0634199bcd5b7765df926
Author: Matteo Frigo
Date: Sat Jun 28 17:17:19 2014 -0400
git rm *~
commit 203e0d610ec1e413bb426a7d60fd5e2a206a2830
Author: Matteo Frigo
Date: Thu Apr 3 15:46:19 2014 -0400
Fix wrong boolean precedence in hppa cycle counter.
Thanks Jens Keiner for the bug report. For some reason nobody noticed
this in years.
commit f8048af3e30cb3f65befd0aa2f3d16de3eeb5583
Author: Steven G. Johnson
Date: Tue Mar 4 15:23:11 2014 -0500
more .gitignore additions
commit 5a51b3fe98509cc7e7ba5d3e17a3381777ad4731
Author: Steven G. Johnson
Date: Tue Mar 4 15:21:31 2014 -0500
some fixes for make distcheck
commit 836af27f5d780970c87e436da882c9928e09c0f0
Author: Steven G. Johnson
Date: Tue Mar 4 13:42:02 2014 -0500
copyright year update
commit 853f9f7cad1a8d3e92e6767562e4cd2d336164d2
Author: Steven G. Johnson
Date: Tue Mar 4 13:39:18 2014 -0500
updates for 3.3.4
commit bf30f5aeea1c2927b302b13dc7579acf9f2adc12
Author: Steven G. Johnson
Date: Tue Mar 4 13:30:00 2014 -0500
another file in .gitignore
commit c82b4fd61796715b1043982b1d4af49047f90238
Author: Steven G. Johnson
Date: Tue Mar 4 10:39:09 2014 -0500
add .gitignore
commit 146fa8d61fca4a06a85c70d7167ac925575df02b
Author: Steven G. Johnson
Date: Thu Jan 16 10:47:40 2014 -0500
added fftw_sprint_plan to output plan info to a string (so that the caller can be more flexible about how it is displayed)
commit 53e1fdbc07133b53ffbbd51c56b57a89880c0b21
Author: Steven G. Johnson
Date: Thu Jan 16 10:26:48 2014 -0500
document fftw_alignment_of (since I found it useful in Julia, other people may too)
commit 7dbc7067e99477312acae30a9001c0dffa9bb428
Author: Matteo Frigo
Date: Tue Nov 19 19:08:44 2013 -0500
group together AC_CHECK_DECLS for functions in stdlib.h
commit fb70e413bddca578b2b72e0cac281d5c9a3c4101
Author: Matteo Frigo
Date: Tue Nov 19 07:33:59 2013 -0500
Be more careful in detecting sinl(), cos(), memalign(), posix_memalign()
commit 40f59a1d0f9bf384826595c499b0e7fe99aa1df5
Author: Matteo Frigo
Date: Tue Nov 19 06:20:43 2013 -0500
Fix autodetection of cosl(), sinl()
Autoconf must have changed since we last looked. Thanks
Åke Sandgren for the fix.
commit 7e66dc5a495edc855dc9e156767172eaeabee335
Author: Matteo Frigo
Date: Sat Oct 26 17:31:00 2013 -0400
Fix wrong example in fftw-wisdom-to-conf.1
Thanks Julian Taylor for the bug report.
commit dd3283ac7d2e916bdeccb7229a669fcc2ef7ff83
Author: Matteo Frigo
Date: Tue Oct 1 07:03:51 2013 -0400
Use "bench$(EXEEXT)" instead of "bench"
Seems to be necessary on Windows.
commit c6acf03f53d217c9041eae3d381ad41b942dc9d9
Author: Steven G. Johnson
Date: Fri Sep 20 09:26:08 2013 -0400
fix typo
commit f230f8cf903f1e2bb1261ed2f8657a99ac12a9ca
Author: Matteo Frigo
Date: Thu Jul 11 19:28:50 2013 -0400
Fix fftw-wisdom-to-conf
Apparently we broke fftw-wisdom-to-conf many years ago and nobody
noticed. Thanks Florian Oppermann for the bug report.
commit c74775bff0c164611377b29d95b3f6a6e8192005
Author: Matteo Frigo
Date: Tue Jun 4 10:31:33 2013 -0400
Somehow the NEWS entries for fftw-3.1.[23] were missing from the trunk.
commit c87bdc8bfd7cbf753bbe0635ea82613bc271220d
Author: Matteo Frigo
Date: Mon Jun 3 06:59:35 2013 -0400
note fixes for texinfo-5
commit ed390e3a385832e1faa452032f170510be6ed280
Author: Matteo Frigo
Date: Sun Jun 2 09:10:01 2013 -0400
version.texi should not be in git
commit aff23d05642705f738f788648c060085bdc476d6
Author: Matteo Frigo
Date: Sun Jun 2 09:05:50 2013 -0400
Fix the manual to work with both texinfo-4 and texinfo-5.
Texinfo has been stable for the first 15 years of FFTW's history.
Then some genius, with too much time in his hands and on a mission to
deliver the world from the evil of the C language, decided to rewrite
makeinfo in Perl, the old C version of makeinfo being, as I said,
evil. The official excuse for the rewrite was that now I can have my
manual in XML format, as if XML were a feature.
The result of this stroke of genius is that texinfo-5 has different
rules for macro expansion than texinfo-4 does, specifically regarding
whether or not spaces after a macro are ignored. Texinfo-4 had weird
rules, but at least they were constant and internally more or less
consistent. Texinfo-5 has different rules, and even worse the rules
in texinfo-5 are inconsistent between the TeX and HTML output
processors. This situation makes it almost impossible for us to
produce a manual that works with both texinfo 4 and 5 in all modes
(TeX, info, and html). The @noindent/@refill hack is my best shot at
patching this situation.
commit b0308275bb63a9cb3edb5847fa130f901deaf47e
Author: Matteo Frigo
Date: Fri May 17 11:39:05 2013 -0400
fftw_wisdom.1.in: document the --threads option.
commit 7eb9af0354f7663fa89daa56163d5bc5865bcec1
Author: Matteo Frigo
Date: Wed Mar 27 13:12:15 2013 -0400
Define the version number as M4 macros, so that it is defined only once.
We used to have two version strings: the package number FFTW-X.Y.Z and
the libtool number CURRENT:REVISION:AGE with the invariant that
REVISION==Z. Unfortunately in the fftw-3.3.3 release we forgot to
change REVISION, with the result that fftw-3.3.3 and fftw-3.3.2 have
the same REVISION number.
Hopefully this patch will prevent similar screwups in the future.
commit e67d16ed0b81b0e01124c7cdee2320bfea2fd6e4
Author: Matteo Frigo
Date: Sun Mar 17 19:47:57 2013 -0400
note that these scripts are not meant for normal users
commit b892c705c7051bcd27c0939070e515fe85f68bb2
Author: Matteo Frigo
Date: Sun Mar 17 19:45:52 2013 -0400
add README.md for github's convenience
commit 029db460f692ea9fefc7d0efdf8e11b5d51215b0
Author: Matteo Frigo
Date: Sun Mar 17 19:44:00 2013 -0400
Update README for people who download the git repository.
commit 128e9ddbde76a63c7f255b258ff02bd6766cbaa4
Author: Matteo Frigo
Date: Sun Mar 17 19:37:40 2013 -0400
Remove reference to obsolete mailing list.
commit 4b1d3b63d64a01216c023389565e40ca03d6be2f
Author: Matteo Frigo
Date: Sat Mar 16 09:47:59 2013 -0400
mkdist.sh: use git instead of darcs
Use git instead of darcs to generate the ChangeLog. Also, refuse to
create a distribution if git HEAD does not have a tag, to prevent a
common mistake.
commit fe84f5d9eeef9f773b0785ba91032ab5b7677461
Author: Matteo Frigo
Date: Sat Mar 16 09:26:03 2013 -0400
remove some junk '*~' files created by the darcs->git conversion
commit 2f9d0a41eec86def6fe9160dac1be172bb241eba
Author: stevenj
Date: Thu Feb 7 14:22:12 2013 -0500
use Win32 threads, not pthreads, if both are present (it's not clear why Windows users would ever want the latter); see also https://github.com/JuliaLang/julia/issues/2015
commit b8623189967ed7eb1ca50e80f2b5ee2d6f3ca0ad
Author: stevenj
Date: Thu Feb 7 14:13:40 2013 -0500
I found it useful in the Julia interface to call fftw_alignment_of (in order to check plan applicability), in which case we need to IFFTW_EXTERN it for Windows; might be worth considering documenting this function
commit 23b1bf3e19198d2c4575bf6f305cd41ebc17124c
Author: athena
Date: Sat Jan 12 15:35:46 2013 -0500
Increase timing interval to 5000 cycles on x86_64
commit 6e615417da7e1c7cba49b1a73c9edcc15d938cf9
Author: athena
Date: Tue Dec 4 15:58:22 2012 -0500
make -lm a private library in fftw.pc.in
Julian Taylor says:
Make -lm a private library, libfftw is linked against it so clients
don't need it. You can use pkg-configs --static flag for static
linking. this works on all systems where indirect linking works,
probably on all others pkg-config is not supported anyway (wild
guess).
commit 553849f32bcc82a17de11c76cfa9b2f672bfb89e
Author: athena
Date: Tue Dec 4 15:54:58 2012 -0500
Escape minus signs in man pages
http://lintian.debian.org/tags/hyphen-used-as-minus-sign.html says:
By default, "-" chars are interpreted as hyphens (U+2010) by groff,
not as minus signs (U+002D). Since options to programs use minus
signs (U+002D), this means for example in UTF-8 locales that you
cannot cut and paste options, nor search for them easily.
Thanks Julian Taylor for the patch.
commit 715c7ea8347a5dad7d97a0c5d81a87801e826ada
Author: athena
Date: Tue Dec 4 15:53:28 2012 -0500
Change texinfo category to Development
commit 01810ba2a427ee086a4a5323e991dd19e2d715be
Author: stevenj
Date: Sat Nov 24 22:37:54 2012 -0500
fixed deadlock bug caused by bogosity flag getting out of synch between processes; thanks to Michael Pippig for the bug report
commit 69aa82642e26a8eb5292a8a7b83250e8df619065
Author: athena
Date: Wed Nov 21 18:34:29 2012 -0500
Updated NEWS
commit e98f888b9457ce5855491279c6c0ef72e23a374c
Author: athena
Date: Wed Nov 21 18:33:15 2012 -0500
use 2x2 AVX transposition instead of individual stores.
This seems to improve single-precision AVX on Sandy Bridge machines.
commit 466f579cb8856a0709da1e6c6b5ca03360bc61a0
Author: stevenj
Date: Tue Nov 20 12:18:00 2012 -0500
revert part of Taylor patch to acx_mpi.m4: do not link -lmpi if mpicc works without libraries, as -lmpi may be some completely different MPI implementation
commit 610460226f6d5d2d7c4c53896b5aff9b1f108e4b
Author: stevenj
Date: Tue Nov 20 11:44:57 2012 -0500
fix deadlock bug (thanks to Michael Pippig for the bug report and patch, and to Graham Dennis for the bug report) in which some processes called MPI_Alltoall and some called MPI_Alltoallv
commit 512d8d783d6af373fca8376f79255b794df5bd31
Author: athena
Date: Mon Oct 29 15:20:01 2012 -0400
fix texinfo quirk
commit ff329890540002506c47717ebbc3959de30e5066
Author: athena
Date: Mon Oct 29 09:16:43 2012 -0400
clarify that padding only applies to in-place transforms
commit 905ded711f93fa3c94faa7623a5093525338fdeb
Author: athena
Date: Sun Oct 28 18:42:48 2012 -0400
make the index-computation logic less paranoid
The problem is that for each K and for each expression of the form P[I
+ STRIDE * K] in a loop, most compilers will try to lift an induction
variable PK := &P[I + STRIDE * K]. In large codelets we have many
such values of K. For example, a codelet of size 32 with 4 input
pointers will generate O(128) induction variables, which will likely
overflow the register set, which is likely worse than doing the index
computation in the first place.
In the past we (wisely and correctly) assumed that compilers will do
the wrong thing, and consequently we disabled the induction-variable
"optimization" altogether by setting STRIDE ^= ZERO, where ZERO is a
value guaranteed to be 0. Since the compiler does not know that
ZERO=0, it cannot perform its "optimization" and it is forced to
behave sensibly.
With this patch, FFTW is a little bit less paranoid. FFTW now
disables the induction-variable optimization" only when we estimate
that the codelet uses more than ESTIMATED_AVAILABLE_INDEX_REGISTERS
induction variables.
Currently we set ESTIMATED_AVAILABLE_INDEX_REGISTERS=16. 16 registers ought
to be enough for anybody (or so the amd64 and ARM ISA's seem to imply).
commit 1dacef5bde5cb6599f9d98e42495f7897f109787
Author: athena
Date: Sun Oct 28 18:33:24 2012 -0400
silence warnings
commit fb08724b27a05ca890c1da062c8d0385c22c02eb
Author: athena
Date: Sat Oct 27 09:58:49 2012 -0400
bump version to 3.3.3
commit c4d6abbc1c80eb612b2abccce728a06189780a69
Author: athena
Date: Sat Oct 27 09:55:15 2012 -0400
evaluate plans for >1ms when using gettimeofday()
The previous limit 10ms was too paranoid, and it made life difficult
on machines without an "official" cycle counter, such as ARM.
commit 172dd3def821c0898822a5ca72c3f5391553536c
Author: athena
Date: Sat Oct 27 09:46:04 2012 -0400
use 4-way NEON SIMD instead of 2-way
Kai-Uwe Bloem tried to warn me a year ago that 128-bit NEON was better
than 64-bit NEON even on machines with a 64-bit pipe, but I foolishly
did not listen. Now that 128-bit NEON pipes are starting to appear on
the market it is definitely time to switch.
commit 1c9c469f8727ab1780533226283746e7e9098694
Author: athena
Date: Wed Sep 26 14:21:12 2012 -0400
Note that fftw-3.3 includes MPI support
commit 2de12d67e5f4e34d39119f2e730e9d70e4df0c4e
Author: athena
Date: Wed Jul 18 11:25:40 2012 -0400
remove obsolete unused function
commit 6bc94ae7db56490e35c256bd4840608eea6ec150
Author: stevenj
Date: Fri Jun 29 15:57:14 2012 -0400
whoops, call omp_get_max_threads; thanks to Hanno Rein for the bug report
commit 747ece1503281aad7beb32448af9a7cad05eba52
Author: athena
Date: Sat Apr 28 10:55:09 2012 -0400
Fix libfftw3/libfftw3_threads chicken-egg problem
On most systems we want to build libfftw3 first, so that
libfftw3_threads can depend upon libfftw3. When producing a single
combined-thread library (e.g. on Windows) we want the opposite,
so that libfftw3 can include libfftw3_threads.
commit 4bcfb67da7211171d5f4b80a90845770bbd2e147
Author: athena
Date: Sat Apr 28 10:11:28 2012 -0400
updated NEWS for 3.3.2
commit cb553a8315ae9a700558956a190aac4658064b83
Author: athena
Date: Thu Apr 26 19:36:11 2012 -0400
change revision to 3.3.2
commit 98229b0d7673cfa15a8c339d305b09367b97d670
Author: athena
Date: Thu Apr 26 19:31:02 2012 -0400
Remove old aligned_main() hack.
On i386, in our benchmark program we used to manually aligned the
stack to 16-byte boundary via asm trickery. This was a good idea in
1999 (and it was actually necessary to make things work) but the hack
is now obsolete and it seems to break gcc-4.7. So the hack is now
gone.
commit 4e4c680e7497ee8bb87bb31451d10d71b8c205e2
Author: athena
Date: Thu Mar 29 16:26:16 2012 -0400
Bugfix: a couple of uninitialized values in the benchmark program
commit 229d864bde7f95f45ee23608b756926a3a20ddd0
Author: athena
Date: Tue Mar 20 19:03:47 2012 -0400
make libfftw{threads,mpi} depend upon libfftw for libtool purposes
Thanks Julian Taylor for the patch
commit f9a05701f2027906b68ff913713166310e18c8cc
Author: stevenj
Date: Tue Mar 6 04:44:00 2012 -0500
formatting tweak
commit cec6c01b2647796f5909cfe2d90ce040380da5c5
Author: athena
Date: Mon Mar 5 21:05:27 2012 -0500
destroying => overwriting
commit ad79a0ae3baf83548bc5c9597b0aae94e5226073
Author: stevenj
Date: Fri Mar 2 10:31:20 2012 -0500
note that WISDOM_ONLY is a documented flag
commit adf4cdab68e50778689170eb91270bb189aea1ac
Author: stevenj
Date: Fri Mar 2 10:27:08 2012 -0500
check for icc pretending to be gcc before including quad-precision decls; thanks to Michael Anselmi for the bug report
commit 99aeb386978a56c1a33f6fe7c9b7942421cf550e
Author: stevenj
Date: Fri Mar 2 10:23:19 2012 -0500
foo_CFLAGS needs to manually include AM_CFLAGS; thanks to Henry Gomersall for the Windows bug report
commit 6060dbccef23e01e603f44d42ab602ab89a9442e
Author: athena
Date: Sat Feb 25 15:21:39 2012 -0500
update for latest mingw
commit 06fff6523418bd7ee2478c081cec418eb73adee5
Author: stevenj
Date: Mon Feb 20 23:06:13 2012 -0500
added Fortran NEWS
commit 51e33866a2c0cc189954b8197e5053b3275fc564
Author: stevenj
Date: Mon Feb 20 23:00:13 2012 -0500
move non-portable extended/quad precision F03 interfaces into separate .f03 files (while keeping double/single in fftw3.f03 for minimal ABI breakage)
commit 545c90a1db20c5cd50f30d0f31d2334ec10cf8ac
Author: athena
Date: Mon Feb 20 11:21:57 2012 -0500
rm mpi/fftw3-mpi.f03 at make clean time; thanks Tyler Luchko for the bug report.
commit b7c0fcdee76b9f2efe194ec13d3b1ca97fadf376
Author: athena
Date: Mon Feb 20 11:18:24 2012 -0500
Disable a Visual Studion warning that was obnoxious enough for Sebastian Schuberth to send us a patch.
commit 4a0de08f4d1f026454fba2e053bd0573afb984d2
Author: athena
Date: Mon Feb 20 11:18:06 2012 -0500
Change version to 3.3.1
commit 49783f83e58d9bc7dc3ea7f1822fefe961361935
Author: athena
Date: Mon Feb 20 11:03:15 2012 -0500
Integrated Visual Studio AVX patches by Carsten Steger
commit bc9dc18402445ce9b357dea5ff2b20720773ddc5
Author: stevenj
Date: Wed Nov 9 10:13:32 2011 -0500
typo
commit 659e85e6065429fc6a6e4a005bc5f5068f707fb3
Author: stevenj
Date: Tue Nov 8 22:45:09 2011 -0500
add missing F77 set_timelimit function; thanks to Martin Diehl for the bug repory
commit cf1a5563a691fd0c25c67910926adb2ef936cbb7
Author: athena
Date: Sun Sep 25 10:54:56 2011 -0400
note requirement of /machine:x64 in windows x64 README
commit cb216e1fd71ab751f2de5e083bc0237cc98535c9
Author: athena
Date: Sun Sep 18 09:28:20 2011 -0400
AVX detection for MSVC
commit 8acf60e9e0c6417a91d9a21dddb1467feb4fd23e
Author: athena
Date: Tue Sep 13 14:58:29 2011 -0400
compile with C89
commit f3edf46ebdda4a632ccb0ece6c5fa0559014d24e
Author: athena
Date: Sat Sep 3 16:25:50 2011 -0400
use the same search pruning heuristics for threaded plans as for nonthreaded plans
commit f004d764307d0e1815c2f936a9a398825d367f2c
Author: athena
Date: Sat Sep 3 16:12:11 2011 -0400
shorten ESTIMATE planning time for certain weird sizes
FFTW includes a collection of "solvers" that apply to a subset of
"problems". Assume for simplicity that a "problem" is a single 1D
complex transform of size N, even though real "problems" are much more
general than that. FFTW includes three "prime" solvers called
"generic", "bluestein", and "rader", which implement different
algorithms for prime sizes.
Now, for a "problem" of size 13 (say) FFTW also includes special code
that handles that size at high speed. It would be a waste of time to
measure the execution time of the prime solvers, since we know that
the special code is way faster. However, FFTW is modular and one may
or may not include the special code for size 13, in which case we must
resort to one of the "prime" solvers. To address this issue, the
"prime" solvers (and others) are proclaimed to be SLOW". When
planning, FFTW first tries to produce a plan ignoring all the SLOW
solvers, and if this fails FFTW tries again allowing SLOW solvers.
This heuristic works ok unless the sizes are too large. For example
for 1044000=2*2*2*2*2*3*3*5*5*5*29 FFTW explores a huge search tree of
all zillion factorizations of 1044000/29, failing every time because
29 is SLOW; then it finally allows SLOW solvers and finds a solution
immediately.
This patch proclaims solvers to be SLOW only for small values of N.
For example, the "generic" solver implements an O(n^2) DFT algorithm;
we say that it is SLOW only for N<=16.
The side effects of this choice are as follows. If one modifies FFTW to
include a fast solver of size 17, then planning for N=17*K will be
slower than today, because FFTW till try both the fast solver and the
generic solver (which is SLOW today and therefore not tried, but is no
longer SLOW after the patch). If one removes a fast solver, of size say
13, then he may still fall into the current exponential-search behavior
for "problems" of size 13*HIGHLY_FACTORIZABLE_N.
If somebody had compleined about transforms of size 1044000 ten years
ago, "don't do that" would have been an acceptable answer. I guess the
bar is higher today, so I am going to include this patch in our 3.3.1
release despite their side-effects for people who want to modify FFTW.
commit 610f7976d8d31f385e2bce4fd8da0a5c770fb877
Author: athena
Date: Sat Aug 27 13:55:24 2011 -0400
Fix typo fftw_execute_dft_r2r => fftw_execute_r2r
Thanks KIU Shueng Chuan for the bug report.
commit 76f7c5558bb5eedb80ff3e67db798b4e493a5872
Author: athena
Date: Fri Aug 26 06:13:55 2011 -0400
In Rader's algorithm, compute the generator lazily.
The planner was spending a lot of time computing generators for
plans that were immediately discarded. Now we compute generators
only when absolutely needed.
commit e1b527d72aad02ddea04f266f6831fb13768fbc3
Author: athena
Date: Sun Aug 21 16:16:38 2011 -0400
Release notes for 3.3.1-beta1
commit 7079b5216c27e2320215f1eb10f6c6554a6c1ac1
Author: stevenj
Date: Fri Aug 19 19:59:17 2011 -0400
make fftw_mpi_block routine 10x faster, since it is being called zillions of times (thanks to Tom Vacek for the profiling)
commit e5c7931a01f350aa1f756bfa76307b317e2208e1
Author: athena