]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/math/example/daubechies_wavelets/daubechies_scaling_memory_occupation.cpp
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / boost / libs / math / example / daubechies_wavelets / daubechies_scaling_memory_occupation.cpp
1 #include <iostream>
2 #include <boost/math/special_functions/daubechies_scaling.hpp>
3 #include <boost/core/demangle.hpp>
4 #include <boost/hana/for_each.hpp>
5 #include <boost/hana/ext/std/integer_sequence.hpp>
6
7 int main()
8 {
9 boost::hana::for_each(std::make_index_sequence<18>(),
10 [](auto i) {
11 std::cout << std::right;
12 auto daub = boost::math::daubechies_scaling<float, i+2>();
13 std::cout << "The Daubechies " << std::setw(2) << i + 2 << " scaling function occupies "
14 << std::setw(12) << daub.bytes()/1000.0 << " kilobytes in relative accuracy mode in "
15 << boost::core::demangle(typeid(float).name()) << " precision\n";
16 });
17
18 std::cout << std::endl;
19 std::cout << std::endl;
20 std::cout << std::endl;
21
22 boost::hana::for_each(std::make_index_sequence<18>(),
23 [](auto i) {
24 std::cout << std::right;
25 auto daub = boost::math::daubechies_scaling<float, i+2>(-2);
26 std::cout << "The Daubechies " << std::setw(2) << i + 2 << " scaling function occupies "
27 << std::setw(12) << daub.bytes()/1000.0 << " kilobytes in absolute accuracy mode in "
28 << boost::core::demangle(typeid(float).name()) << " precision\n";
29 });
30
31 std::cout << std::endl;
32 std::cout << std::endl;
33 std::cout << std::endl;
34
35
36 boost::hana::for_each(std::make_index_sequence<18>(),
37 [](auto i) {
38 std::cout << std::right;
39 auto daub = boost::math::daubechies_scaling<double, i+2>();
40 std::cout << "The Daubechies " << std::setw(2) << i + 2 << " scaling function occupies "
41 << std::setw(12) << daub.bytes()/1000.0 << " kilobytes in relative accuracy mode in "
42 << boost::core::demangle(typeid(double).name()) << " precision\n";
43 });
44
45 std::cout << std::endl;
46 std::cout << std::endl;
47 std::cout << std::endl;
48
49 boost::hana::for_each(std::make_index_sequence<18>(),
50 [](auto i) {
51 std::cout << std::right;
52 auto daub = boost::math::daubechies_scaling<double, i+2>(-2);
53 std::cout << "The Daubechies " << std::setw(2) << i + 2 << " scaling function occupies "
54 << std::setw(12) << daub.bytes()/1000.0 << " kilobytes in absolute accuracy mode in "
55 << boost::core::demangle(typeid(double).name()) << " precision\n";
56 });
57
58
59 }