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