#include <boost/multiprecision/number.hpp>#include <boost/multiprecision/gmp.hpp>#include <boost/math/special_functions/fpclassify.hpp>#include <boost/cstdint.hpp>#include <boost/multiprecision/detail/big_lanczos.hpp>#include <boost/multiprecision/detail/digits.hpp>#include <mpfr.h>#include <cmath>#include <algorithm>

Namespaces | |
| boost | |
| Duration formatting facet for input.  | |
| boost::multiprecision | |
| boost::multiprecision::backends | |
| boost::multiprecision::backends::detail | |
| boost::math | |
| boost::math::tools | |
| boost::math::constants | |
| boost::math::constants::detail | |
| boost::math::constants::detail::detail | |
Macros | |
| #define | BOOST_MP_ENABLE_IF_WORKAROUND | 
Typedefs | |
| typedef number < mpfr_float_backend< 50 > >  | boost::multiprecision::mpfr_float_50 | 
| typedef number < mpfr_float_backend< 100 > >  | boost::multiprecision::mpfr_float_100 | 
| typedef number < mpfr_float_backend< 500 > >  | boost::multiprecision::mpfr_float_500 | 
| typedef number < mpfr_float_backend< 1000 > >  | boost::multiprecision::mpfr_float_1000 | 
| typedef number < mpfr_float_backend< 0 > >  | boost::multiprecision::mpfr_float | 
| typedef number < mpfr_float_backend < 50, allocate_stack > >  | boost::multiprecision::static_mpfr_float_50 | 
| typedef number < mpfr_float_backend < 100, allocate_stack > >  | boost::multiprecision::static_mpfr_float_100 | 
Enumerations | |
| enum | boost::multiprecision::mpfr_allocation_type {  boost::multiprecision::allocate_stack, boost::multiprecision::allocate_dynamic }  | 
Functions | |
| long | boost::multiprecision::backends::detail::get_default_precision () | 
| template<unsigned digits10, mpfr_allocation_type AllocationType, class T > | |
| enable_if< is_arithmetic< T > , bool >::type  | boost::multiprecision::backends::eval_eq (const mpfr_float_backend< digits10, AllocationType > &a, const T &b) BOOST_NOEXCEPT | 
| template<unsigned digits10, mpfr_allocation_type AllocationType, class T > | |
| enable_if< is_arithmetic< T > , bool >::type  | boost::multiprecision::backends::eval_lt (const mpfr_float_backend< digits10, AllocationType > &a, const T &b) BOOST_NOEXCEPT | 
| template<unsigned digits10, mpfr_allocation_type AllocationType, class T > | |
| enable_if< is_arithmetic< T > , bool >::type  | boost::multiprecision::backends::eval_gt (const mpfr_float_backend< digits10, AllocationType > &a, const T &b) BOOST_NOEXCEPT | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_add (mpfr_float_backend< D1, A1 > &result, const mpfr_float_backend< D2, A2 > &o) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_subtract (mpfr_float_backend< D1, A1 > &result, const mpfr_float_backend< D2, A2 > &o) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_multiply (mpfr_float_backend< D1, A1 > &result, const mpfr_float_backend< D2, A2 > &o) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_divide (mpfr_float_backend< D1, A1 > &result, const mpfr_float_backend< D2, A2 > &o) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_add (mpfr_float_backend< digits10, AllocationType > &result, unsigned long i) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_subtract (mpfr_float_backend< digits10, AllocationType > &result, unsigned long i) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_multiply (mpfr_float_backend< digits10, AllocationType > &result, unsigned long i) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_divide (mpfr_float_backend< digits10, AllocationType > &result, unsigned long i) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_add (mpfr_float_backend< digits10, AllocationType > &result, long i) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_subtract (mpfr_float_backend< digits10, AllocationType > &result, long i) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_multiply (mpfr_float_backend< digits10, AllocationType > &result, long i) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_divide (mpfr_float_backend< digits10, AllocationType > &result, long i) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2, unsigned D3> | |
| void | boost::multiprecision::backends::eval_add (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, const mpfr_float_backend< D3 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_add (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, unsigned long y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_add (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, long y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_add (mpfr_float_backend< D1, A1 > &a, unsigned long x, const mpfr_float_backend< D2, A2 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_add (mpfr_float_backend< D1, A1 > &a, long x, const mpfr_float_backend< D2, A2 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2, unsigned D3> | |
| void | boost::multiprecision::backends::eval_subtract (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, const mpfr_float_backend< D3 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_subtract (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, unsigned long y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_subtract (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, long y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_subtract (mpfr_float_backend< D1, A1 > &a, unsigned long x, const mpfr_float_backend< D2, A2 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_subtract (mpfr_float_backend< D1, A1 > &a, long x, const mpfr_float_backend< D2, A2 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2, unsigned D3> | |
| void | boost::multiprecision::backends::eval_multiply (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, const mpfr_float_backend< D3 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_multiply (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, unsigned long y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_multiply (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, long y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_multiply (mpfr_float_backend< D1, A1 > &a, unsigned long x, const mpfr_float_backend< D2, A2 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_multiply (mpfr_float_backend< D1, A1 > &a, long x, const mpfr_float_backend< D2, A2 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2, unsigned D3> | |
| void | boost::multiprecision::backends::eval_divide (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, const mpfr_float_backend< D3 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_divide (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, unsigned long y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_divide (mpfr_float_backend< D1, A1 > &a, const mpfr_float_backend< D2, A2 > &x, long y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_divide (mpfr_float_backend< D1, A1 > &a, unsigned long x, const mpfr_float_backend< D2, A2 > &y) | 
| template<unsigned D1, unsigned D2, mpfr_allocation_type A1, mpfr_allocation_type A2> | |
| void | boost::multiprecision::backends::eval_divide (mpfr_float_backend< D1, A1 > &a, long x, const mpfr_float_backend< D2, A2 > &y) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| bool | boost::multiprecision::backends::eval_is_zero (const mpfr_float_backend< digits10, AllocationType > &val) BOOST_NOEXCEPT | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| int | boost::multiprecision::backends::eval_get_sign (const mpfr_float_backend< digits10, AllocationType > &val) BOOST_NOEXCEPT | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_convert_to (unsigned long *result, const mpfr_float_backend< digits10, AllocationType > &val) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_convert_to (long *result, const mpfr_float_backend< digits10, AllocationType > &val) | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_convert_to (double *result, const mpfr_float_backend< digits10, AllocationType > &val) BOOST_NOEXCEPT | 
| template<unsigned digits10, mpfr_allocation_type AllocationType> | |
| void | boost::multiprecision::backends::eval_convert_to (long double *result, const mpfr_float_backend< digits10, AllocationType > &val) BOOST_NOEXCEPT | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_sqrt (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &val) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_abs (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &val) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_fabs (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &val) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_ceil (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &val) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_floor (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &val) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_trunc (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &val) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_ldexp (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &val, long e) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_frexp (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &val, int *e) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_frexp (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &val, long *e) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| int | boost::multiprecision::backends::eval_fpclassify (const mpfr_float_backend< Digits10, AllocateType > &val) BOOST_NOEXCEPT | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_pow (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &b, const mpfr_float_backend< Digits10, AllocateType > &e) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType, class Integer > | |
| enable_if< mpl::and_ < is_signed< Integer > , mpl::bool_< (sizeof(Integer) <=sizeof(long))> > >::type  | boost::multiprecision::backends::eval_pow (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &b, const Integer &e) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType, class Integer > | |
| enable_if< mpl::and_ < is_unsigned< Integer > , mpl::bool_< (sizeof(Integer) <=sizeof(long))> > >::type  | boost::multiprecision::backends::eval_pow (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &b, const Integer &e) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_exp (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_log (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_log10 (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_sin (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_cos (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_tan (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_asin (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_acos (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_atan (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_atan2 (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg1, const mpfr_float_backend< Digits10, AllocateType > &arg2) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_sinh (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_cosh (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<unsigned Digits10, mpfr_allocation_type AllocateType> | |
| void | boost::multiprecision::backends::eval_tanh (mpfr_float_backend< Digits10, AllocateType > &result, const mpfr_float_backend< Digits10, AllocateType > &arg) | 
| template<> | |
| int | boost::math::tools::digits< boost::multiprecision::mpfr_float > () | 
| #define BOOST_MP_ENABLE_IF_WORKAROUND |