25 Commits

Author SHA1 Message Date
Charles Karney
07aa5c13b5 Improve accuracy + allow mpfr::mpreal and boost's float128
(1) Accuracy has been improved in the set up of the _twiddles array.
Now sin and cos are only evaluated for angles in [-pi/4, pi/4] and all
the elementary symmetries of the trig functions are preserved.  This
reduces the round-off error to be competitve with fftw.

(2) A key advantage of kissfft over fftw is that it can be used with
non-standard floating point numbers, e.g., mpfr::mpreal and
boost::multiprecision::float128.  For this to "work", the math functions
need to be called without the "std::" prefix to allow the specific
overloads for these functions to be found.  "using" clauses are added to
the code so that the standard functions are still found for the standard
floating point types.
2022-05-29 17:41:34 -04:00
LIU Qingyuan
4e4a738a53
Fix typo in document 2020-09-27 13:41:36 +08:00
Mark Borgerding
b9839d01f7 converted using statement to a typedef to allow header to work with c++98 2019-02-01 07:53:52 -05:00
mborgerding
eb32385a10
Merge pull request #6 from lhprojects/master
Add member vector in kissfft class as a buffer
2018-11-27 20:02:56 -05:00
Steffen Kieß
918df60ae2 Use std::acos() instead of acos()
std::acos() will automatically select the correct version. acos() on the
other hand will use double precision, which is bad if scalar_t is
long double.
2018-11-26 17:54:29 +01:00
lhprojects
5be9efe7b4
Update kissfft.hh 2018-07-25 23:26:53 +08:00
Mark Borgerding
21e1883ac2 Merge branch 'master' into merge_bazaar
Conflicts:
	.gitignore
2018-07-21 12:14:02 -04:00
h.udo
f73b91d570
[BSD-3-Clause] Add missing copyright notice 2018-07-19 14:49:00 +01:00
Mark Borgerding
1c3d6f5aa9 guard against multiple inclusion 2017-10-25 09:50:40 -04:00
Ingmar Splitt
68cca02565 add constness 2017-01-06 12:20:33 +01:00
orgua
c225efda5a fix indentation and remove not needed semicolons 2016-12-15 22:35:01 +01:00
orgua
daca3f4c06 fix type-system, use overload for tranform() and reorder butterfly-fn 2016-12-15 22:07:35 +01:00
Ralph Tandetzky
64800e61d8 Fix: Made FFT work for T = float.
Also removed some trailing spaces from line ends.
2016-09-20 14:02:49 +02:00
Ralph Tandetzky
6a8798c453 Added the method kissfft::assign(). 2016-04-26 08:40:31 +02:00
Ralph Tandetzky
6e0d8bbcd2 Normalized identation in new code. 2016-04-25 10:17:41 +02:00
Ralph Tandetzky
1fbc2b6ab4 Added FFT from real input. Improved documentation. 2016-04-23 19:09:42 +02:00
Ralph Tandetzky
0395af753e Removed the needless use of a traits class. 2016-04-21 13:20:29 +02:00
Ralph Tandetzky
b10fb43644 Removed macro-like looking private methods of kissfft class.
All uses of these function were replaced by their implementation (which is mostly easier to read than the functions themselves).
2016-04-21 12:36:57 +02:00
Ralph Tandetzky
f78c115f92 Improved code quality.
* Replaced int by std::size_t where appropriate.
* Made traits member functions static.
* Removed redundant data from traits class.
* Made local variables const where possible.
* Made mutable variables as local as possible.
* Removed redundant variables.
* Improved white-space formatting for readability (sparingly).
2016-04-21 11:41:53 +02:00
Ralph Tandetzky
3c96a24710 Made member functions of kissfft class const-correct.
Also made member functions static where appropriate.
2016-04-21 10:42:20 +02:00
Jonti Olds
5e87358ea8 missing include guard added
Fixed broken include guard #define KISSFFT_CLASS_HH
2015-08-07 08:30:42 +12:00
Ian
7d00183660 initial commit of kiss_fft130.tar.gz contents 2013-07-23 21:57:43 -04:00
Mark Borgerding
3a4db1fed7 *** empty log message *** 2009-05-18 03:23:38 +00:00
Mark Borgerding
3a27b71226 *** empty log message *** 2009-05-18 02:30:47 +00:00
Mark Borgerding
2b5477d54c first addition of kissfft.hh the C++ template fft engine 2009-05-17 23:57:26 +00:00