Subversion Repositories shark

Rev

Rev 2 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 pj 1
Version 2.1.2
2
 
3
  * Fixed incompatibility between our MPI test programs and MPICH with
4
    the p4 device (TCP/IP).  (The 2.1.1 transforms worked, but the test
5
    programs crashed.)
6
 
7
  * Added missing fftw_f77_threads_init function to the Fortran wrappers
8
    for the multi-threaded transforms.  Thanks to V. Sundararajan for
9
    the bug report.
10
 
11
  * The codelet generator can now output efficient hard-coded DCT/DST
12
    transforms.  As a side effect of this work, we slightly reduced the
13
    code size of rfftw.
14
 
15
  * Test programs now support GNU-style long options when used with glibc.
16
 
17
  * Added some more ideas to our TODO list.
18
 
19
  * Improved codelet generator speed.
20
 
21
Version 2.1.1
22
 
23
  * Fixed bug in the complex transforms for certain sizes with
24
    intermediate-length prime factors (17-97), which under some
25
    (hopefully rare) circumstances could cause incorrect results.
26
    Thanks to Ming-Chang Liu for the bug report and patch.  (The test
27
    program will now catch this sort of problem when it is run in
28
    paranoid mode.)
29
 
30
Version 2.1
31
 
32
  * Added Fortran-callable wrapper routines for the multi-threaded
33
    transforms.
34
 
35
  * Documentation fixes and improvements.
36
 
37
Version 2.1-beta1
38
 
39
  * The --enable-type-prefix option to configure makes it easy to install
40
    both single- and double-precision versions of FFTW on the same
41
    (Unix) system.  (See the installation section of the manual.)
42
 
43
  * The MPI FFTW routines now include parallel one-dimensional transforms
44
    for complex data.  (See the fftw_mpi documentation in the FFTW
45
    manual.)
46
 
47
  * The MPI FFTW routines now include parallel multi-dimensional transforms
48
    specialized for real data.  (See the rfftwnd_mpi documentation in the
49
    FFTW manual.)
50
 
51
  * The MPI FFTW routines are now documented in the main
52
    manual (in the doc directory).  On Unix systems, they are also
53
    automatically configured, compiled, and installed along with the main
54
    FFTW library when you include --enable-mpi in the flags to the
55
    configure script.  (See the FFTW manual.)
56
 
57
  * Largely-rewritten MPI code.  It is now cleaner and (sometimes) faster.
58
    It also supports the option of a user-supplied workspace for (often)
59
    greater performance (using the MPI_Alltoall primitive).  Beware that
60
    the interfaces have changed slightly, however.
61
 
62
  * The multi-threaded FFTW routines now include parallel one- and
63
    multi-dimensional transforms of real data.  (See the rfftw_threads
64
    documentation in the FFTW manual.)
65
 
66
  * The multi-threaded FFTW routines are now documented in the main
67
    manual (in the doc directory).  On Unix systems, they are also
68
    automatically configured, compiled, and installed along with the main
69
    FFTW library when you include --enable-threads in the flags to the
70
    configure script.  (See the FFTW manual.)
71
 
72
  * The multi-threaded FFTW routines now include support for Mach C
73
    threads (used, for example, in Apple's MacOS X).
74
 
75
  * The Fortran-callable wrapper routines are now incorporated into
76
    the ordinary FFTW libraries by default (although you can
77
    disable this with the --disable-fortran option to configure) and
78
    are documented in the main FFTW manual.
79
 
80
  * Added an illustration of the data layout to the rfftwnd tutorial
81
    section of the manual, in the hope of preventing future confusion
82
    on this subject.
83
 
84
  * The test programs now allow you to specify multidimensional sizes
85
    (e.g. 128x54x81) for the -c and -s correctness and speed test options.
86
 
87
Version 2.0.1
88
 
89
  * (bug fix) Due to a poorly-parenthesized expression, rfftwnd overflowed
90
    32-bit integer precision for rank > 1 transforms with a final
91
    dimension >= 65536.  This is now fixed.  (Thanks to Walter Brisken
92
    for the bug report.)
93
 
94
  * (bug fix) Added definition of FFTW_OUT_OF_PLACE to fftw.h.  The
95
    flag is mentioned several times in the documentation, but its
96
    definition was accidentally omitted since FFTW_OUT_OF_PLACE is the
97
    default behavior.
98
 
99
  * Corrected various small errors in the documentation.  Thanks to
100
    Geir Thomassen and Jeremy Buhler for their comments.
101
 
102
  * Improved speed of the codelet generator by orders of magnitude,
103
    since a user needed a hard-coded fft of size 101.
104
 
105
  * Modified buffering in multidimensional transforms for some speed
106
    improvements (only when fftwnd_create_plan_specific is used).
107
    Thanks to Geert van Kempen for his tips.
108
 
109
  * Added Andrew Sterian's patch to allow FFTW to be used as a shared
110
    library more easily on Win32.
111
 
112
Version 2.0
113
 
114
  * Completely rewritten real-complex transforms, now using
115
    specialized codelets and an inherently real-complex algorithm for
116
    greatly increased speed.  Also, rfftw can now handle odd sizes and
117
    strided transforms.  Beware that the output format for 1D rfftw
118
    transforms has changed.  See the manual for more details.
119
 
120
  * The complex transforms now use a fast algorithm for large prime
121
    factors, working in O(N lg N) time even for prime sizes.
122
    (Previously, the complexity contained an O(p^2) term, where p is
123
    the largest prime factor of N.  This is still the case for the
124
    rfftw transforms.)  Small prime factors are still more efficient,
125
    however.
126
 
127
  * Added functions fftw_one, fftwnd_one, rfftw_one, etcetera, to
128
    simplify and clarify the use of fftw for single, unit-stride
129
    transforms.
130
 
131
  * Renamed FFTW_COMPLEX, FFTW_REAL to fftw_complex, fftw_real (for
132
    greater consistency in capitalization).  The all-caps names will
133
    continue to be supported indefinitely, but are deprecated.  (Also,
134
    support for the COMPLEX and REAL types from FFTW 1.0 is now
135
    disabled by default.)
136
 
137
  * There are now Fortran-callable wrappers for the rfftw real-complex
138
    transforms.
139
 
140
  * New section of the manual discussing the use of FFTW with multiple
141
    threads, and a new FFTW_THREADSAFE flag (described therein).
142
 
143
  * Added shared library support.  Use configure --enable-shared to
144
    produce a shared library instead of a static library (the default).
145
 
146
  * Dropped support for the operation-count (*_op_count) routines
147
    introduced in v1.3, as these were little-used and were a pain to
148
    keep up-to-date as FFTW changed internally.
149
 
150
  * Made it easier to support floating-point types other than float
151
    and double (e.g. long double).  (See the file fftw-int.h.)
152
 
153
Version 1.3
154
 
155
  * Multi-dimensional transforms contain significant performance
156
    improvements for dimensions >= 3.
157
 
158
  * Performance improvements in multi-dimensional transforms
159
    with howmany > 1 and stride > dist.
160
 
161
  * Improved parallelization and performance in the threads
162
    code for dimensions >= 3.
163
 
164
  * Changed the wisdom import/export format (the new wisdom remembers
165
    the stride of the plan that generated it, for use with the new
166
    create_plan_specific functions).  (You should regenerate any stored
167
    wisdom you have anyway, since this is a new version of FFTW.)
168
 
169
  * Several small fixes to aid compilation on some systems.
170
 
171
Version 1.3b1
172
 
173
  * Fixed a bug in the MPI transform (in the transpose routine) that
174
    caused errors for some array sizes.
175
 
176
  * Fixed the (hopefully) last few things causing problems with C++
177
    compilers.
178
 
179
  * Hack for x86/gcc to properly align local double-precision variables.
180
 
181
  * Completely rewritten codelet generator.  Now it produces
182
    better code for non powers of 2, and is ready to produce
183
    real->complex transforms.
184
 
185
  * Testing algorithm is now more robust, and has a more rigorous
186
    theoretical foundation.  (Bugs in testing large transforms or
187
    in single precision are now fixed--these bugs were only in the
188
    test programs and not in the FFTW library itself.)
189
 
190
  * Added "specific" planners, which allow plan optimization for a
191
    specific array/stride.  They also reduce the memory requirements
192
    of the planner, and permit new optimizations in the multi-dimensional
193
    case.  (See the *_create_plan_specific functions.)
194
 
195
  * FFTW can now compute a count of the number of arithmetic operations
196
    it requires, which is useful for some academic purposes.  (See the
197
    *_count_plan_ops functions.)
198
 
199
  * Adapted for use with GNU autoconf to aid installation on UNIX systems.
200
    (Installation on non-UNIX systems should be the same as before.)
201
 
202
  * Used gettimeofday function if available.  (This function typically
203
    has much higher accuracy than clock(), permitting plans to be
204
    created much more quickly than before on many machines.)
205
 
206
  * Made timing algorithm (hopefully) more robust in the face of
207
    system interrupts, etc.
208
 
209
  * Added wrapper routines for calling FFTW from MATLAB (in the
210
    matlab/ directory).
211
 
212
  * Added wrapper routines for calling FFTW from Fortran (in the
213
    fortran/ directory).  (These were available separately before.)
214
 
215
Version 1.2.1
216
 
217
  * Fixed a third bug in the mpi transpose routines (sheesh!) that
218
    could cause problems when re-using a transpose plan.  Thanks
219
    to Eric Skyllingstad for the bug reports.
220
 
221
  * Fixed another bug in the mpi transpose routines. This bug produced
222
    a memory leak and also occasionally tries to free a null pointer,
223
    which causes problems on some systems.  The mpi transpose/fft routines
224
    now pass all of our malloc paranoia tests.
225
 
226
  * Fixed bug in mpi transpose routines, where wrong results
227
    could be given for some large 2D arrays.
228
 
229
Version 1.2:
230
 
231
  * Added a FAQ (in the FAQ/ directory).
232
 
233
  * Fixed bug in rfftwnd routines where a block was accidentally
234
    allocated to be too small, causing random memory to be
235
    overwritten (yikes!).  (Amazingly, this bug only caused the
236
    test program to fail on one system that we could find.  Our
237
    test suite can now catch this sort of bug.)
238
 
239
  * Abstractified taking differences of times (with fftw_time_diff
240
    macro/function) to allow more general timer data structures.
241
 
242
  * Added "wisdom" mechanism for saving plans & related info.
243
 
244
  * Made timing mechanism more robust and maintainable.  (Instead of
245
    using a fixed number of iterations, we now repeatedly double
246
    the number of iterations until a specified time interval
247
    (FFTW_TIME_MIN) is reached.)
248
 
249
  * Fixed header files to prevent difficulties when a mix of C and
250
    C++ compilers is used, and to prevent problems with multiple
251
    inclusions.
252
 
253
  * Added experimental distributed-memory transforms using MPI.
254
 
255
  * Fixed memory leak in fftwnd_destroy_plan (reported by Richard
256
    Sullivan).  Our test programs now all check for leaks.
257
 
258
Version 1.1:
259
 
260
  * Improved speed (yes!) [Some clever tricks with twiddle factors
261
    and better code generator]
262
 
263
  * Renamed `blocks' to `codelets', just to be fashionable
264
 
265
  * Rewritten planner and executor--much simpler and more readable
266
    code.  Reference-counter garbage collection employed throughout.
267
 
268
  * Much improved codelet generator.  The ML code should be now
269
    readable by humans, and easier to modify.
270
 
271
  * Support for Prime Factor transforms in the codelet generator.
272
 
273
  * Renamed COMPLEX -> FFTW_COMPLEX to avoid clashes with
274
    existing packages.  COMPLEX is still supported
275
    for compatibility with 1.0
276
 
277
  * Added experimental real->complex transform (quick hack,
278
    use at your own risk).
279
 
280
  * Added experimental parallel transforms using Cilk.
281
 
282
  * Added experimental parallel transforms using threads (currently,
283
    POSIX threads and Solaris threads are implemented and tested).
284
 
285
  * Added DOS support, in the sense that we now support 8.3 filenames.
286
 
287
Version 1.0:  First release