Commit Graph

375 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
8f47a67f59 removed kfc.h and kissfft_i32.hh from the install list since they are not as generally useful as the others 131.1.0 2021-02-09 20:29:17 -05:00
0a4394045f no benefit to having both a README and README.md -- D.R.Y. 2021-02-06 10:55:44 -05:00
478c35e653 Update documentation
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-02-05 13:34:16 +02:00
7c9a5586a9 testkiss.py: Do not depend on tools/fft_*
Fixes test run with -DKISSFFT_TOOLS=OFF

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-02-05 13:34:16 +02:00
7eeda21377 Add testsuite
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-02-05 13:34:16 +02:00
cccf41adf2 Overhaul CMake makefiles
* Minimum CMake version lowered to 3.6 (tested on 3.6.1)
  * Refactored CMake configuration options

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-02-05 13:34:16 +02:00
2e2747c129 Overhaul Make makefiles
* Header files and correspondent C sources that define
    functions recently added to public API moved from
    'tools' directory to root

  * By default, install prefix is '/usr/local/', and header
    install path is '${PREFIX}/include/kissfft'

  * Added detection of external libraries like FFTW or libPNG

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-02-05 13:34:16 +02:00
7811f7d428 fixed switch-case fall-thru 2021-01-23 11:54:02 -05:00
e321f7a4d7 dropped -Waggregate-return from warning flags as it created spurious warnings for recent c++ compilation (found through cmake build on CentOS 8) 2021-01-23 11:53:53 -05:00
d11f1a889c Merge pull request #57 from basilgello/debian-fixes
Modernize upstream package after inclusion to Debian
2021-01-21 20:00:15 -05:00
f88d5af578 Make kfc,fftnd,fftndr,fftr part of public API
Many programs explicitly use it, including those in Debian.
This was raised already in kissfft#39

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-01-21 17:10:20 +02:00
c2e82a30e8 Build and install kissfft-tools
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-01-21 17:08:33 +02:00
7651bdaaa1 Increase CTest interval
* Fixes failing testcpp by timeout

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-01-21 17:07:39 +02:00
cc862cb0f2 Merge pull request #53 from madebr/makefile_AR_CC_variables
Use $(CC) and $(AR) in Makefile
2020-11-05 21:35:44 -05:00
15debe8ed3 Merge pull request #52 from madebr/cmake_install
Add cmake install + MSVC dll support
2020-11-05 21:34:50 -05:00
1487038a8a Use find_package COMPONENTS to select shared/static + datatype 2020-10-30 19:18:18 +01:00
2d5de8378c Print datatype while configuring cmake 2020-10-30 16:33:32 +01:00
a63dfc7f11 Build tools + tests with cmake + add VERSION + parallel install 2020-10-30 02:49:49 +01:00
609845bc9e cmake more work 2020-10-29 23:23:50 +01:00
fcf9fa9a47 Use $(CC) and $(AR) in Makefile 2020-10-29 22:05:20 +01:00
5c708d85db Add cmake install + MSVC dll support 2020-10-29 22:01:56 +01:00
0a70dfd0cf Merge pull request #50 from seeker-Liu/master
Fix Issue #35
2020-09-27 06:10:22 -04:00
4e4a738a53 Fix typo in document 2020-09-27 13:41:36 +08:00
b2e0e600e5 Calling exit from library code is icky. Closes issue #49 2020-07-14 17:19:48 -04:00
c524b0b0e1 Merge pull request #47 from JulienMaille/patch-1
Fix conversion from 'double' to 'float' warning closes
2020-06-09 08:50:57 -04:00
efff86ac1c Fix conversion from 'double' to 'float' warning closes
Closes #27
2020-06-09 13:57:41 +02:00
159874bffa Merge pull request #46 from ademuri/master
Add support for CMake
2020-06-02 07:51:48 -04:00
6fcc85dbaf Add support for CMake 2020-05-31 13:26:14 -06:00
f0a47de6aa Merge pull request #45 from kpawlak/task-logging-and-check
Logging improvements and buffers security
2020-05-26 22:21:27 -04:00
5fb101ecb3 Testting buffers for NULL befor usage 2020-05-26 14:25:38 +02:00
7c47cc9957 Add common logging mechanism, use NDEBUG to turn off logging 2020-05-26 14:25:27 +02:00
cf5813a1b4 added test for simd crash to "make testall" and thus travis CI 2020-04-19 10:06:56 -04:00
e53d6d4bea changed tabs to spaces for consistency and fix compiler warnings. Removed assert call (would require assert.h inclusion somewhere). 2020-04-19 10:02:45 -04:00
07ccd8162e Merge remote-tracking branch 'xplane/master' into simd_misaligned 2020-04-19 09:58:35 -04:00
b30b93cd97 A test case for issue #40. Segfaults with: make -C test test_simd && ./test/test_simd 2020-04-19 09:57:40 -04:00
58cf0c0fc1 alignment fixing for USE_SIMD - all memory allocations are rounded
up to 16-byte boundaries.  This fixes crashes where the sub-buffers
for complex FFTs end up unaligned violating compiler expectations
2020-04-18 20:43:26 -04:00
33d9ad3bad include guard for kiss guts - fixes compile on unity build systems 2020-04-18 20:42:30 -04:00
c2c0c0be03 Merge pull request #38 from jtojnar/packagability
Improve packagability
2020-04-06 05:25:16 -04:00
b39de321ca build: Make datatype configurable 2020-04-06 08:04:19 +02:00
1d7e76e0af build: Use install command for installing files
In build chroots of some package managers, the libdir does not exist yet so we need to create it.
2020-04-06 07:32:55 +02:00
fffc26e89a build: Fix make install on Darwin 2020-04-06 06:03:06 +02:00
4193457bf4 build: Make installation prefix configurable
Nix uses different prefix so we need it configurable.
2020-04-06 05:55:54 +02:00
3f3fc6ab55 upgrade to newer dist 2020-03-15 15:07:21 -04:00
592bdf7da8 want travis to run with python 2.7(for now) and 3.7 2020-03-15 15:01:10 -04:00
b420613372 I had to fix some python3 incompatibilities and realized how embarrassing the code was. I refactored to make it look a little more like it was written by someone who knows Python. 2020-03-15 14:53:58 -04:00
1efe72041e above commit was cherry-picked from MoonchildProductions fork of kissfft (closes issue #26) 2019-08-07 21:27:25 -04:00
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
3050076ab3 Merge pull request #28 from bmcdonnell-ionx/user-override-malloc
Allow user override of malloc and/or free
2019-08-07 13:00:35 -04:00
d06e7a7106 Allow user override of KISS_FFT_MALLOC and/or KISS_FFT_FREE on SIMD platforms 2019-08-07 12:10:01 -04:00