1 ///////////////////////////////////////////////////////////////
2 // Copyright 2012 - 2021 John Maddock.
3 // Copyright 2021 Matt Borland. Distributed under the Boost
4 // Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
7 #define BOOST_MP_STANDALONE
9 #include "test_arithmetic.hpp"
10 #include <boost/multiprecision/cpp_bin_float.hpp>
12 template <unsigned Digits
, boost::multiprecision::backends::digit_base_type DigitBase
, class Allocator
, class Exponent
, Exponent MinExponent
, Exponent MaxExponent
, boost::multiprecision::expression_template_option ET
>
13 struct related_type
<boost::multiprecision::number
<boost::multiprecision::cpp_bin_float
<Digits
, DigitBase
, Allocator
, Exponent
, MinExponent
, MaxExponent
>, ET
> >
15 using number_type
= boost::multiprecision::number
<boost::multiprecision::cpp_bin_float
<Digits
, DigitBase
, Allocator
, Exponent
, MinExponent
, MaxExponent
>, ET
>;
16 using type
= boost::multiprecision::number
<boost::multiprecision::cpp_bin_float
<((std::numeric_limits
<number_type
>::digits
/ 2) > std::numeric_limits
<long double>::digits
? Digits
/ 2 : Digits
), DigitBase
, Allocator
, Exponent
, MinExponent
, MaxExponent
>, ET
>;
21 test
<boost::multiprecision::cpp_bin_float_50
>();
22 //test<boost::multiprecision::number<boost::multiprecision::cpp_bin_float<21>>>();
23 //test<boost::multiprecision::number<boost::multiprecision::cpp_bin_float<1000, boost::multiprecision::digit_base_10, std::allocator<char>>>>();
24 //test<boost::multiprecision::cpp_bin_float_quad>();
25 return boost::report_errors();