Commit Graph

25 Commits

Author SHA1 Message Date
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
4e4a738a53 Fix typo in document 2020-09-27 13:41:36 +08:00
b9839d01f7 converted using statement to a typedef to allow header to work with c++98 2019-02-01 07:53:52 -05:00
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
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
5be9efe7b4 Update kissfft.hh 2018-07-25 23:26:53 +08:00
21e1883ac2 Merge branch 'master' into merge_bazaar
Conflicts:
	.gitignore
2018-07-21 12:14:02 -04:00
f73b91d570 [BSD-3-Clause] Add missing copyright notice 2018-07-19 14:49:00 +01:00
1c3d6f5aa9 guard against multiple inclusion 2017-10-25 09:50:40 -04:00
68cca02565 add constness 2017-01-06 12:20:33 +01:00
c225efda5a fix indentation and remove not needed semicolons 2016-12-15 22:35:01 +01:00
daca3f4c06 fix type-system, use overload for tranform() and reorder butterfly-fn 2016-12-15 22:07:35 +01:00
64800e61d8 Fix: Made FFT work for T = float.
Also removed some trailing spaces from line ends.
2016-09-20 14:02:49 +02:00
6a8798c453 Added the method kissfft::assign(). 2016-04-26 08:40:31 +02:00
6e0d8bbcd2 Normalized identation in new code. 2016-04-25 10:17:41 +02:00
1fbc2b6ab4 Added FFT from real input. Improved documentation. 2016-04-23 19:09:42 +02:00
0395af753e Removed the needless use of a traits class. 2016-04-21 13:20:29 +02:00
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
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
3c96a24710 Made member functions of kissfft class const-correct.
Also made member functions static where appropriate.
2016-04-21 10:42:20 +02:00
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
3a4db1fed7 *** empty log message *** 2009-05-18 03:23:38 +00:00
3a27b71226 *** empty log message *** 2009-05-18 02:30:47 +00:00
2b5477d54c first addition of kissfft.hh the C++ template fft engine 2009-05-17 23:57:26 +00:00