91 Commits

Author SHA1 Message Date
Steffen Kieß
5ebbc5e618 Allow setting a suffix for constants and trigonometric functions
In order to use constants or trigonometric functions with a type other than
double, a suffix ('f' for float or 'l' for long double) has to be used in C.
This commit adds a preprocessor macro 'kiss_fft_suffix' which can be set to
either 'f' or 'l' and which will be added to floating point constants and to
the trigonometric functions (sin and cos).

Without this suffix, the code will use a too high precision for float and a
too low precision for long double.
2019-09-24 14:16:06 +02:00
wolfbeast
f4496dc080 Prevent stack corruption with parallelized use.
If the length of the data set for the transform is a prime, then the OpenMP parallelization results
in a recursion loop until the stack is corrupted or exhausted.
This resolves #1.
2019-08-07 21:25:01 -04:00
h.udo
bc40eccbea
[BSD-3-Clause] Convert to SPDX license format 2018-07-19 14:49:00 +01:00
Mark Borgerding
57925fd126 made threadsafe 2010-05-27 22:54:01 -04:00
Mark Borgerding
089923378d working sourecforge bug 2009-11-28 04:14:47 +00:00
Mark Borgerding
68a8b95a47 check for openmp fitness 2009-10-09 18:04:54 +00:00
Mark Borgerding
3df04c8671 openmp directives 2008-08-22 21:43:25 +00:00
Mark Borgerding
48cbba0c55 *** empty log message *** 2008-03-19 19:32:52 +00:00
Mark Borgerding
2cce2ea306 added kiss_fft_next_fast_size() to determine the next number divisible by the radices 2,3,5 2006-06-28 03:25:02 +00:00
Mark Borgerding
f0e7410b0e *** empty log message *** 2006-03-14 14:44:40 +00:00
Mark Borgerding
77968cd25d finally added the change to kiss_fft.c to check for mem == NULL
was not a bug, but enough people thought it was that I went ahead and changed it.
2005-12-23 01:33:18 +00:00
Mark Borgerding
3b5dfee961 added kiss_fft_cleanup
updated Makefiles for long and simd targets
2005-07-09 03:42:07 +00:00
Mark Borgerding
4be23bffa4 polishing SIMD changes 2005-06-25 04:38:19 +00:00
Mark Borgerding
7f6cbeab2e added simd capability 2005-06-24 03:03:31 +00:00
Mark Borgerding
75ca67f928 updated copyright years 2004-04-04 21:44:34 +00:00
Mark Borgerding
1bbb274965 split out tmpbuf and scratchbuf, since they are only used in certain cases 2004-04-03 02:59:20 +00:00
Mark Borgerding
835c16c582 no longer need casting 2004-04-03 00:27:11 +00:00
Mark Borgerding
e3fe1598f0 bunch of minor code cleanup 2004-02-27 03:45:12 +00:00
Mark Borgerding
71bf5965b8 very minor tweaks to radix 3 code 2004-02-24 02:21:03 +00:00
Mark Borgerding
dda6f9638e replaced void pointers with pointers to forward declared structs 2004-02-24 01:29:25 +00:00
Mark Borgerding
d1e99f297b took laptop timings
./bm_kiss_float -x 10000 -n 2048

from 1.70 s cpu time
to   1.57
2004-02-16 13:36:24 +00:00
Mark Borgerding
b1dad2147b made some things const -- doesn't really have an effect under gcc, but it might under some compilers
added asm target to check to see if the assembly code changes
2004-02-08 17:10:02 +00:00
Mark Borgerding
26ce35083d ./bm_kiss_float -x 40000 -n 1800
from
cputime=5.840
to
cputime=5.830
 (yeah yeah, I know its not great)
2004-02-03 01:37:19 +00:00
Mark Borgerding
f95bd02866 cputime=5.940
to
cputime=5.840
2004-02-03 01:13:10 +00:00
Mark Borgerding
210f219648 ./bm_kiss_float -x 40000 -n 1800
improved from
cputime=6.010
to
cputime=5.940
2004-02-03 01:05:10 +00:00
Mark Borgerding
8e00ca1877 ./bm_kiss_float -x 10000 -n 1800
improved from
cputime=1.540
to
cputime=1.490
2004-02-03 00:59:33 +00:00
Mark Borgerding
9b738dc492 slight fast fir changes 2004-01-30 00:17:01 +00:00
Mark Borgerding
10a4a5c46b 2d fft now uses kiss_fft_stride to avoid buffer copies. 2003-12-29 21:07:19 +00:00
Mark Borgerding
4552a14801 added stride to fft input -- should simplify multi-dimensional FFTs 2003-12-29 18:50:13 +00:00
Mark Borgerding
f4961ed74b fixed a bug with nfft==1
and added utility for more testing
2003-12-16 03:43:05 +00:00
Mark Borgerding
559c14b49b changed alloc functions to allow for initialization of user-supplied buffer 2003-12-14 03:02:30 +00:00
Mark Borgerding
72de907478 minor doc changes 2003-12-05 00:35:25 +00:00
Mark Borgerding
f3c4a9e9ca internal checkpoint
split kiss_fft.c into multiple files.  It seems the best approach, all things considered.
2003-12-04 02:38:50 +00:00
Mark Borgerding
206e28f11c made the factorization a separate routine 2003-11-12 01:09:35 +00:00
Mark Borgerding
bd23fe8d23 the path I was taking would only work for prime numbers (Galois fields) 2003-11-08 01:42:15 +00:00
Mark Borgerding
e98f9ff29a going to bed 2003-11-07 03:42:14 +00:00
Mark Borgerding
ae305ca400 slightly faster 2003-11-07 03:31:59 +00:00
Mark Borgerding
3a5791f203 slightly faster 2003-11-07 03:23:19 +00:00
Mark Borgerding
1486d89291 faster 2003-11-07 03:04:52 +00:00
Mark Borgerding
e9095a161c generic butterfly slightly slower -- hmmm 2003-11-07 02:39:49 +00:00
Mark Borgerding
a296b09dbf wrong alloc size 2003-11-07 01:06:44 +00:00
Mark Borgerding
cb5312efdc 2d fft seems to work 2003-11-06 03:59:31 +00:00
Mark Borgerding
4c458be5e9 checkpoint -- I don't think I've broken anything (yet) adding 2d fft. 2003-11-04 23:25:49 +00:00
Mark Borgerding
8b4e3bacca minor comments and added some primes 2003-11-04 02:00:01 +00:00
Mark Borgerding
7b4de0aa11 a little faster 2003-11-03 04:30:50 +00:00
Mark Borgerding
ad4ee571aa faster radix5 2003-11-03 04:04:01 +00:00
Mark Borgerding
0403fb3e4a radix 5 a little optimized 2003-11-03 03:48:34 +00:00
Mark Borgerding
3c0c0431e2 radix 5 works, but is 6x slower than fftw 2003-11-03 03:03:16 +00:00
Mark Borgerding
85764e6437 radix 5 doesn't work, but I thik it should.
just a checkpoint commit
2003-11-01 16:48:33 +00:00
Mark Borgerding
8ac63adc77 modified time benchmark to repeat same buffer over and over to avoid IO bottlenecks and get more consistent numbers. 2003-11-01 04:44:50 +00:00