[/ Copyright 2011 - 2020 John Maddock. Copyright 2013 - 2019 Paul A. Bristow. Copyright 2013 Christopher Kormanyos. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt). ] [section:fwd Forward Declarations] The header `` contains forward declarations for class `number` plus all of the available backends in the this library: namespace boost { namespace multiprecision { enum expression_template_option { et_off = 0, et_on = 1 }; template struct expression_template_default { /*details*/ }; template ::value> class number; template struct is_number; enum cpp_integer_type { signed_magnitude = 1, unsigned_magnitude = 0, signed_packed = 3, unsigned_packed = 2 }; enum cpp_int_check_type { checked = 1, unchecked = 0 }; enum mpfr_allocation_type { allocate_stack, allocate_dynamic }; // // Logging functions for lagged_adaptor: // template void log_postfix_event(const Backend&, const char* /*event_description*/); template void log_postfix_event(const Backend&, const T&, const char* /*event_description*/); template void log_prefix_event(const Backend&, const char* /*event_description*/); template void log_prefix_event(const Backend&, const T&, const char* /*event_description*/); template void log_prefix_event(const Backend&, const T&, const U&, const char* /*event_description*/); template void log_prefix_event(const Backend&, const T&, const U&, const V&, const char* /*event_description*/); namespace backends { template struct debug_adaptor; template struct logged_adaptor; template struct complex_adaptor; enum digit_base_type { digit_base_2 = 2, digit_base_10 = 10 }; template class cpp_bin_float; template class cpp_dec_float; template >::type> struct cpp_int_backend; struct float128_backend; struct gmp_int; struct gmp_rational; template struct gmp_float; template struct mpc_complex_backend; template struct mpfi_float_backend; template struct mpfr_float_backend; template <> struct mpfr_float_backend<0, allocate_stack>; template struct rational_adaptor; struct tommath_int; } // // All the backends are imported into boost::multiprecision: // using boost::multiprecision::backends::complex_adaptor; using boost::multiprecision::backends::debug_adaptor; using boost::multiprecision::backends::logged_adaptor; using backends::cpp_bin_float; using backends::digit_base_10; using backends::digit_base_2; using boost::multiprecision::backends::cpp_dec_float; using boost::multiprecision::backends::cpp_int_backend; using boost::multiprecision::backends::float128_backend; using boost::multiprecision::backends::gmp_float; using boost::multiprecision::backends::gmp_int; using boost::multiprecision::backends::gmp_rational; using boost::multiprecision::backends::mpc_complex_backend; using boost::multiprecision::backends::mpfi_float_backend; using boost::multiprecision::backends::mpfr_float_backend; using boost::multiprecision::backends::rational_adaptor; using boost::multiprecision::backends::tommath_int; // // convenience typedefs: // using cpp_bin_float_50 = number >; using cpp_bin_float_100 = number >; using cpp_bin_float_single = number, et_off>; using cpp_bin_float_double = number, et_off>; using cpp_bin_float_double_extended = number, et_off>; using cpp_bin_float_quad = number, et_off>; using cpp_bin_float_oct = number, et_off>; template using cpp_complex_backend = complex_adaptor >; template using cpp_complex = number >, ExpressionTemplates>; using cpp_complex_50 = cpp_complex<50>; using cpp_complex_100 = cpp_complex<100>; using cpp_complex_single = cpp_complex<24, backends::digit_base_2, void, std::int16_t, -126, 127>; using cpp_complex_double = cpp_complex<53, backends::digit_base_2, void, std::int16_t, -1022, 1023>; using cpp_complex_extended = cpp_complex<64, backends::digit_base_2, void, std::int16_t, -16382, 16383>; using cpp_complex_quad = cpp_complex<113, backends::digit_base_2, void, std::int16_t, -16382, 16383>; using cpp_complex_oct = cpp_complex<237, backends::digit_base_2, void, std::int32_t, -262142, 262143>; using cpp_dec_float_50 = number >; using cpp_dec_float_100 = number >; using cpp_int = number >; using cpp_rational_backend = rational_adaptor >; using cpp_rational = number; // Fixed precision unsigned types: using uint128_t = number >; using uint256_t = number >; using uint512_t = number >; using uint1024_t = number >; // Fixed precision signed types: using int128_t = number >; using int256_t = number >; using int512_t = number >; using int1024_t = number >; // Over again, but with checking enabled this time: using checked_cpp_int = number >; using checked_cpp_rational_backend = rational_adaptor >; using checked_cpp_rational = number; // Fixed precision unsigned types: using checked_uint128_t = number >; using checked_uint256_t = number >; using checked_uint512_t = number >; using checked_uint1024_t = number >; // Fixed precision signed types: using checked_int128_t = number >; using checked_int256_t = number >; using checked_int512_t = number >; using checked_int1024_t = number >; template using debug_adaptor_t = number, Number::et>; template using logged_adaptor_t = number, Number::et>; using float128 = number; using complex128 = number, et_off>; using mpf_float_50 = number >; using mpf_float_100 = number >; using mpf_float_500 = number >; using mpf_float_1000 = number >; using mpf_float = number >; using mpz_int = number; using mpq_rational = number; using mpc_complex_50 = number >; using mpc_complex_100 = number >; using mpc_complex_500 = number >; using mpc_complex_1000 = number >; using mpc_complex = number >; using mpfi_float_50 = number >; using mpfi_float_100 = number >; using mpfi_float_500 = number >; using mpfi_float_1000 = number >; using mpfi_float = number >; using mpfr_float_50 = number >; using mpfr_float_100 = number >; using mpfr_float_500 = number >; using mpfr_float_1000 = number >; using mpfr_float = number >; using static_mpfr_float_50 = number >; using static_mpfr_float_100 = number >; using tom_int = number; using tommath_rational = rational_adaptor; using tom_rational = number; } } [endsect] [/section]