You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Numerical evaluation of Fourier transform of Daubechies scaling funct… (#921)
* Numerical evaluation of Fourier transform of Daubechies scaling functions.
* Update example/calculate_fourier_transform_daubechies_constants.cpp
Co-authored-by: Matt Borland <[email protected]>
* Update example/fourier_transform_daubechies_ulp_plot.cpp
Co-authored-by: Matt Borland <[email protected]>
* Update include/boost/math/special_functions/fourier_transform_daubechies_scaling.hpp
Co-authored-by: Matt Borland <[email protected]>
* Update include/boost/math/special_functions/fourier_transform_daubechies_scaling.hpp
Co-authored-by: Matt Borland <[email protected]>
* Rename include file to reflect it implements both the scaling and wavelet.
* Add performance to docs.
* Update test/math_unit_test.hpp
Co-authored-by: Matt Borland <[email protected]>
* Add boost-no-inspect to files with non-ASCII characters.
---------
Co-authored-by: Matt Borland <[email protected]>
The Fourier transform convention is unitary with the sign of the imaginary unit being given in Daubechies Ten Lectures.
140
+
In particular, this means that `fourier_transform_daubechies_scaling<float, p>(0.0)` returns 1/sqrt(2π).
141
+
142
+
The implementation computes an infinite product of trigonometric polynomials as can be found from recursive application of the identity 𝓕[φ](ω) = m(ω/2)𝓕[φ](ω/2).
143
+
This is neither particularly fast nor accurate, but there appears to be no literature on this extremely useful topic, and hence the naive method must suffice.
144
+
145
+
[$../graphs/fourier_transform_daubechies.png]
146
+
147
+
A benchmark can be found in `reporting/performance/fourier_transform_daubechies_performance.cpp`; the results on a ~2021 M1 Macbook pro are presented below:
0 commit comments