Skip to content

Improve accuracy + allow mpfr::mpreal and boost's float128#78

Open
cffk wants to merge 1 commit intomborgerding:masterfrom
cffk:using-std
Open

Improve accuracy + allow mpfr::mpreal and boost's float128#78
cffk wants to merge 1 commit intomborgerding:masterfrom
cffk:using-std

Conversation

@cffk
Copy link

@cffk cffk commented May 29, 2022

(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.

(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.
cffk added a commit to geographiclib/geographiclib that referenced this pull request Jun 4, 2022
AreaEst computes the order of the DST needed for accurate computation of
the area integral.

kissfft.hh is from

  https://github.com/mborgerding/kissfft

with PR

  mborgerding/kissfft#78

applied.
@dizcza
Copy link

dizcza commented Apr 11, 2023

An interesting change; I'd like it's being double-checked and merged.

It seems though this repository is no longer maintained... it waits for someone to take it over and go on with KissFFTv2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants