Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
gmp.hpp File Reference
#include <boost/multiprecision/number.hpp>
#include <boost/multiprecision/detail/integer_ops.hpp>
#include <boost/multiprecision/detail/big_lanczos.hpp>
#include <boost/multiprecision/detail/digits.hpp>
#include <boost/math/special_functions/fpclassify.hpp>
#include <boost/cstdint.hpp>
#include <gmp.h>
#include <cmath>
#include <limits>
#include <climits>
Include dependency graph for gmp.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  boost::multiprecision::backends::gmp_float< digits10 >
 
struct  boost::multiprecision::number_category< backends::gmp_int >
 
struct  boost::multiprecision::number_category< backends::gmp_rational >
 
struct  boost::multiprecision::number_category< backends::gmp_float< digits10 > >
 
struct  boost::multiprecision::backends::detail::gmp_float_imp< digits10 >
 
struct  boost::multiprecision::backends::gmp_float< digits10 >
 
struct  boost::multiprecision::backends::gmp_float< 0 >
 
struct  boost::multiprecision::backends::gmp_int
 
struct  boost::multiprecision::component_type< number< gmp_rational > >
 
struct  boost::multiprecision::number_category< detail::canonical< mpz_t, gmp_int >::type >
 
struct  boost::multiprecision::number_category< detail::canonical< mpq_t, gmp_rational >::type >
 
struct  boost::multiprecision::number_category< detail::canonical< mpf_t, gmp_float< 0 > >::type >
 
class  std::numeric_limits< boost::multiprecision::number< boost::multiprecision::gmp_float< Digits10 >, ExpressionTemplates > >
 
class  std::numeric_limits< boost::multiprecision::number< boost::multiprecision::gmp_float< 0 >, ExpressionTemplates > >
 
class  std::numeric_limits< boost::multiprecision::number< boost::multiprecision::gmp_int, ExpressionTemplates > >
 
class  std::numeric_limits< boost::multiprecision::number< boost::multiprecision::gmp_rational, ExpressionTemplates > >
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::multiprecision
 
 boost::multiprecision::backends
 
 boost::multiprecision::backends::detail
 

Typedefs

typedef number< gmp_float< 50 > > boost::multiprecision::mpf_float_50
 
typedef number< gmp_float< 100 > > boost::multiprecision::mpf_float_100
 
typedef number< gmp_float< 500 > > boost::multiprecision::mpf_float_500
 
typedef number< gmp_float< 1000 > > boost::multiprecision::mpf_float_1000
 
typedef number< gmp_float< 0 > > boost::multiprecision::mpf_float
 
typedef number< gmp_int > boost::multiprecision::mpz_int
 
typedef number< gmp_rational > boost::multiprecision::mpq_rational
 

Functions

template<unsigned digits10, class T >
enable_if_c< is_arithmetic< T >
::value, bool >::type 
boost::multiprecision::backends::eval_eq (const gmp_float< digits10 > &a, const T &b) BOOST_NOEXCEPT
 
template<unsigned digits10, class T >
enable_if_c< is_arithmetic< T >
::value, bool >::type 
boost::multiprecision::backends::eval_lt (const gmp_float< digits10 > &a, const T &b) BOOST_NOEXCEPT
 
template<unsigned digits10, class T >
enable_if_c< is_arithmetic< T >
::value, bool >::type 
boost::multiprecision::backends::eval_gt (const gmp_float< digits10 > &a, const T &b) BOOST_NOEXCEPT
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_add (gmp_float< D1 > &result, const gmp_float< D2 > &o)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_subtract (gmp_float< D1 > &result, const gmp_float< D2 > &o)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_multiply (gmp_float< D1 > &result, const gmp_float< D2 > &o)
 
template<unsigned digits10>
bool boost::multiprecision::backends::eval_is_zero (const gmp_float< digits10 > &val) BOOST_NOEXCEPT
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_divide (gmp_float< D1 > &result, const gmp_float< D2 > &o)
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_add (gmp_float< digits10 > &result, unsigned long i)
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_subtract (gmp_float< digits10 > &result, unsigned long i)
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_multiply (gmp_float< digits10 > &result, unsigned long i)
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_divide (gmp_float< digits10 > &result, unsigned long i)
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_add (gmp_float< digits10 > &result, long i)
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_subtract (gmp_float< digits10 > &result, long i)
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_multiply (gmp_float< digits10 > &result, long i)
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_divide (gmp_float< digits10 > &result, long i)
 
template<unsigned D1, unsigned D2, unsigned D3>
void boost::multiprecision::backends::eval_add (gmp_float< D1 > &a, const gmp_float< D2 > &x, const gmp_float< D3 > &y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_add (gmp_float< D1 > &a, const gmp_float< D2 > &x, unsigned long y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_add (gmp_float< D1 > &a, const gmp_float< D2 > &x, long y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_add (gmp_float< D1 > &a, unsigned long x, const gmp_float< D2 > &y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_add (gmp_float< D1 > &a, long x, const gmp_float< D2 > &y)
 
template<unsigned D1, unsigned D2, unsigned D3>
void boost::multiprecision::backends::eval_subtract (gmp_float< D1 > &a, const gmp_float< D2 > &x, const gmp_float< D3 > &y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_subtract (gmp_float< D1 > &a, const gmp_float< D2 > &x, unsigned long y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_subtract (gmp_float< D1 > &a, const gmp_float< D2 > &x, long y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_subtract (gmp_float< D1 > &a, unsigned long x, const gmp_float< D2 > &y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_subtract (gmp_float< D1 > &a, long x, const gmp_float< D2 > &y)
 
template<unsigned D1, unsigned D2, unsigned D3>
void boost::multiprecision::backends::eval_multiply (gmp_float< D1 > &a, const gmp_float< D2 > &x, const gmp_float< D3 > &y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_multiply (gmp_float< D1 > &a, const gmp_float< D2 > &x, unsigned long y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_multiply (gmp_float< D1 > &a, const gmp_float< D2 > &x, long y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_multiply (gmp_float< D1 > &a, unsigned long x, const gmp_float< D2 > &y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_multiply (gmp_float< D1 > &a, long x, const gmp_float< D2 > &y)
 
template<unsigned D1, unsigned D2, unsigned D3>
void boost::multiprecision::backends::eval_divide (gmp_float< D1 > &a, const gmp_float< D2 > &x, const gmp_float< D3 > &y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_divide (gmp_float< D1 > &a, const gmp_float< D2 > &x, unsigned long y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_divide (gmp_float< D1 > &a, const gmp_float< D2 > &x, long y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_divide (gmp_float< D1 > &a, unsigned long x, const gmp_float< D2 > &y)
 
template<unsigned D1, unsigned D2>
void boost::multiprecision::backends::eval_divide (gmp_float< D1 > &a, long x, const gmp_float< D2 > &y)
 
template<unsigned digits10>
int boost::multiprecision::backends::eval_get_sign (const gmp_float< digits10 > &val) BOOST_NOEXCEPT
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_convert_to (unsigned long *result, const gmp_float< digits10 > &val) BOOST_NOEXCEPT
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_convert_to (long *result, const gmp_float< digits10 > &val) BOOST_NOEXCEPT
 
template<unsigned digits10>
void boost::multiprecision::backends::eval_convert_to (double *result, const gmp_float< digits10 > &val) BOOST_NOEXCEPT
 
template<unsigned Digits10>
void boost::multiprecision::backends::eval_sqrt (gmp_float< Digits10 > &result, const gmp_float< Digits10 > &val)
 
template<unsigned Digits10>
void boost::multiprecision::backends::eval_abs (gmp_float< Digits10 > &result, const gmp_float< Digits10 > &val)
 
template<unsigned Digits10>
void boost::multiprecision::backends::eval_fabs (gmp_float< Digits10 > &result, const gmp_float< Digits10 > &val)
 
template<unsigned Digits10>
void boost::multiprecision::backends::eval_ceil (gmp_float< Digits10 > &result, const gmp_float< Digits10 > &val)
 
template<unsigned Digits10>
void boost::multiprecision::backends::eval_floor (gmp_float< Digits10 > &result, const gmp_float< Digits10 > &val)
 
template<unsigned Digits10>
void boost::multiprecision::backends::eval_trunc (gmp_float< Digits10 > &result, const gmp_float< Digits10 > &val)
 
template<unsigned Digits10>
void boost::multiprecision::backends::eval_ldexp (gmp_float< Digits10 > &result, const gmp_float< Digits10 > &val, long e)
 
template<unsigned Digits10>
void boost::multiprecision::backends::eval_frexp (gmp_float< Digits10 > &result, const gmp_float< Digits10 > &val, int *e)
 
template<unsigned Digits10>
void boost::multiprecision::backends::eval_frexp (gmp_float< Digits10 > &result, const gmp_float< Digits10 > &val, long *e)
 
template<class T >
enable_if< is_arithmetic< T >
, bool >::type 
boost::multiprecision::backends::eval_eq (const gmp_int &a, const T &b)
 
template<class T >
enable_if< is_arithmetic< T >
, bool >::type 
boost::multiprecision::backends::eval_lt (const gmp_int &a, const T &b)
 
template<class T >
enable_if< is_arithmetic< T >
, bool >::type 
boost::multiprecision::backends::eval_gt (const gmp_int &a, const T &b)
 
bool boost::multiprecision::backends::eval_is_zero (const gmp_int &val)
 
void boost::multiprecision::backends::eval_add (gmp_int &t, const gmp_int &o)
 
void boost::multiprecision::backends::eval_multiply_add (gmp_int &t, const gmp_int &a, const gmp_int &b)
 
void boost::multiprecision::backends::eval_multiply_subtract (gmp_int &t, const gmp_int &a, const gmp_int &b)
 
void boost::multiprecision::backends::eval_subtract (gmp_int &t, const gmp_int &o)
 
void boost::multiprecision::backends::eval_multiply (gmp_int &t, const gmp_int &o)
 
void boost::multiprecision::backends::eval_divide (gmp_int &t, const gmp_int &o)
 
void boost::multiprecision::backends::eval_modulus (gmp_int &t, const gmp_int &o)
 
void boost::multiprecision::backends::eval_add (gmp_int &t, unsigned long i)
 
void boost::multiprecision::backends::eval_multiply_add (gmp_int &t, const gmp_int &a, unsigned long i)
 
void boost::multiprecision::backends::eval_multiply_subtract (gmp_int &t, const gmp_int &a, unsigned long i)
 
void boost::multiprecision::backends::eval_subtract (gmp_int &t, unsigned long i)
 
void boost::multiprecision::backends::eval_multiply (gmp_int &t, unsigned long i)
 
void boost::multiprecision::backends::eval_modulus (gmp_int &t, unsigned long i)
 
void boost::multiprecision::backends::eval_divide (gmp_int &t, unsigned long i)
 
void boost::multiprecision::backends::eval_add (gmp_int &t, long i)
 
void boost::multiprecision::backends::eval_multiply_add (gmp_int &t, const gmp_int &a, long i)
 
void boost::multiprecision::backends::eval_multiply_subtract (gmp_int &t, const gmp_int &a, long i)
 
void boost::multiprecision::backends::eval_subtract (gmp_int &t, long i)
 
void boost::multiprecision::backends::eval_multiply (gmp_int &t, long i)
 
void boost::multiprecision::backends::eval_modulus (gmp_int &t, long i)
 
void boost::multiprecision::backends::eval_divide (gmp_int &t, long i)
 
template<class UI >
void boost::multiprecision::backends::eval_left_shift (gmp_int &t, UI i)
 
template<class UI >
void boost::multiprecision::backends::eval_right_shift (gmp_int &t, UI i)
 
template<class UI >
void boost::multiprecision::backends::eval_left_shift (gmp_int &t, const gmp_int &v, UI i)
 
template<class UI >
void boost::multiprecision::backends::eval_right_shift (gmp_int &t, const gmp_int &v, UI i)
 
void boost::multiprecision::backends::eval_bitwise_and (gmp_int &result, const gmp_int &v)
 
void boost::multiprecision::backends::eval_bitwise_or (gmp_int &result, const gmp_int &v)
 
void boost::multiprecision::backends::eval_bitwise_xor (gmp_int &result, const gmp_int &v)
 
void boost::multiprecision::backends::eval_add (gmp_int &t, const gmp_int &p, const gmp_int &o)
 
void boost::multiprecision::backends::eval_subtract (gmp_int &t, const gmp_int &p, const gmp_int &o)
 
void boost::multiprecision::backends::eval_multiply (gmp_int &t, const gmp_int &p, const gmp_int &o)
 
void boost::multiprecision::backends::eval_divide (gmp_int &t, const gmp_int &p, const gmp_int &o)
 
void boost::multiprecision::backends::eval_modulus (gmp_int &t, const gmp_int &p, const gmp_int &o)
 
void boost::multiprecision::backends::eval_add (gmp_int &t, const gmp_int &p, unsigned long i)
 
void boost::multiprecision::backends::eval_subtract (gmp_int &t, const gmp_int &p, unsigned long i)
 
void boost::multiprecision::backends::eval_multiply (gmp_int &t, const gmp_int &p, unsigned long i)
 
void boost::multiprecision::backends::eval_modulus (gmp_int &t, const gmp_int &p, unsigned long i)
 
void boost::multiprecision::backends::eval_divide (gmp_int &t, const gmp_int &p, unsigned long i)
 
void boost::multiprecision::backends::eval_add (gmp_int &t, const gmp_int &p, long i)
 
void boost::multiprecision::backends::eval_subtract (gmp_int &t, const gmp_int &p, long i)
 
void boost::multiprecision::backends::eval_multiply (gmp_int &t, const gmp_int &p, long i)
 
void boost::multiprecision::backends::eval_modulus (gmp_int &t, const gmp_int &p, long i)
 
void boost::multiprecision::backends::eval_divide (gmp_int &t, const gmp_int &p, long i)
 
void boost::multiprecision::backends::eval_bitwise_and (gmp_int &result, const gmp_int &u, const gmp_int &v)
 
void boost::multiprecision::backends::eval_bitwise_or (gmp_int &result, const gmp_int &u, const gmp_int &v)
 
void boost::multiprecision::backends::eval_bitwise_xor (gmp_int &result, const gmp_int &u, const gmp_int &v)
 
void boost::multiprecision::backends::eval_complement (gmp_int &result, const gmp_int &u)
 
int boost::multiprecision::backends::eval_get_sign (const gmp_int &val)
 
void boost::multiprecision::backends::eval_convert_to (unsigned long *result, const gmp_int &val)
 
void boost::multiprecision::backends::eval_convert_to (long *result, const gmp_int &val)
 
void boost::multiprecision::backends::eval_convert_to (double *result, const gmp_int &val)
 
void boost::multiprecision::backends::eval_abs (gmp_int &result, const gmp_int &val)
 
void boost::multiprecision::backends::eval_gcd (gmp_int &result, const gmp_int &a, const gmp_int &b)
 
void boost::multiprecision::backends::eval_lcm (gmp_int &result, const gmp_int &a, const gmp_int &b)
 
template<class I >
enable_if_c<(is_unsigned< I >
::value &&(sizeof(I)<=sizeof(unsigned
long)))>::type 
boost::multiprecision::backends::eval_gcd (gmp_int &result, const gmp_int &a, const I b)
 
template<class I >
enable_if_c<(is_unsigned< I >
::value &&(sizeof(I)<=sizeof(unsigned
long)))>::type 
boost::multiprecision::backends::eval_lcm (gmp_int &result, const gmp_int &a, const I b)
 
template<class I >
enable_if_c<(is_signed< I >
::value &&(sizeof(I)<=sizeof(long)))>
::type 
boost::multiprecision::backends::eval_gcd (gmp_int &result, const gmp_int &a, const I b)
 
template<class I >
enable_if_c< is_signed< I >
::value &&((sizeof(I)<=sizeof(long)))>
::type 
boost::multiprecision::backends::eval_lcm (gmp_int &result, const gmp_int &a, const I b)
 
void boost::multiprecision::backends::eval_integer_sqrt (gmp_int &s, gmp_int &r, const gmp_int &x)
 
unsigned boost::multiprecision::backends::eval_lsb (const gmp_int &val)
 
unsigned boost::multiprecision::backends::eval_msb (const gmp_int &val)
 
bool boost::multiprecision::backends::eval_bit_test (const gmp_int &val, unsigned index)
 
void boost::multiprecision::backends::eval_bit_set (gmp_int &val, unsigned index)
 
void boost::multiprecision::backends::eval_bit_unset (gmp_int &val, unsigned index)
 
void boost::multiprecision::backends::eval_bit_flip (gmp_int &val, unsigned index)
 
void boost::multiprecision::backends::eval_qr (const gmp_int &x, const gmp_int &y, gmp_int &q, gmp_int &r)
 
template<class Integer >
enable_if< is_unsigned
< Integer >, Integer >::type 
boost::multiprecision::backends::eval_integer_modulus (const gmp_int &x, Integer val)
 
template<class Integer >
enable_if< is_signed< Integer >
, Integer >::type 
boost::multiprecision::backends::eval_integer_modulus (const gmp_int &x, Integer val)
 
void boost::multiprecision::backends::eval_powm (gmp_int &result, const gmp_int &base, const gmp_int &p, const gmp_int &m)
 
 boost::multiprecision::backends::mpq_clear (t)
 
gmp_rational & boost::multiprecision::backends::operator= (long long i)
 
gmp_rational & boost::multiprecision::backends::operator= (unsigned long i)
 
gmp_rational & boost::multiprecision::backends::operator= (long i)
 
gmp_rational & boost::multiprecision::backends::operator= (double d)
 
gmp_rational & boost::multiprecision::backends::operator= (long double a)
 
gmp_rational & boost::multiprecision::backends::operator= (const char *s)
 
gmp_rational & boost::multiprecision::backends::operator= (const gmp_int &o)
 
gmp_rational & boost::multiprecision::backends::operator= (const mpq_t o)
 
gmp_rational & boost::multiprecision::backends::operator= (const mpz_t o)
 
void boost::multiprecision::backends::swap (gmp_rational &o)
 
std::string boost::multiprecision::backends::str (std::streamsize, std::ios_base::fmtflags) const
 
 boost::multiprecision::backends::~gmp_rational ()
 
result boost::multiprecision::backends::negate ()
 
int boost::multiprecision::backends::compare (const gmp_rational &o) const
 
template<class V >
int boost::multiprecision::backends::compare (V v) const
 
int boost::multiprecision::backends::compare (unsigned long v) const
 
int boost::multiprecision::backends::compare (long v) const
 
mpq_t & boost::multiprecision::backends::data ()
 
bool boost::multiprecision::backends::eval_is_zero (const gmp_rational &val)
 
template<class T >
bool boost::multiprecision::backends::eval_eq (gmp_rational &a, const T &b)
 
template<class T >
bool boost::multiprecision::backends::eval_lt (gmp_rational &a, const T &b)
 
template<class T >
bool boost::multiprecision::backends::eval_gt (gmp_rational &a, const T &b)
 
void boost::multiprecision::backends::eval_add (gmp_rational &t, const gmp_rational &o)
 
void boost::multiprecision::backends::eval_subtract (gmp_rational &t, const gmp_rational &o)
 
void boost::multiprecision::backends::eval_multiply (gmp_rational &t, const gmp_rational &o)
 
void boost::multiprecision::backends::eval_divide (gmp_rational &t, const gmp_rational &o)
 
void boost::multiprecision::backends::eval_add (gmp_rational &t, const gmp_rational &p, const gmp_rational &o)
 
void boost::multiprecision::backends::eval_subtract (gmp_rational &t, const gmp_rational &p, const gmp_rational &o)
 
void boost::multiprecision::backends::eval_multiply (gmp_rational &t, const gmp_rational &p, const gmp_rational &o)
 
void boost::multiprecision::backends::eval_divide (gmp_rational &t, const gmp_rational &p, const gmp_rational &o)
 
int boost::multiprecision::backends::eval_get_sign (const gmp_rational &val)
 
void boost::multiprecision::backends::eval_convert_to (double *result, const gmp_rational &val)
 
void boost::multiprecision::backends::eval_convert_to (long *result, const gmp_rational &val)
 
void boost::multiprecision::backends::eval_convert_to (unsigned long *result, const gmp_rational &val)
 
void boost::multiprecision::backends::eval_abs (gmp_rational &result, const gmp_rational &val)
 
void boost::multiprecision::backends::assign_components (gmp_rational &result, unsigned long v1, unsigned long v2)
 
void boost::multiprecision::backends::assign_components (gmp_rational &result, long v1, long v2)
 
void boost::multiprecision::backends::assign_components (gmp_rational &result, gmp_int const &v1, gmp_int const &v2)
 
template<expression_template_option ET>
number< gmp_int, ET > boost::multiprecision::numerator (const number< gmp_rational, ET > &val)
 
template<expression_template_option ET>
number< gmp_int, ET > boost::multiprecision::denominator (const number< gmp_rational, ET > &val)
 

Variables

return * boost::multiprecision::backends::this
 
mpq_t boost::multiprecision::backends::m_data