#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 |