1 // (C) Copyright Nick Thompson 2020.
2 // Use, modification and distribution are subject to the
3 // Boost Software License, Version 1.0. (See accompanying file
4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 // Deliberately contains some unicode characters:
11 #include <boost/math/constants/constants.hpp>
12 #include <boost/math/tools/centered_continued_fraction.hpp>
13 #include <boost/multiprecision/mpfr.hpp>
15 using boost::math::constants::root_two
;
16 using boost::math::constants::phi
;
17 using boost::math::constants::pi
;
18 using boost::math::constants::e
;
19 using boost::math::constants::zeta_three
;
20 using boost::math::tools::centered_continued_fraction
;
21 using boost::multiprecision::mpfr_float
;
25 using Real
= mpfr_float
;
27 mpfr_float::default_precision(p
);
28 auto phi_cfrac
= centered_continued_fraction(phi
<Real
>());
29 std::cout
<< "φ ≈ " << phi_cfrac
<< "\n";
30 std::cout
<< "Khinchin mean: " << std::setprecision(10) << phi_cfrac
.khinchin_geometric_mean() << "\n\n\n";
32 auto pi_cfrac
= centered_continued_fraction(pi
<Real
>());
33 std::cout
<< "π ≈ " << pi_cfrac
<< "\n";
34 std::cout
<< "Khinchin mean: " << std::setprecision(10) << pi_cfrac
.khinchin_geometric_mean() << "\n\n\n";
36 auto rt_cfrac
= centered_continued_fraction(root_two
<Real
>());
37 std::cout
<< "√2 ≈ " << rt_cfrac
<< "\n";
38 std::cout
<< "Khinchin mean: " << std::setprecision(10) << rt_cfrac
.khinchin_geometric_mean() << "\n\n\n";
40 auto e_cfrac
= centered_continued_fraction(e
<Real
>());
41 std::cout
<< "e ≈ " << e_cfrac
<< "\n";
42 std::cout
<< "Khinchin mean: " << std::setprecision(10) << e_cfrac
.khinchin_geometric_mean() << "\n\n\n";
44 auto z_cfrac
= centered_continued_fraction(zeta_three
<Real
>());
45 std::cout
<< "ζ(3) ≈ " << z_cfrac
<< "\n";
46 std::cout
<< "Khinchin mean: " << std::setprecision(10) << z_cfrac
.khinchin_geometric_mean() << "\n\n\n";
49 // http://jeremiebourdon.free.fr/data/Khintchine.pdf
50 std::cout
<< "The expected Khinchin mean for a random centered continued fraction is 5.45451724454\n";