Ticket #12039: convert32_test.cpp

File convert32_test.cpp, 719 bytes (added by Michael Shatz <shatz@…>, 7 years ago)
Line 
1#include <math.h>
2#include <boost/multiprecision/cpp_bin_float.hpp>
3
4typedef boost::multiprecision::number
5 <boost::multiprecision::backends::cpp_bin_float<256, boost::multiprecision::backends::digit_base_2> >
6 ext_float_t;
7
8int main(int, char**) {
9 ext_float_t x = 1e7+0.5;
10 ext_float_t x1 = x + ldexp(255, -38); // + 2^-30 - eps
11 ext_float_t x2 = x + ldexp(257, -38); // + 2^-30 + eps
12 float f1 = x1.convert_to<float>();
13 float f2 = x2.convert_to<float>();
14 std::cout << std::setprecision(27);
15 std::cout << "x1=" << x1 << " => " << f1 << "\n";
16 std::cout << "x2=" << x2 << " => " << f2 << "\n";
17 if (f1==f2)
18 std::cout << "good\n";
19 else
20 std::cout << "bad\n";
21
22 return 0;
23}