Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
tommath.hpp File Reference
#include <boost/multiprecision/number.hpp>
#include <boost/multiprecision/rational_adaptor.hpp>
#include <boost/multiprecision/detail/integer_ops.hpp>
#include <boost/math/special_functions/fpclassify.hpp>
#include <boost/cstdint.hpp>
#include <boost/scoped_array.hpp>
#include <tommath.h>
#include <cmath>
#include <limits>
#include <climits>
Include dependency graph for tommath.hpp:

Classes

struct  boost::multiprecision::backends::tommath_int
 
struct  boost::multiprecision::number_category< tommath_int >
 
class  std::numeric_limits< boost::multiprecision::number< boost::multiprecision::tommath_int, ExpressionTemplates > >
 

Namespaces

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

Macros

#define BOOST_MP_TOMMATH_BIT_OP_CHECK(x)
 

Typedefs

typedef number< tommath_int > boost::multiprecision::tom_int
 
typedef rational_adaptor
< tommath_int > 
boost::multiprecision::tommath_rational
 
typedef number< tommath_rational > boost::multiprecision::tom_rational
 

Functions

void boost::multiprecision::backends::detail::check_tommath_result (unsigned v)
 
void boost::multiprecision::backends::eval_multiply (tommath_int &t, const tommath_int &o)
 
void boost::multiprecision::backends::eval_add (tommath_int &t, const tommath_int &o)
 
int boost::multiprecision::backends::eval_get_sign (const tommath_int &val)
 
void boost::multiprecision::backends::eval_subtract (tommath_int &t, const tommath_int &o)
 
void boost::multiprecision::backends::eval_divide (tommath_int &t, const tommath_int &o)
 
void boost::multiprecision::backends::eval_modulus (tommath_int &t, const tommath_int &o)
 
template<class UI >
void boost::multiprecision::backends::eval_left_shift (tommath_int &t, UI i)
 
template<class UI >
void boost::multiprecision::backends::eval_right_shift (tommath_int &t, UI i)
 
template<class UI >
void boost::multiprecision::backends::eval_left_shift (tommath_int &t, const tommath_int &v, UI i)
 
template<class UI >
void boost::multiprecision::backends::eval_right_shift (tommath_int &t, const tommath_int &v, UI i)
 
void boost::multiprecision::backends::eval_bitwise_and (tommath_int &result, const tommath_int &v)
 
void boost::multiprecision::backends::eval_bitwise_or (tommath_int &result, const tommath_int &v)
 
void boost::multiprecision::backends::eval_bitwise_xor (tommath_int &result, const tommath_int &v)
 
void boost::multiprecision::backends::eval_add (tommath_int &t, const tommath_int &p, const tommath_int &o)
 
void boost::multiprecision::backends::eval_subtract (tommath_int &t, const tommath_int &p, const tommath_int &o)
 
void boost::multiprecision::backends::eval_multiply (tommath_int &t, const tommath_int &p, const tommath_int &o)
 
void boost::multiprecision::backends::eval_divide (tommath_int &t, const tommath_int &p, const tommath_int &o)
 
void boost::multiprecision::backends::eval_modulus (tommath_int &t, const tommath_int &p, const tommath_int &o)
 
void boost::multiprecision::backends::eval_bitwise_and (tommath_int &result, const tommath_int &u, const tommath_int &v)
 
void boost::multiprecision::backends::eval_bitwise_or (tommath_int &result, const tommath_int &u, const tommath_int &v)
 
void boost::multiprecision::backends::eval_bitwise_xor (tommath_int &result, const tommath_int &u, const tommath_int &v)
 
bool boost::multiprecision::backends::eval_is_zero (const tommath_int &val)
 
template<class A >
void boost::multiprecision::backends::eval_convert_to (A *result, const tommath_int &val)
 
void boost::multiprecision::backends::eval_convert_to (char *result, const tommath_int &val)
 
void boost::multiprecision::backends::eval_convert_to (unsigned char *result, const tommath_int &val)
 
void boost::multiprecision::backends::eval_convert_to (signed char *result, const tommath_int &val)
 
void boost::multiprecision::backends::eval_abs (tommath_int &result, const tommath_int &val)
 
void boost::multiprecision::backends::eval_gcd (tommath_int &result, const tommath_int &a, const tommath_int &b)
 
void boost::multiprecision::backends::eval_lcm (tommath_int &result, const tommath_int &a, const tommath_int &b)
 
void boost::multiprecision::backends::eval_powm (tommath_int &result, const tommath_int &base, const tommath_int &p, const tommath_int &m)
 
void boost::multiprecision::backends::eval_qr (const tommath_int &x, const tommath_int &y, tommath_int &q, tommath_int &r)
 
unsigned boost::multiprecision::backends::eval_lsb (const tommath_int &val)
 
unsigned boost::multiprecision::backends::eval_msb (const tommath_int &val)
 
template<class Integer >
enable_if< is_unsigned
< Integer >, Integer >::type 
boost::multiprecision::backends::eval_integer_modulus (const tommath_int &x, Integer val)
 
template<class Integer >
enable_if< is_signed< Integer >
, Integer >::type 
boost::multiprecision::backends::eval_integer_modulus (const tommath_int &x, Integer val)
 

Macro Definition Documentation

#define BOOST_MP_TOMMATH_BIT_OP_CHECK (   x)
Value:
if(SIGN(&x.data()))\
BOOST_THROW_EXCEPTION(std::runtime_error("Bitwise operations on libtommath negative valued integers are disabled as they produce unpredictable results"))
Traits const flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > &x return out<< x.get();}template< BOOST_TEMPLATED_STREAM_COMMA typename T, typename Arg_1, typename Arg_2, typename Arg_3, typename Arg_4, typename Arg_5 > Traits flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > & x
Definition: flyweight.hpp:423
#define BOOST_THROW_EXCEPTION(x)
Definition: throw_exception.hpp:47

Referenced by boost::multiprecision::backends::eval_bitwise_and(), boost::multiprecision::backends::eval_bitwise_or(), and boost::multiprecision::backends::eval_bitwise_xor().