Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
multiply.hpp File Reference
This graph shows which files directly or indirectly include this file:

Namespaces

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

Functions

template<unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1 , unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2 >
enable_if_c
<!is_trivial_cpp_int
< cpp_int_backend< MinBits1,
MaxBits1, SignType1, Checked1,
Allocator1 > >::value
&&!is_trivial_cpp_int
< cpp_int_backend< MinBits2,
MaxBits2, SignType2, Checked2,
Allocator2 > >::value >::type 
boost::multiprecision::backends::eval_multiply (cpp_int_backend< MinBits1, MaxBits1, SignType1, Checked1, Allocator1 > &result, const cpp_int_backend< MinBits2, MaxBits2, SignType2, Checked2, Allocator2 > &a, const limb_type &val) BOOST_NOEXCEPT_IF((is_non_throwing_cpp_int< cpp_int_backend< MinBits1
 
 boost::multiprecision::backends::while (p!=pe)
 
 boost::multiprecision::backends::if (carry)
 
result boost::multiprecision::backends::sign (a.sign())
 
 boost::multiprecision::backends::if (!cpp_int_backend< MinBits1, MaxBits1, SignType1, Checked1, Allocator1 >::variable) result.normalize()
 
template<unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1 >
void boost::multiprecision::backends::resize_for_carry (cpp_int_backend< MinBits1, MaxBits1, SignType1, Checked1, Allocator1 > &, unsigned)
 
template<unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1 >
void boost::multiprecision::backends::resize_for_carry (cpp_int_backend< MinBits1, MaxBits1, SignType1, checked, void > &result, unsigned required)
 
template<unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1 , unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2 , unsigned MinBits3, unsigned MaxBits3, cpp_integer_type SignType3, cpp_int_check_type Checked3, class Allocator3 >
enable_if_c
<!is_trivial_cpp_int
< cpp_int_backend< MinBits1,
MaxBits1, SignType1, Checked1,
Allocator1 > >::value
&&!is_trivial_cpp_int
< cpp_int_backend< MinBits2,
MaxBits2, SignType2, Checked2,
Allocator2 > >::value
&&!is_trivial_cpp_int
< cpp_int_backend< MinBits3,
MaxBits3, SignType3, Checked3,
Allocator3 > >::value >::type 
boost::multiprecision::backends::eval_multiply (cpp_int_backend< MinBits1, MaxBits1, SignType1, Checked1, Allocator1 > &result, const cpp_int_backend< MinBits2, MaxBits2, SignType2, Checked2, Allocator2 > &a, const cpp_int_backend< MinBits3, MaxBits3, SignType3, Checked3, Allocator3 > &b) BOOST_NOEXCEPT_IF((is_non_throwing_cpp_int< cpp_int_backend< MinBits1
 
 boost::multiprecision::backends::if (as==1)
 
 boost::multiprecision::backends::if (bs==1)
 
 boost::multiprecision::backends::if ((void *)&result==(void *)&a)
 
result boost::multiprecision::backends::resize (as+bs, as+bs-1)
 
 boost::multiprecision::backends::BOOST_STATIC_ASSERT (double_limb_max-2 *limb_max >=limb_max *limb_max)
 
 boost::multiprecision::backends::for (unsigned i=0;i< os;++i) result.limbs()[i] = ~static_cast<limb_type>(0)
 
result boost::multiprecision::backends::normalize ()
 
result boost::multiprecision::backends::sign (a.sign()!=b.sign())
 
template<unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1 , unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2 >
BOOST_MP_FORCEINLINE
enable_if_c
<!is_trivial_cpp_int
< cpp_int_backend< MinBits1,
MaxBits1, SignType1, Checked1,
Allocator1 > >::value
&&!is_trivial_cpp_int
< cpp_int_backend< MinBits2,
MaxBits2, SignType2, Checked2,
Allocator2 > >::value >::type 
boost::multiprecision::backends::eval_multiply (cpp_int_backend< MinBits1, MaxBits1, SignType1, Checked1, Allocator1 > &result, const cpp_int_backend< MinBits2, MaxBits2, SignType2, Checked2, Allocator2 > &a) BOOST_NOEXCEPT_IF((is_non_throwing_cpp_int< cpp_int_backend< MinBits1
 
template<unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1 >
BOOST_MP_FORCEINLINE
enable_if_c
<!is_trivial_cpp_int
< cpp_int_backend< MinBits1,
MaxBits1, SignType1, Checked1,
Allocator1 > >::value >::type 
boost::multiprecision::backends::eval_multiply (cpp_int_backend< MinBits1, MaxBits1, SignType1, Checked1, Allocator1 > &result, const limb_type &val) BOOST_NOEXCEPT_IF((is_non_throwing_cpp_int< cpp_int_backend< MinBits1
 
template<unsigned MinBits1, unsigned MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1 , unsigned MinBits2, unsigned MaxBits2, cpp_integer_type SignType2, cpp_int_check_type Checked2, class Allocator2 >
BOOST_MP_FORCEINLINE
enable_if_c
<!is_trivial_cpp_int
< cpp_int_backend< MinBits1,
MaxBits1, SignType1, Checked1,
Allocator1 > >::value
&&!is_trivial_cpp_int
< cpp_int_backend< MinBits2,
MaxBits2, SignType2, Checked2,
Allocator2 > >::value >::type 
boost::multiprecision::backends::eval_multiply (cpp_int_backend< MinBits1, MaxBits1, SignType1, Checked1, Allocator1 > &result, const cpp_int_backend< MinBits2, MaxBits2, SignType2, Checked2, Allocator2 > &a, const double_limb_type &val) BOOST_NOEXCEPT_IF((is_non_throwing_cpp_int< cpp_int_backend< MinBits1
 

Variables

double_limb_type boost::multiprecision::backends::carry = 0
 
cpp_int_backend< MinBits1,
MaxBits1, SignType1, Checked1,
Allocator1 >::limb_pointer 
boost::multiprecision::backends::p = result.limbs()
 
cpp_int_backend< MinBits1,
MaxBits1, SignType1, Checked1,
Allocator1 >::limb_pointer 
boost::multiprecision::backends::pe = result.limbs() + result.size()
 
cpp_int_backend< MinBits2,
MaxBits2, SignType2, Checked2,
Allocator2 >
::const_limb_pointer 
boost::multiprecision::backends::pa = a.limbs()
 
unsigned boost::multiprecision::backends::bs = b.size()
 
cpp_int_backend< MinBits3,
MaxBits3, SignType3, Checked3,
Allocator3 >
::const_limb_pointer 
boost::multiprecision::backends::pb = b.limbs()