]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
1 | /* |
2 | * Copyright Nick Thompson, 2020 | |
3 | * Use, modification and distribution are subject to the | |
4 | * Boost Software License, Version 1.0. (See accompanying file | |
5 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
6 | */ | |
7 | #include <cstdint> | |
8 | #include <cmath> | |
9 | #include <boost/math/quadrature/wavelet_transforms.hpp> | |
10 | #include <Eigen/Dense> | |
11 | ||
12 | ||
13 | int main() | |
14 | { | |
15 | using boost::math::quadrature::daubechies_wavelet_transform; | |
16 | double a = 1.3; | |
17 | auto f = [&a](double t) { | |
18 | if(t==0) { | |
19 | return double(0); | |
20 | } | |
21 | return std::sin(a/t); | |
22 | }; | |
23 | ||
24 | auto Wf = daubechies_wavelet_transform<decltype(f), double, 8>(f); | |
25 | ||
26 | Eigen::MatrixXd grid(512, 512); | |
27 | double s = 7; | |
28 | double t = 0; | |
29 | grid(0,0) = Wf(s, t); | |
30 | ||
31 | auto g = [&a](double t)->std::complex<double> { | |
32 | if (t==0) { | |
33 | return {0.0, 0.0}; | |
34 | } | |
35 | return std::exp(std::complex<double>(0.0, a/t)); | |
36 | }; | |
37 | ||
38 | auto Wg = daubechies_wavelet_transform<decltype(g), double, 8>(g); | |
39 | std::cout << "W[f](s,t) = " << Wf(s,t) << "\n"; | |
40 | std::cout << "W[g](s,t) = " << Wg(s, t) << "\n"; | |
41 | std::cout << Wg(0.0, 3.5) << "\n"; | |
42 | std::cout << Wf(0.0, 4.8) << "\n"; | |
43 | std::cout << "W[f](-s,t) = " << Wf(-s, t) << "\n"; | |
44 | std::cout << "W[g](-s,t) = " << Wg(-s, t) << "\n"; | |
45 | ||
46 | } |