|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r62896 - in sandbox/xint: boost/xint boost/xint/detail dev libs/xint/doc libs/xint/doc/dox libs/xint/test
From: chad.thecomfychair_at_[hidden]
Date: 2010-06-13 00:06:31
Author: chadnelson
Date: 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
New Revision: 62896
URL: http://svn.boost.org/trac/boost/changeset/62896
Log:
Added wide-character support.
Added:
sandbox/xint/boost/xint/detail/streams.hpp (contents, props changed)
sandbox/xint/libs/xint/doc/streams_8hpp.html
- copied, changed from r62853, /sandbox/xint/libs/xint/doc/policies_8hpp.html
sandbox/xint/libs/xint/doc/streams_8hpp_source.html (contents, props changed)
Text files modified:
sandbox/xint/boost/xint/detail/basic_types_and_includes.hpp | 3
sandbox/xint/boost/xint/detail/convert.hpp | 43
sandbox/xint/boost/xint/detail/internals.hpp | 17
sandbox/xint/boost/xint/detail/raw_integer.hpp | 107 -
sandbox/xint/boost/xint/integer.hpp | 136 +
sandbox/xint/dev/XInt.project | 1
sandbox/xint/libs/xint/doc/acknowledgements.html | 3
sandbox/xint/libs/xint/doc/acknowledgements_8dox.html | 2
sandbox/xint/libs/xint/doc/addsubtract_8hpp.html | 2
sandbox/xint/libs/xint/doc/addsubtract_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/andorxor_8hpp.html | 2
sandbox/xint/libs/xint/doc/andorxor_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/annotated.html | 2
sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp.html | 5
sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp_source.html | 138
sandbox/xint/libs/xint/doc/bitfunctions_8hpp.html | 2
sandbox/xint/libs/xint/doc/bitfunctions_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/bitqueue_8hpp.html | 2
sandbox/xint/libs/xint/doc/bitqueue_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t.html | 20
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html | 2
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t-members.html | 8
sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t.html | 145
sandbox/xint/libs/xint/doc/classdisable__boost__rv__ref.html | 2
sandbox/xint/libs/xint/doc/classes.html | 2
sandbox/xint/libs/xint/doc/compare_8hpp.html | 2
sandbox/xint/libs/xint/doc/compare_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/complexity.html | 2
sandbox/xint/libs/xint/doc/complexity_8dox.html | 2
sandbox/xint/libs/xint/doc/convert_8hpp.html | 2
sandbox/xint/libs/xint/doc/convert_8hpp_source.html | 431 ++--
sandbox/xint/libs/xint/doc/copyonwrite_8dox.html | 2
sandbox/xint/libs/xint/doc/cow.html | 2
sandbox/xint/libs/xint/doc/dependencies.html | 2
sandbox/xint/libs/xint/doc/dependencies_8dox.html | 2
sandbox/xint/libs/xint/doc/divide_8hpp.html | 2
sandbox/xint/libs/xint/doc/divide_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/dox/acknowledgements.dox | 1
sandbox/xint/libs/xint/doc/ex__fibonacci.html | 2
sandbox/xint/libs/xint/doc/ex__fibonacci_8dox.html | 2
sandbox/xint/libs/xint/doc/exceptions.html | 2
sandbox/xint/libs/xint/doc/exceptions_8dox.html | 2
sandbox/xint/libs/xint/doc/exceptions_8hpp.html | 2
sandbox/xint/libs/xint/doc/exceptions_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/files.html | 3
sandbox/xint/libs/xint/doc/fixedlength.html | 2
sandbox/xint/libs/xint/doc/fixedlength_8dox.html | 2
sandbox/xint/libs/xint/doc/functions.html | 2
sandbox/xint/libs/xint/doc/functions_func.html | 2
sandbox/xint/libs/xint/doc/functions_type.html | 2
sandbox/xint/libs/xint/doc/functions_vars.html | 2
sandbox/xint/libs/xint/doc/gcd_8hpp.html | 2
sandbox/xint/libs/xint/doc/gcd_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/globals.html | 2
sandbox/xint/libs/xint/doc/globals_defs.html | 2
sandbox/xint/libs/xint/doc/hierarchy.html | 2
sandbox/xint/libs/xint/doc/history.html | 2
sandbox/xint/libs/xint/doc/history_8dox.html | 2
sandbox/xint/libs/xint/doc/index.html | 2
sandbox/xint/libs/xint/doc/index_8dox.html | 2
sandbox/xint/libs/xint/doc/integer_8hpp.html | 9
sandbox/xint/libs/xint/doc/integer_8hpp_source.html | 3393 ++++++++++++++++++++-------------------
sandbox/xint/libs/xint/doc/internals_8hpp.html | 2
sandbox/xint/libs/xint/doc/internals_8hpp_source.html | 97
sandbox/xint/libs/xint/doc/log2_8hpp.html | 2
sandbox/xint/libs/xint/doc/log2_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/magnitude__manager_8hpp.html | 2
sandbox/xint/libs/xint/doc/magnitude__manager_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/modular_8hpp.html | 2
sandbox/xint/libs/xint/doc/modular_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/monty_8hpp.html | 2
sandbox/xint/libs/xint/doc/monty_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/multiply_8hpp.html | 2
sandbox/xint/libs/xint/doc/multiply_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/namespaceboost.html | 2
sandbox/xint/libs/xint/doc/namespaceboost_1_1xint.html | 167 +
sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1detail.html | 2
sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1exceptions.html | 2
sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1options.html | 2
sandbox/xint/libs/xint/doc/namespacemembers.html | 8
sandbox/xint/libs/xint/doc/namespacemembers_func.html | 13
sandbox/xint/libs/xint/doc/namespacemembers_type.html | 2
sandbox/xint/libs/xint/doc/namespacemembers_vars.html | 2
sandbox/xint/libs/xint/doc/namespaces.html | 2
sandbox/xint/libs/xint/doc/nan.html | 2
sandbox/xint/libs/xint/doc/nan_8dox.html | 2
sandbox/xint/libs/xint/doc/options_8hpp.html | 2
sandbox/xint/libs/xint/doc/options_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/policies_8hpp.html | 2
sandbox/xint/libs/xint/doc/policies_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/powers_8hpp.html | 2
sandbox/xint/libs/xint/doc/powers_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/prime_8hpp.html | 2
sandbox/xint/libs/xint/doc/prime_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/primes.html | 2
sandbox/xint/libs/xint/doc/primes_8dox.html | 2
sandbox/xint/libs/xint/doc/r__core.html | 2
sandbox/xint/libs/xint/doc/r__core_8dox.html | 2
sandbox/xint/libs/xint/doc/r__cow.html | 2
sandbox/xint/libs/xint/doc/r__cow_8dox.html | 2
sandbox/xint/libs/xint/doc/r__exception__blocking.html | 2
sandbox/xint/libs/xint/doc/r__exception__blocking_8dox.html | 2
sandbox/xint/libs/xint/doc/r__insecure__default.html | 2
sandbox/xint/libs/xint/doc/r__insecure__default_8dox.html | 2
sandbox/xint/libs/xint/doc/r__interface.html | 2
sandbox/xint/libs/xint/doc/r__interface_8dox.html | 2
sandbox/xint/libs/xint/doc/r__interface__design__only.html | 2
sandbox/xint/libs/xint/doc/r__interface__design__only_8dox.html | 2
sandbox/xint/libs/xint/doc/r__nan.html | 2
sandbox/xint/libs/xint/doc/r__nan_8dox.html | 2
sandbox/xint/libs/xint/doc/r__negzero.html | 2
sandbox/xint/libs/xint/doc/r__negzero_8dox.html | 2
sandbox/xint/libs/xint/doc/r__no__floats.html | 2
sandbox/xint/libs/xint/doc/r__nofloats_8dox.html | 2
sandbox/xint/libs/xint/doc/r__random.html | 2
sandbox/xint/libs/xint/doc/r__random_8dox.html | 2
sandbox/xint/libs/xint/doc/r__shared__ptr.html | 2
sandbox/xint/libs/xint/doc/r__shared__ptr_8dox.html | 2
sandbox/xint/libs/xint/doc/r__too__big.html | 2
sandbox/xint/libs/xint/doc/r__toobig_8dox.html | 2
sandbox/xint/libs/xint/doc/r__whynotx.html | 2
sandbox/xint/libs/xint/doc/r__whynotx_8dox.html | 2
sandbox/xint/libs/xint/doc/random.html | 2
sandbox/xint/libs/xint/doc/random_8dox.html | 2
sandbox/xint/libs/xint/doc/random_8hpp.html | 2
sandbox/xint/libs/xint/doc/random_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/random__by__size_8hpp.html | 2
sandbox/xint/libs/xint/doc/random__by__size_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/randomgen_8hpp.html | 2
sandbox/xint/libs/xint/doc/randomgen_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/rationale.html | 2
sandbox/xint/libs/xint/doc/rationale_8dox.html | 2
sandbox/xint/libs/xint/doc/raw__integer_8hpp.html | 2
sandbox/xint/libs/xint/doc/raw__integer_8hpp_source.html | 473 ++---
sandbox/xint/libs/xint/doc/roots_8hpp.html | 2
sandbox/xint/libs/xint/doc/roots_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/shift_8hpp.html | 2
sandbox/xint/libs/xint/doc/shift_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/streams_8hpp.html | 14
sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength.html | 2
sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html | 2
sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow.html | 2
sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html | 2
sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure.html | 2
sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html | 2
sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe.html | 2
sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html | 2
sandbox/xint/libs/xint/doc/testing.html | 2
sandbox/xint/libs/xint/doc/testing_8dox.html | 2
sandbox/xint/libs/xint/doc/threadsafe.html | 2
sandbox/xint/libs/xint/doc/threadsafe_8dox.html | 2
sandbox/xint/libs/xint/doc/xint_8hpp.html | 2
sandbox/xint/libs/xint/doc/xint_8hpp_source.html | 2
sandbox/xint/libs/xint/doc/zero.html | 2
sandbox/xint/libs/xint/doc/zero_8dox.html | 2
sandbox/xint/libs/xint/test/test_convert.cpp | 15
sandbox/xint/libs/xint/test/test_streams.cpp | 21
179 files changed, 2809 insertions(+), 2770 deletions(-)
Modified: sandbox/xint/boost/xint/detail/basic_types_and_includes.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/basic_types_and_includes.hpp (original)
+++ sandbox/xint/boost/xint/detail/basic_types_and_includes.hpp 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -83,9 +83,6 @@
//! \brief This makes it easier to tell when an item is measured in bits.
typedef size_t bitsize_t;
-//! \brief This is the string representation of the Not-a-Number value.
-const std::string nan_text("#NaN#");
-
//! \brief Holds the results from a division-with-remainder call.
template <class T>
class base_divide_t {
Modified: sandbox/xint/boost/xint/detail/convert.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/convert.hpp (original)
+++ sandbox/xint/boost/xint/detail/convert.hpp 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -31,14 +31,18 @@
else return char((n - 10) + 'a');
}
-BOOST_XINT_RAWINT_TPL
-std::string to_string(const BOOST_XINT_RAWINT n, size_t base = 10, bool
- uppercase = false)
+template <typename charT, bitsize_t Bits, bool Secure, class Alloc>
+std::basic_string<charT> to_string(const BOOST_XINT_RAWINT n, size_t base = 10,
+ bool uppercase = false)
{
if (base < 2 || base > 36) throw exceptions::invalid_base();
- if (n.is_zero()) return "0";
- std::ostringstream out;
+ std::basic_ostringstream<charT> out;
+ if (n.is_zero()) {
+ out << "0";
+ return out.str();
+ }
+
if (base == 2 || base == 4 || base == 16) {
// Fast no-division version, useful for debugging division and for cases
// where maximum speed is necessary.
@@ -63,7 +67,7 @@
digitShift -= bits_per_base_b_digit;
}
- digitShift=(bits_per_digit - bits_per_base_b_digit);
+ digitShift = (bits_per_digit - bits_per_base_b_digit);
} while (d-- != firstDigit);
return out.str();
@@ -88,17 +92,19 @@
if (n.negative) out << '-';
- std::string rval = out.str();
+ std::basic_string<charT> rval = out.str();
std::reverse(rval.begin(), rval.end());
return rval;
}
}
BOOST_XINT_RAWINT_TPL
-void BOOST_XINT_RAWINT::from_string(const char *str, char **endptr, size_t base)
+template <typename charT>
+void BOOST_XINT_RAWINT::from_string(const charT *str, char **endptr, size_t
+ base)
{
bool negate = false;
- const char *c = str;
+ const charT *c = str;
while (isspace(*c)) ++c;
if (*c == '+') ++c;
@@ -117,28 +123,30 @@
if (base < 2 || base > 36) throw exceptions::invalid_base();
if (*c == 0) throw exceptions::invalid_digit("No valid digits");
- std::string tstr;
+ std::basic_string<charT> tstr;
if (negate) tstr.push_back('-');
if (base <= 10) {
- const char p = char('0' + base);
+ const charT p = charT('0' + base);
while (*c >= '0' && *c < p)
tstr.push_back(*c++);
} else {
- const char lower = char('a' + base - 10), upper = char('A' + base - 10);
+ const charT lower = charT('a' + base - 10), upper = charT('A' + base -
+ 10);
while ((*c >= '0' && *c <= '9')
|| (*c >= 'a' && *c < lower)
|| (*c >= 'A' && *c < upper))
tstr.push_back(*c++);
}
- *endptr = const_cast<char*>(c);
+ *endptr = const_cast<charT*>(c);
from_string(tstr, base);
}
BOOST_XINT_RAWINT_TPL
-void BOOST_XINT_RAWINT::from_string(const char *str, size_t base) {
+template <typename charT>
+void BOOST_XINT_RAWINT::from_string(const charT *str, size_t base) {
bool negate = false;
- const char *c = str;
+ const charT *c = str;
if (*c == '+') ++c;
else if (*c == '-') { negate = true; ++c; }
@@ -185,7 +193,10 @@
}
BOOST_XINT_RAWINT_TPL
-void BOOST_XINT_RAWINT::from_string(const std::string& str, size_t base) {
+template <typename charT>
+void BOOST_XINT_RAWINT::from_string(const std::basic_string<charT>& str, size_t
+ base)
+{
from_string(str.c_str(), base);
}
Modified: sandbox/xint/boost/xint/detail/internals.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/internals.hpp (original)
+++ sandbox/xint/boost/xint/detail/internals.hpp 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -45,6 +45,7 @@
#include "divide.hpp"
#include "convert.hpp"
+#include "streams.hpp"
#include "roots.hpp"
#include "powers.hpp"
@@ -84,6 +85,22 @@
return r;
}
+template <typename charT>
+std::basic_string<charT> nan_text() {
+ static std::basic_string<charT> r;
+ if (r.empty()) {
+ std::basic_ostringstream<charT> out;
+ out << "#NaN#";
+ r = out.str();
+ }
+ return r;
+}
+
+template <typename charT>
+bool is_nan_text(const std::basic_string<charT> str) {
+ return (str == nan_text<charT>());
+}
+
//! @endcond detail
} // namespace detail
} // namespace xint
Modified: sandbox/xint/boost/xint/detail/raw_integer.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/raw_integer.hpp (original)
+++ sandbox/xint/boost/xint/detail/raw_integer.hpp 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -55,10 +55,12 @@
boost::is_integral<T> >::type* = 0): length(1), negative(false),
changed(false) { if (std::numeric_limits<T>::is_signed) set_signed(n,
prealloc); else set_unsigned(n, false, prealloc); }
- raw_integer_t(const char *s, size_t base = 10): length(1), negative(false),
+ template <typename charT>
+ raw_integer_t(const charT *s, size_t base = 10): length(1), negative(false),
changed(false) { from_string(s, base); }
- raw_integer_t(const std::string& s, size_t base = 10): length(1),
- negative(false), changed(false) { from_string(s, base); }
+ template <typename charT>
+ raw_integer_t(const std::basic_string<charT>& s, size_t base = 10):
+ length(1), negative(false), changed(false) { from_string(s, base); }
raw_integer_t(const xint::binary_t b, size_t bits = 0): length(1),
negative(false), changed(false) { from_binary(b, bits); }
@@ -123,9 +125,12 @@
raw_integer_t& operator<<=(size_t shift);
raw_integer_t& operator>>=(size_t shift);
- void from_string(const char *str, size_t base = 10);
- void from_string(const char *str, char **endptr, size_t base = 10);
- void from_string(const std::string& str, size_t base = 10);
+ template <typename charT>
+ void from_string(const charT *str, size_t base = 10);
+ template <typename charT>
+ void from_string(const charT *str, char **endptr, size_t base = 10);
+ template <typename charT>
+ void from_string(const std::basic_string<charT>& str, size_t base = 10);
void from_binary(xint::binary_t b, size_t bits = 0);
template <class GenType>
@@ -136,9 +141,9 @@
template <class GenType>
static raw_integer_t random_prime(GenType& gen, size_t size_in_bits,
callback_t callback = no_callback);
-
+
void _swap(BOOST_XINT_RAWINT& i2);
-
+
private:
bool changed;
datatype data;
@@ -246,92 +251,6 @@
i1._swap(i2);
}
-template <typename charT, typename traits, bitsize_t Bits, bool Secure, class \
- Alloc>
-inline std::basic_ostream<charT,traits>& operator<<(std::basic_ostream<charT,
- traits>& out, const BOOST_XINT_RAWINT n)
-{
- int base=((out.flags() & std::ios::hex) ? 16
- : (out.flags() & std::ios::oct) ? 8
- : 10);
- bool upperCase=(out.flags() & std::ios::uppercase ? true : false);
-
- int nsign = (n.is_zero() ? 0 : n.negative ? -1 : 1);
- if ((out.flags() & std::ios::showpos) && nsign >= 0) out << "+";
-
- if (out.flags() & std::ios::showbase) {
- if (nsign < 0) out << "-";
-
- if (base == 16 && upperCase) out << "0X";
- else if (base == 16) out << "0x";
- else if (base == 8) out << "0";
-
- out << to_string(n.abs(), base, upperCase);
- } else {
- out << to_string(n, base, upperCase);
- }
- return out;
-}
-
-template <typename charT, typename traits, bitsize_t Bits, bool Secure, class \
- Alloc>
-inline std::basic_istream<charT,traits>& operator>>(std::basic_istream<charT,
- traits>& in, BOOST_XINT_RAWINT& n)
-{
- int hex=(in.flags() & std::ios::hex) ? 1 : 0;
- int dec=(in.flags() & std::ios::dec) ? 1 : 0;
- int oct=(in.flags() & std::ios::oct) ? 1 : 0;
- int count=hex+dec+oct;
-
- size_t base=autobase;
- if (count == 1) {
- if (hex) base = 16;
- else if (oct) base = 8;
- else base = 10;
- } else if (count > 1) base = 10;
- // else auto-base
-
- std::string s;
- if (in.peek()=='+') {
- in.ignore();
- } else if (in.peek()=='-') {
- in.ignore();
- s.push_back('-');
- }
-
- if (base==autobase) {
- if (in.peek()=='0') {
- in.ignore();
- int c=in.peek();
- if (c=='x' || c=='X') {
- in.ignore();
- base=16;
- } else base=8;
- } else base=10;
- }
-
- while (in) {
- int c=in.peek();
- if ((base==8 && (c>='0' && c<='7')) ||
- (base==10 && (c>='0' && c<='9')) ||
- (base==16 && ((c>='0' && c<='9') || (c>='a' && c<='f') ||
- (c>='A' && c<='F'))))
- {
- in.ignore();
- s.push_back(char(c));
- } else break;
- }
-
- try {
- n.from_string(s, base);
- } catch (std::exception&) {
- // Catch invalid strings
- in.setstate(std::ios::failbit);
- }
-
- return in;
-}
-
//! @endcond detail
} // namespace detail
} // namespace xint
Added: sandbox/xint/boost/xint/detail/streams.hpp
==============================================================================
--- (empty file)
+++ sandbox/xint/boost/xint/detail/streams.hpp 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -0,0 +1,119 @@
+
+/*
+ The Extended Integer (XInt) Library
+ A fast, portable C++ library for multi-precision integer math
+ Copyright 2010 by Chad Nelson
+
+ Distributed under the Boost Software License, Version 1.0.
+ See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt
+
+ See http://www.boost.org/libs/xint for library home page.
+*/
+
+/*! \file
+ \brief Contains the stream input/output code for raw_integer types.
+
+ This file will be included by the library itself when needed.
+*/
+
+#ifndef BOOST_INCLUDED_XINT_RAW_STREAMS_HPP
+#define BOOST_INCLUDED_XINT_RAW_STREAMS_HPP
+
+namespace boost {
+namespace xint {
+namespace detail {
+//! @cond detail
+
+template <typename charT, typename traits, bitsize_t Bits, bool Secure, class \
+ Alloc>
+inline std::basic_ostream<charT,traits>& operator<<(std::basic_ostream<charT,
+ traits>& out, const BOOST_XINT_RAWINT n)
+{
+ int base=((out.flags() & std::ios::hex) ? 16
+ : (out.flags() & std::ios::oct) ? 8
+ : 10);
+ bool upperCase=(out.flags() & std::ios::uppercase ? true : false);
+
+ int nsign = (n.is_zero() ? 0 : n.negative ? -1 : 1);
+ if ((out.flags() & std::ios::showpos) && nsign >= 0) out << "+";
+
+ if (out.flags() & std::ios::showbase) {
+ if (nsign < 0) out << "-";
+
+ if (base == 16 && upperCase) out << "0X";
+ else if (base == 16) out << "0x";
+ else if (base == 8) out << "0";
+
+ out << to_string<charT>(n.abs(), base, upperCase);
+ } else {
+ out << to_string<charT>(n, base, upperCase);
+ }
+ return out;
+}
+
+template <typename charT, typename traits, bitsize_t Bits, bool Secure, class \
+ Alloc>
+inline std::basic_istream<charT,traits>& operator>>(std::basic_istream<charT,
+ traits>& in, BOOST_XINT_RAWINT& n)
+{
+ int hex=(in.flags() & std::ios::hex) ? 1 : 0;
+ int dec=(in.flags() & std::ios::dec) ? 1 : 0;
+ int oct=(in.flags() & std::ios::oct) ? 1 : 0;
+ int count=hex+dec+oct;
+
+ size_t base=autobase;
+ if (count == 1) {
+ if (hex) base = 16;
+ else if (oct) base = 8;
+ else base = 10;
+ } else if (count > 1) base = 10;
+ // else auto-base
+
+ std::string s;
+ if (in.peek()=='+') {
+ in.ignore();
+ } else if (in.peek()=='-') {
+ in.ignore();
+ s.push_back('-');
+ }
+
+ if (base==autobase) {
+ if (in.peek()=='0') {
+ in.ignore();
+ int c=in.peek();
+ if (c=='x' || c=='X') {
+ in.ignore();
+ base=16;
+ } else base=8;
+ } else base=10;
+ }
+
+ while (in) {
+ int c=in.peek();
+ if ((base==8 && (c>='0' && c<='7')) ||
+ (base==10 && (c>='0' && c<='9')) ||
+ (base==16 && ((c>='0' && c<='9') || (c>='a' && c<='f') ||
+ (c>='A' && c<='F'))))
+ {
+ in.ignore();
+ s.push_back(char(c));
+ } else break;
+ }
+
+ try {
+ n.from_string(s, base);
+ } catch (std::exception&) {
+ // Catch invalid strings
+ in.setstate(std::ios::failbit);
+ }
+
+ return in;
+}
+
+//! @endcond detail
+} // namespace detail
+} // namespace xint
+} // namespace boost
+
+#endif // BOOST_INCLUDED_XINT_RAW_STREAMS_HPP
Modified: sandbox/xint/boost/xint/integer.hpp
==============================================================================
--- sandbox/xint/boost/xint/integer.hpp (original)
+++ sandbox/xint/boost/xint/integer.hpp 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -47,7 +47,6 @@
namespace boost {
namespace xint {
-// todo: update for new parameters
/*! \brief The integer_t class template.
This class implements the standard aribitrary-length %integer type.
@@ -104,7 +103,7 @@
typedef typename options::integer_signature::bind<A0,A1,A2,A3,A4>::type
args;
typedef const typename binding<args, tag::fixedlength_tag,
- options::fixedlength<0> >::type BitsType;
+ options::fixedlength<0> >::type BitsType;
typedef const typename binding<args, tag::threadsafe_tag, mpl::true_>::type
ThreadsafeType;
typedef const typename binding<args, tag::secure_tag, mpl::false_>::type
@@ -130,9 +129,12 @@
integer_t(const BOOST_XINT_INTEGER_TYPE& b, bool force_thread_safety =
false);
integer_t(BOOST_XINT_RV_REF(type) b) { _swap(b); }
- explicit integer_t(const char *str, size_t base = 10);
- explicit integer_t(const char *str, char **endptr, size_t base = 10);
- explicit integer_t(const std::string& str, size_t base = 10);
+ template <typename charT>
+ explicit integer_t(const charT *str, size_t base = 10);
+ template <typename charT>
+ explicit integer_t(const charT *str, charT **endptr, size_t base = 10);
+ template <typename charT>
+ explicit integer_t(const std::basic_string<charT>& str, size_t base = 10);
explicit integer_t(const xint::binary_t b, bitsize_t bits = 0);
BOOST_XINT_OTHER_TPL explicit integer_t(const BOOST_XINT_OTHER_TYPE& other,
bool force_thread_safety = false);
@@ -276,7 +278,8 @@
try {
data = b.data;
if (!data.is_nan()) {
- if (force_thread_safety && Threadsafe == false) data.make_unique();
+ if (force_thread_safety && Threadsafe == false)
+ data.make_unique();
}
} catch (std::exception&) {
data.make_nan();
@@ -289,10 +292,12 @@
//! \copydoc integer_t(const std::string&, size_t)
BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE::integer_t(const char *str, size_t base) {
+template <typename charT>
+BOOST_XINT_INTEGER_TYPE::integer_t(const charT *str, size_t base) {
if (Nothrow) {
try {
- if (str[0] == nan_text[0] && std::string(str) == nan_text) {
+ std::basic_string<charT> tnan = detail::nan_text<charT>();
+ if (str[0] == tnan[0] && std::basic_string<charT>(str) == tnan) {
data.make_nan();
} else {
data.from_string(str, base);
@@ -334,15 +339,18 @@
\overload
*/
BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE::integer_t(const char *str, char **endptr, size_t base)
+template <typename charT>
+BOOST_XINT_INTEGER_TYPE::integer_t(const charT *str, charT **endptr, size_t
+ base)
{
if (Nothrow) {
try {
- if (str[0] == nan_text[0]) {
- std::string s(str);
- if (s.substr(0, nan_text.length()) == nan_text) {
+ std::basic_string<charT> tnan = detail::nan_text<charT>();
+ if (str[0] == tnan[0]) {
+ std::basic_string<charT> s(str);
+ if (s.substr(0, tnan.length()) == tnan) {
data.make_nan();
- *endptr = str + nan_text.length();
+ *endptr = str + tnan.length();
return;
}
}
@@ -380,10 +388,13 @@
\overload
*/
BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE::integer_t(const std::string& str, size_t base) {
+template <typename charT>
+BOOST_XINT_INTEGER_TYPE::integer_t(const std::basic_string<charT>& str, size_t
+ base)
+{
if (Nothrow) {
try {
- if (str == nan_text) data.make_nan();
+ if (str == detail::nan_text<charT>()) data.make_nan();
else data.from_string(str, base);
} catch (std::exception&) {
data.make_nan();
@@ -1432,14 +1443,51 @@
uppercase = false)
{
if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n.is_nan()) return nan_text;
+ if (n.is_nan()) return detail::nan_text<char>();
try {
- return to_string(n._data(), base, uppercase);
+ return to_string<char>(n._data(), base, uppercase);
} catch (std::exception&) {
return std::string();
}
} else {
- return to_string(n._data(), base, uppercase);
+ return to_string<char>(n._data(), base, uppercase);
+ }
+}
+
+/*! \brief Creates a wide-character string representation of the specified
+ %integer.
+
+- Complexity: O(n<sup>2</sup>)
+
+\param[in] n The %integer to convert.
+\param[in] base The base, between 2 and 36 inclusive, to convert it to. Defaults
+to base 10.
+\param[in] uppercase Whether to make alphabetic characters (for bases greater
+than ten) uppercase or not. Defaults to \c false.
+
+\returns The string value of \c n. The nothrow<true> version returns the string
+"#NaN#" if \c n is a Not-a-Number, and an empty string instead of throwing.
+
+\exception exceptions::invalid_base if base is less than two or greater than 36.
+
+\remarks
+This is the function that's called when you ask the library to write an %integer
+to a stream, but it's more flexible because you can specify any base between 2
+and 36. (Streams only allow base-8, base-10, or base-16.)
+*/
+BOOST_XINT_INTEGER_TPL
+std::wstring to_wstring(const BOOST_XINT_INTEGER_TYPE n, size_t base = 10, bool
+ uppercase = false)
+{
+ if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (n.is_nan()) return detail::nan_text<wchar_t>();
+ try {
+ return to_string<wchar_t>(n._data(), base, uppercase);
+ } catch (std::exception&) {
+ return std::wstring();
+ }
+ } else {
+ return to_string<wchar_t>(n._data(), base, uppercase);
}
}
@@ -2376,7 +2424,7 @@
BOOST_XINT_INTEGER_TYPE n)
{
if (BOOST_XINT_INTEGER_TYPE::Nothrow && n.is_nan()) return operator<<(out,
- nan_text);
+ detail::nan_text<charT>());
return operator<<(out, n._data());
}
@@ -2385,24 +2433,30 @@
operator>>(std::basic_istream<charT, traits>& in, BOOST_XINT_INTEGER_TYPE&
n)
{
- if (BOOST_XINT_INTEGER_TYPE::Nothrow && in.peek()=='#') {
- // Must be either #NaN# or an error
- char buffer[6];
-
- // These are efficient and safe, but MSVC complains about them anyway.
- //std::streamsize size = in.readsome(buffer, 5);
- //buffer[size]=0;
-
- // Replacing them with these.
- char *p = buffer, *pe = p + 5;
- while (p != pe) in >> *p++;
- *p = 0;
-
- std::string str(buffer);
-
- if (str == boost::xint::nan_text) n = n.nan();
- else in.setstate(std::ios::failbit);
- return in;
+ if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ std::basic_string<charT> tnan = detail::nan_text<charT>();
+ charT nextchar = charT(in.peek());
+ if (nextchar == tnan[0]) {
+ // Must be either #NaN# or an error
+ std::vector<charT> buffer;
+
+ // These are efficient and safe, but MSVC complains about them anyway.
+ //std::streamsize size = in.readsome(buffer, 5);
+ //buffer[size]=0;
+
+ // Replacing them with these.
+ charT p = 0;
+ for (size_t i = 0; i < tnan.length(); ++i) {
+ in >> p;
+ buffer.push_back(p);
+ }
+ buffer.push_back(0);
+
+ std::basic_string<charT> str(&buffer[0]);
+ if (str == tnan) n = n.nan();
+ else in.setstate(std::ios::failbit);
+ return in;
+ }
}
return operator>>(in, n._data());
}
@@ -2441,15 +2495,15 @@
static const bool is_specialized;
static BOOST_XINT_INTEGER_TYPENAME min BOOST_PREVENT_MACRO_SUBSTITUTION()
- throw()
- {
+ throw()
+ {
if (BOOST_XINT_INTEGER_TYPENAME::Bits)
return -~(BOOST_XINT_INTEGER_TYPENAME());
else return 0;
}
static BOOST_XINT_INTEGER_TYPENAME max BOOST_PREVENT_MACRO_SUBSTITUTION()
- throw()
- {
+ throw()
+ {
if (BOOST_XINT_INTEGER_TYPENAME::Bits)
return ~(BOOST_XINT_INTEGER_TYPENAME());
else return 0;
Modified: sandbox/xint/dev/XInt.project
==============================================================================
--- sandbox/xint/dev/XInt.project (original)
+++ sandbox/xint/dev/XInt.project 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -42,6 +42,7 @@
<File Name="../../../../xint/boost/xint/detail/monty.hpp"/>
<File Name="../../../../xint/boost/xint/detail/randomgen.hpp"/>
<File Name="../../../../xint/boost/xint/detail/options.hpp"/>
+ <File Name="../boost/xint/detail/streams.hpp"/>
</VirtualDirectory>
<File Name="../../../../xint/boost/xint/random.hpp"/>
<File Name="../../../../xint/boost/xint/exceptions.hpp"/>
Modified: sandbox/xint/libs/xint/doc/acknowledgements.html
==============================================================================
--- sandbox/xint/libs/xint/doc/acknowledgements.html (original)
+++ sandbox/xint/libs/xint/doc/acknowledgements.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -53,6 +53,7 @@
<li>John Bytheway, for an idea for simplifying the template documentation greatly.</li>
<li>David Abrahams, for contributing a thought on how to use Boost.Parameter effectively with multiple <code>bool</code> parameters.</li>
<li>Christopher Jefferson, for sharing the best way to support <code>BOOST_NO_EXCEPTIONS</code>.</li>
+<li>Adam Merz, for suggesting wstring/wchar_t support.</li>
</ul>
<p>And the other Boost development list members who joined the discussion:</p>
<ul>
@@ -70,7 +71,7 @@
</ul>
<p>If I've forgotten anyone, please let me know and I'll correct the oversight. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/acknowledgements_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/acknowledgements_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/acknowledgements_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/acknowledgements.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/addsubtract_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/addsubtract_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/addsubtract_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="addsubtract_8hpp_source.html">addsubtract.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/addsubtract_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/addsubtract_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/addsubtract_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -242,7 +242,7 @@
<a name="l00225"></a>00225 <span class="comment"></span>
<a name="l00226"></a>00226 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_ADDSUBTRACT_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/andorxor_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/andorxor_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/andorxor_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="andorxor_8hpp_source.html">andorxor.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/andorxor_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/andorxor_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/andorxor_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -117,7 +117,7 @@
<a name="l00100"></a>00100 <span class="comment"></span>
<a name="l00101"></a>00101 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_ANDORXOR_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/annotated.html
==============================================================================
--- sandbox/xint/libs/xint/doc/annotated.html (original)
+++ sandbox/xint/libs/xint/doc/annotated.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -51,7 +51,7 @@
<tr><td class="indexkey"><a class="el" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref< T ></a></td><td class="indexvalue"></td></tr>
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -61,9 +61,6 @@
<tr><td class="mdescLeft"> </td><td class="mdescRight">This makes it easier to tell when an item is measured in bits. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef boost::function< bool()> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">boost::xint::callback_t</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">A callback function takes no parameters and returns a bool. <br/></td></tr>
-<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b">boost::xint::nan_text</a> ("#NaN#")</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">This is the string representation of the Not-a-Number value. <br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">boost::xint::autobase</a> = (std::numeric_limits<size_t>::max)()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">A value that can be used for the 'base' parameter of the string-to-integer constructor functions. <br/></td></tr>
@@ -182,7 +179,7 @@
</div>
</div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -96,79 +96,77 @@
<a name="l00082"></a>00082
<a name="l00084"></a><a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63">00084</a> <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a>;
<a name="l00085"></a>00085
-<a name="l00087"></a>00087 <span class="keyword">const</span> std::string <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>(<span class="stringliteral">"#NaN#"</span>);
-<a name="l00088"></a>00088
-<a name="l00090"></a>00090 <span class="keyword">template</span> <<span class="keyword">class</span> T>
-<a name="l00091"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html">00091</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a> {
-<a name="l00092"></a>00092 <span class="keyword">public</span>:
-<a name="l00093"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">00093</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>() { }
-<a name="l00094"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">00094</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">base_divide_t</a>(<span class="keyword">const</span> T& q, <span class="keyword">const</span> T& r): <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>(q), <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>(r) { }
-<a name="l00095"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa9f43e464f328b0cc618f67e6e4d1d6f">00095</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t<T></a>& copy):
-<a name="l00096"></a>00096 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>), <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>) { }
-<a name="l00097"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">00097</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">base_divide_t</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) move) {
-<a name="l00098"></a>00098 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>); <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>); }
-<a name="l00099"></a>00099
-<a name="l00100"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">00100</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>& <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) copy)
-<a name="l00101"></a>00101 { <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>; <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00102"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">00102</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>& <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) move) {
-<a name="l00103"></a>00103 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
-<a name="l00104"></a>00104 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>, move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>);
-<a name="l00105"></a>00105 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>, move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>);
-<a name="l00106"></a>00106 <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00107"></a>00107
-<a name="l00108"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">00108</a> T <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>, <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>;
-<a name="l00109"></a>00109
-<a name="l00110"></a>00110 <span class="keyword">private</span>:
-<a name="l00111"></a>00111 <a class="code" href="basic__types__and__includes_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">BOOST_XINT_COPYABLE_AND_MOVABLE</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>)
-<a name="l00112"></a>00112 };
+<a name="l00087"></a>00087 <span class="keyword">template</span> <<span class="keyword">class</span> T>
+<a name="l00088"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html">00088</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a> {
+<a name="l00089"></a>00089 <span class="keyword">public</span>:
+<a name="l00090"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">00090</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>() { }
+<a name="l00091"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">00091</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">base_divide_t</a>(<span class="keyword">const</span> T& q, <span class="keyword">const</span> T& r): <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>(q), <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>(r) { }
+<a name="l00092"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa9f43e464f328b0cc618f67e6e4d1d6f">00092</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t<T></a>& copy):
+<a name="l00093"></a>00093 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>), <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>) { }
+<a name="l00094"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">00094</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">base_divide_t</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) move) {
+<a name="l00095"></a>00095 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>); <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>); }
+<a name="l00096"></a>00096
+<a name="l00097"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">00097</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>& <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) copy)
+<a name="l00098"></a>00098 { <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>; <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00099"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">00099</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>& <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) move) {
+<a name="l00100"></a>00100 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
+<a name="l00101"></a>00101 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>, move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>);
+<a name="l00102"></a>00102 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>, move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>);
+<a name="l00103"></a>00103 <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00104"></a>00104
+<a name="l00105"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">00105</a> T <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>, <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>;
+<a name="l00106"></a>00106
+<a name="l00107"></a>00107 <span class="keyword">private</span>:
+<a name="l00108"></a>00108 <a class="code" href="basic__types__and__includes_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">BOOST_XINT_COPYABLE_AND_MOVABLE</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>)
+<a name="l00109"></a>00109 };
+<a name="l00110"></a>00110
+<a name="l00111"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html">00111</a> <span class="keyword">namespace </span>detail {
<a name="l00113"></a>00113
-<a name="l00114"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html">00114</a> <span class="keyword">namespace </span>detail {
-<a name="l00116"></a>00116
-<a name="l00122"></a>00122 <span class="keyword">typedef</span> boost::uintmax_t doubledigit_t;
-<a name="l00123"></a>00123
-<a name="l00129"></a>00129 <span class="keyword">typedef</span> boost::uint_t<std::numeric_limits<doubledigit_t>::digits / 2>::fast
-<a name="l00130"></a>00130 digit_t;
-<a name="l00131"></a>00131
-<a name="l00134"></a>00134 <span class="keyword">const</span> <span class="keywordtype">size_t</span> minimum_digits = 1;
-<a name="l00135"></a>00135 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bits_per_digit = std::numeric_limits<digit_t>::digits;
-<a name="l00136"></a>00136 <span class="keyword">const</span> <span class="keywordtype">size_t</span> digits_in_uintmax =
-<a name="l00137"></a>00137 (std::numeric_limits<boost::uintmax_t>::digits + bits_per_digit - 1) /
-<a name="l00138"></a>00138 bits_per_digit;
-<a name="l00139"></a>00139 <span class="keyword">const</span> digit_t digit_hibit = (digit_t(1) << (bits_per_digit-1));
-<a name="l00140"></a>00140 <span class="keyword">const</span> doubledigit_t doubledigit_hibit = (doubledigit_t(1) << (bits_per_digit*2-1));
-<a name="l00141"></a>00141 <span class="keyword">const</span> doubledigit_t digit_overflowbit = (doubledigit_t(1) << bits_per_digit);
-<a name="l00142"></a>00142 <span class="keyword">const</span> digit_t digit_mask = digit_t(digit_overflowbit-1);
-<a name="l00144"></a>00144
-<a name="l00146"></a>00146
-<a name="l00149"></a>00149 <span class="keyword">struct </span>magnitude_t {
-<a name="l00150"></a>00150 <span class="keyword">private</span>:
-<a name="l00151"></a>00151 <span class="keywordtype">size_t</span> copy_count;
-<a name="l00152"></a>00152
-<a name="l00153"></a>00153 <span class="keyword">public</span>:
-<a name="l00154"></a>00154 <span class="keyword">const</span> <span class="keywordtype">bool</span> readonly;
-<a name="l00155"></a>00155 <span class="keyword">const</span> <span class="keywordtype">size_t</span> max_length;
-<a name="l00156"></a>00156 digit_t digits[minimum_digits]; <span class="comment">// Must be last data item, see "struct hack"</span>
-<a name="l00157"></a>00157
-<a name="l00158"></a>00158 magnitude_t(<span class="keywordtype">size_t</span> max_len = minimum_digits, <span class="keywordtype">bool</span> ro = <span class="keyword">false</span>):
-<a name="l00159"></a>00159 copy_count(0), readonly(ro), max_length(max_len) { }
-<a name="l00160"></a>00160 magnitude_t(<span class="keywordtype">size_t</span> max_len, <span class="keywordtype">bool</span> ro, digit_t init): copy_count(0),
-<a name="l00161"></a>00161 readonly(ro), max_length(max_len) { digits[0] = init; }
-<a name="l00162"></a>00162 <span class="keywordtype">size_t</span> copies()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> copy_count; }
-<a name="l00163"></a>00163
-<a name="l00164"></a>00164 <span class="keywordtype">void</span> inc() { ++copy_count; }
-<a name="l00165"></a>00165 <span class="keywordtype">bool</span> dec() { <span class="keywordflow">return</span> (--copy_count == 0); }
-<a name="l00166"></a>00166 };
+<a name="l00119"></a>00119 <span class="keyword">typedef</span> boost::uintmax_t doubledigit_t;
+<a name="l00120"></a>00120
+<a name="l00126"></a>00126 <span class="keyword">typedef</span> boost::uint_t<std::numeric_limits<doubledigit_t>::digits / 2>::fast
+<a name="l00127"></a>00127 digit_t;
+<a name="l00128"></a>00128
+<a name="l00131"></a>00131 <span class="keyword">const</span> <span class="keywordtype">size_t</span> minimum_digits = 1;
+<a name="l00132"></a>00132 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bits_per_digit = std::numeric_limits<digit_t>::digits;
+<a name="l00133"></a>00133 <span class="keyword">const</span> <span class="keywordtype">size_t</span> digits_in_uintmax =
+<a name="l00134"></a>00134 (std::numeric_limits<boost::uintmax_t>::digits + bits_per_digit - 1) /
+<a name="l00135"></a>00135 bits_per_digit;
+<a name="l00136"></a>00136 <span class="keyword">const</span> digit_t digit_hibit = (digit_t(1) << (bits_per_digit-1));
+<a name="l00137"></a>00137 <span class="keyword">const</span> doubledigit_t doubledigit_hibit = (doubledigit_t(1) << (bits_per_digit*2-1));
+<a name="l00138"></a>00138 <span class="keyword">const</span> doubledigit_t digit_overflowbit = (doubledigit_t(1) << bits_per_digit);
+<a name="l00139"></a>00139 <span class="keyword">const</span> digit_t digit_mask = digit_t(digit_overflowbit-1);
+<a name="l00141"></a>00141
+<a name="l00143"></a>00143
+<a name="l00146"></a>00146 <span class="keyword">struct </span>magnitude_t {
+<a name="l00147"></a>00147 <span class="keyword">private</span>:
+<a name="l00148"></a>00148 <span class="keywordtype">size_t</span> copy_count;
+<a name="l00149"></a>00149
+<a name="l00150"></a>00150 <span class="keyword">public</span>:
+<a name="l00151"></a>00151 <span class="keyword">const</span> <span class="keywordtype">bool</span> readonly;
+<a name="l00152"></a>00152 <span class="keyword">const</span> <span class="keywordtype">size_t</span> max_length;
+<a name="l00153"></a>00153 digit_t digits[minimum_digits]; <span class="comment">// Must be last data item, see "struct hack"</span>
+<a name="l00154"></a>00154
+<a name="l00155"></a>00155 magnitude_t(<span class="keywordtype">size_t</span> max_len = minimum_digits, <span class="keywordtype">bool</span> ro = <span class="keyword">false</span>):
+<a name="l00156"></a>00156 copy_count(0), readonly(ro), max_length(max_len) { }
+<a name="l00157"></a>00157 magnitude_t(<span class="keywordtype">size_t</span> max_len, <span class="keywordtype">bool</span> ro, digit_t init): copy_count(0),
+<a name="l00158"></a>00158 readonly(ro), max_length(max_len) { digits[0] = init; }
+<a name="l00159"></a>00159 <span class="keywordtype">size_t</span> copies()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> copy_count; }
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 <span class="keywordtype">void</span> inc() { ++copy_count; }
+<a name="l00162"></a>00162 <span class="keywordtype">bool</span> dec() { <span class="keywordflow">return</span> (--copy_count == 0); }
+<a name="l00163"></a>00163 };
+<a name="l00164"></a>00164
+<a name="l00165"></a>00165 <span class="keyword">inline</span> <span class="keywordtype">size_t</span> bits_to_digits(<span class="keywordtype">size_t</span> bits) { <span class="keywordflow">return</span> (bits + bits_per_digit - 1) /
+<a name="l00166"></a>00166 bits_per_digit; }
<a name="l00167"></a>00167
-<a name="l00168"></a>00168 <span class="keyword">inline</span> <span class="keywordtype">size_t</span> bits_to_digits(<span class="keywordtype">size_t</span> bits) { <span class="keywordflow">return</span> (bits + bits_per_digit - 1) /
-<a name="l00169"></a>00169 bits_per_digit; }
-<a name="l00170"></a>00170
-<a name="l00172"></a>00172 } <span class="comment">// namespace detail</span>
-<a name="l00173"></a>00173 } <span class="comment">// namespace xint</span>
-<a name="l00174"></a>00174 } <span class="comment">// namespace boost</span>
-<a name="l00175"></a>00175
-<a name="l00176"></a>00176 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BASIC_TYPES_HPP</span>
+<a name="l00169"></a>00169 } <span class="comment">// namespace detail</span>
+<a name="l00170"></a>00170 } <span class="comment">// namespace xint</span>
+<a name="l00171"></a>00171 } <span class="comment">// namespace boost</span>
+<a name="l00172"></a>00172
+<a name="l00173"></a>00173 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BASIC_TYPES_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/bitfunctions_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/bitfunctions_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/bitfunctions_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="bitfunctions_8hpp_source.html">bitfunctions.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/bitfunctions_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/bitfunctions_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/bitfunctions_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -114,7 +114,7 @@
<a name="l00097"></a>00097 <span class="comment"></span>
<a name="l00098"></a>00098 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BITFUNCTIONS_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/bitqueue_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/bitqueue_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/bitqueue_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="bitqueue_8hpp_source.html">bitqueue.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/bitqueue_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/bitqueue_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/bitqueue_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -105,7 +105,7 @@
<a name="l00089"></a>00089 <span class="comment"></span>
<a name="l00090"></a>00090 <span class="preprocessor">#endif // BOOST_XINT_INCLUDED_BITQUEUET_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -36,7 +36,7 @@
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a></td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t< T ></a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a></td><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t< T ></a></td><td></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -51,7 +51,7 @@
<p>Holds the results from a division-with-remainder call. </p>
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00091">91</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00088">88</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
<hr/><h2>Constructor & Destructor Documentation</h2>
<a class="anchor" id="a78e4dd66f424388d1db839ef53e25997"></a><!-- doxytag: member="boost::xint::base_divide_t::base_divide_t" ref="a78e4dd66f424388d1db839ef53e25997" args="()" -->
<div class="memitem">
@@ -70,7 +70,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00093">93</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00090">90</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
</div>
</div>
@@ -101,7 +101,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00094">94</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00091">91</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
</div>
</div>
@@ -123,7 +123,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00095">95</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00092">92</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
</div>
</div>
@@ -145,7 +145,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00097">97</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00094">94</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
</div>
</div>
@@ -168,7 +168,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00102">102</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00099">99</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
</div>
</div>
@@ -190,7 +190,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00100">100</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00097">97</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
</div>
</div>
@@ -208,7 +208,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00108">108</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00105">105</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
</div>
</div>
@@ -225,7 +225,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00108">108</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00105">105</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
</div>
</div>
@@ -233,7 +233,7 @@
<li>detail/<a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::default_random_generator Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1default__random__generator.html">boost::xint::default_random_generator</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1default__random__generator.html#a4289636c47258469b78703ae791812f6">default_random_generator</a>()</td><td><a class="el" href="classboost_1_1xint_1_1default__random__generator.html">boost::xint::default_random_generator</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -71,7 +71,7 @@
<li><a class="el" href="random_8hpp_source.html">random.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::cannot_represent Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">boost::xint::exceptions::cannot_represent</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html#a0968d8ac61c24529816bcaf69d155b75">cannot_represent</a>(const std::string &what="cannot represent the requested value")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">boost::xint::exceptions::cannot_represent</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -65,7 +65,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::divide_by_zero Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">boost::xint::exceptions::divide_by_zero</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html#aaff4d720e4a134315acde919ff06e640">divide_by_zero</a>(const std::string &what="divide by zero error")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">boost::xint::exceptions::divide_by_zero</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -65,7 +65,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::invalid_argument Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">boost::xint::exceptions::invalid_argument</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html#a8ba3e56172de34c772b287ce8e325f32">invalid_argument</a>(const std::string &what="invalid argument")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">boost::xint::exceptions::invalid_argument</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -65,7 +65,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::invalid_base Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">boost::xint::exceptions::invalid_base</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html#a4647071020547bd103ee885bec7edffa">invalid_base</a>(const std::string &what="invalid base")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">boost::xint::exceptions::invalid_base</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -65,7 +65,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::invalid_digit Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">boost::xint::exceptions::invalid_digit</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html#abcdf43b30c3910dde89e406ca802eacc">invalid_digit</a>(const std::string &what="invalid digit")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">boost::xint::exceptions::invalid_digit</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -65,7 +65,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::invalid_modulus Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">boost::xint::exceptions::invalid_modulus</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html#a16c06e28a7f483b0ca2fb5906d53278d">invalid_modulus</a>(const std::string &what="invalid modulus")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">boost::xint::exceptions::invalid_modulus</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -65,7 +65,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::no_strong_random Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">boost::xint::exceptions::no_strong_random</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html#ab225c7d5d10a03eac6d5e9c784135675">no_strong_random</a>(const std::string &what="system does not have a strong random generator")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">boost::xint::exceptions::no_strong_random</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -66,7 +66,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::not_a_number Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">boost::xint::exceptions::not_a_number</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html#aa47b024550fd673bd497e0875443c67f">not_a_number</a>(const std::string &what="attempted to use a Not-a-Number")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">boost::xint::exceptions::not_a_number</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -66,7 +66,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::overflow_error Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">boost::xint::exceptions::overflow_error</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html#a767d8fbe5816d77fa0aadf9481d0bd5a">overflow_error</a>(const std::string &what="overflow error: can't obtain enough memory to represent the requested number")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">boost::xint::exceptions::overflow_error</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -66,7 +66,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<h1>boost::xint::exceptions::too_big Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a>, including all inherited members.<table>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html#a111e2c1a759054d80afcd5fa4af2995c">too_big</a>(const std::string &what="value out of range for requested conversion")</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -65,7 +65,7 @@
<li><a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t-members.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t-members.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t-members.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -33,9 +33,9 @@
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb">integer_t</a>()</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a6735b1926fb31c09537fb8f2bcc243ef">integer_t</a>(const integer_t &b, bool force_thread_safety=false)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">integer_t</a>(BOOST_XINT_RV_REF(type) b)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#aabfdab7fc4cc16f776be0a7c8b886d68">integer_t</a>(const char *str, size_t base=10)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline, explicit]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#afc116db2b62cc68eb9b82ceb904ea187">integer_t</a>(const char *str, char **endptr, size_t base=10)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline, explicit]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a75d00d3e27a38ecbf666eaa6fa6aaf5a">integer_t</a>(const std::string &str, size_t base=10)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#acbb2f2d84c8da9e32be880bc81d9a4dd">integer_t</a>(const charT *str, size_t base=10)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a8519d7f48c8f31d72cadd51e3d448347">integer_t</a>(const charT *str, charT **endptr, size_t base=10)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline, explicit]</code></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a1ae3c81960394029b823464225bc368e">integer_t</a>(const std::basic_string< charT > &str, size_t base=10)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline, explicit]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a864a599e2de326e6e339ffc820fd849e">integer_t</a>(const xint::binary_t b, bitsize_t bits=0)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline, explicit]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#afcc80aaf55194eca5926d7a6d52489f0">integer_t</a>(const integer_t< other > &other, bool force_thread_safety=false)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline, explicit]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ad159c2201f2cf1e1de1988cc41f8b4eb">integer_t</a>(const Type n, typename boost::enable_if< boost::is_integral< Type > >::type *=0)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline]</code></td></tr>
@@ -72,7 +72,7 @@
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02">random_prime</a>(Type &gen, bitsize_t size_in_bits, callback_t callback=no_callback)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline, static]</code></td></tr>
<tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3">sign</a>(bool signed_zero=false) const </td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t<></a></td><td><code> [inline]</code></td></tr>
</table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t.html (original)
+++ sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -46,11 +46,14 @@
<tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#afcc80aaf55194eca5926d7a6d52489f0">integer_t</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>< other > &other, bool force_thread_safety=false)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a864a599e2de326e6e339ffc820fd849e">integer_t</a> (const <a class="el" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a> b, <a class="el" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63">bitsize_t</a> bits=0)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Converts a portable binary representation of a number into an integer. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a75d00d3e27a38ecbf666eaa6fa6aaf5a">integer_t</a> (const std::string &str, size_t base=10)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Create an integer from a string representation. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#afc116db2b62cc68eb9b82ceb904ea187">integer_t</a> (const char *str, char **endptr, size_t base=10)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Parse an integer from a string representation. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#aabfdab7fc4cc16f776be0a7c8b886d68">integer_t</a> (const char *str, size_t base=10)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename charT > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a1ae3c81960394029b823464225bc368e">integer_t</a> (const std::basic_string< charT > &str, size_t base=10)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Create an integer from a string representation. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename charT > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a8519d7f48c8f31d72cadd51e3d448347">integer_t</a> (const charT *str, charT **endptr, size_t base=10)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Parse an integer from a string representation. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<typename charT > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#acbb2f2d84c8da9e32be880bc81d9a4dd">integer_t</a> (const charT *str, size_t base=10)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">integer_t</a> (BOOST_XINT_RV_REF(type) b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a6735b1926fb31c09537fb8f2bcc243ef">integer_t</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &b, bool force_thread_safety=false)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a copy of an existing integer. <br/></td></tr>
@@ -147,7 +150,7 @@
</pre><p></code></p>
<p>Note that the <a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">integer</a> and <a class="el" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4">nothrow_integer</a> types are already typedef'd for you. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00102">102</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00101">101</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a1c701a8337c775e18c26759d55398b58"></a><!-- doxytag: member="boost::xint::integer_t::divide_t" ref="a1c701a8337c775e18c26759d55398b58" args="" -->
<div class="memitem">
@@ -162,7 +165,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00198">198</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00200">200</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -186,7 +189,7 @@
<p>Creates a new integer with an initial value of zero. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00257">257</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00259">259</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -227,7 +230,7 @@
</dl>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00272">272</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00274">274</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -249,20 +252,22 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00132">132</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00131">131</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="aabfdab7fc4cc16f776be0a7c8b886d68"></a><!-- doxytag: member="boost::xint::integer_t::integer_t" ref="aabfdab7fc4cc16f776be0a7c8b886d68" args="(const char *str, size_t base=10)" -->
+<a class="anchor" id="acbb2f2d84c8da9e32be880bc81d9a4dd"></a><!-- doxytag: member="boost::xint::integer_t::integer_t" ref="acbb2f2d84c8da9e32be880bc81d9a4dd" args="(const charT *str, size_t base=10)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<... > </div>
+<div class="memtemplate">
+template<typename charT > </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a><>::<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> </td>
<td>(</td>
- <td class="paramtype">const char * </td>
+ <td class="paramtype">const charT * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
@@ -279,46 +284,30 @@
</table>
</div>
<div class="memdoc">
-<p>Create an integer from a string representation. <ul>
-<li>Complexity: O(n<sup>2</sup>)</li>
-</ul>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>str</em> </td><td>A string representation of a number. </td></tr>
- <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>base</em> </td><td>The base that the string representation of the number is in. This can be any number between 2 and 36 (inclusive). It can also be the constant <a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the 'base' parameter of the string-to-integer...">xint::autobase</a>, in which case the function will follow the standard C/C++ rules for interpreting a numeric constant: any number with a zero as the first digit is assumed to be base-8; any number with a leading zero-x or zero-X (such as 0x1f) is base-16, and anything else is base-10.</td></tr>
- </table>
- </dd>
-</dl>
-<dl><dt><b>Exceptions:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">exceptions::invalid_base</a></em> </td><td>if the base parameter is not between 2 and 36 (inclusive) or the constant <a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the 'base' parameter of the string-to-integer...">xint::autobase</a>. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">exceptions::invalid_digit</a></em> </td><td>if the string contains any digit that cannot be part of a number in the specified base, or if there are no valid digits.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="remark"><dt><b>Remarks:</b></dt><dd>This is the most common way to initialize literal values that are too large to fit into a native integral type.</dd></dl>
-<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
+<p> </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00292">292</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00296">296</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="afc116db2b62cc68eb9b82ceb904ea187"></a><!-- doxytag: member="boost::xint::integer_t::integer_t" ref="afc116db2b62cc68eb9b82ceb904ea187" args="(const char *str, char **endptr, size_t base=10)" -->
+<a class="anchor" id="a8519d7f48c8f31d72cadd51e3d448347"></a><!-- doxytag: member="boost::xint::integer_t::integer_t" ref="a8519d7f48c8f31d72cadd51e3d448347" args="(const charT *str, charT **endptr, size_t base=10)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<... > </div>
+<div class="memtemplate">
+template<typename charT > </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a><>::<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> </td>
<td>(</td>
- <td class="paramtype">const char * </td>
+ <td class="paramtype">const charT * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">char ** </td>
+ <td class="paramtype">charT ** </td>
<td class="paramname"> <em>endptr</em>, </td>
</tr>
<tr>
@@ -358,20 +347,22 @@
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This function is based on the <code>strtol</code> function from the standard library. Like <code>strtol</code>, it first discards any leading whitespace characters, then takes as many characters as are valid for the given <code>base</code> and interprets them as an integer. Then a pointer to the first character following the integer is stored in the object pointed by <code>endptr</code>.</dd></dl>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00337">337</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00343">343</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
-<a class="anchor" id="a75d00d3e27a38ecbf666eaa6fa6aaf5a"></a><!-- doxytag: member="boost::xint::integer_t::integer_t" ref="a75d00d3e27a38ecbf666eaa6fa6aaf5a" args="(const std::string &str, size_t base=10)" -->
+<a class="anchor" id="a1ae3c81960394029b823464225bc368e"></a><!-- doxytag: member="boost::xint::integer_t::integer_t" ref="a1ae3c81960394029b823464225bc368e" args="(const std::basic_string< charT > &str, size_t base=10)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<... > </div>
+<div class="memtemplate">
+template<typename charT > </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a><>::<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> </td>
<td>(</td>
- <td class="paramtype">const std::string & </td>
+ <td class="paramtype">const std::basic_string< charT > & </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
@@ -410,7 +401,7 @@
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This is the most common way to initialize literal values that are too large to fit into a native integral type.</dd></dl>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00383">383</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00392">392</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -462,7 +453,7 @@
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">xint::to_binary</a></dd></dl>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00418">418</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00429">429</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -505,7 +496,7 @@
</dl>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00444">444</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00455">455</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -553,7 +544,7 @@
<p>You can ignore the <code>enable_if</code> parameter, it's there only to tell the compiler what types the function applies to.</p>
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00479">479</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00490">490</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -589,7 +580,7 @@
<dl class="return"><dt><b>Returns:</b></dt><dd><code>n</code> factorial, defined as <code>1*2*3*...*n</code></dd></dl>
<dl class="warning"><dt><b>Warning:</b></dt><dd>Factorials get ridiculously huge, even with fairly small values of <code>n</code>. This function, when used on an unlimited-size integer and with a large parameter, is the easiest way to exhaust the system's memory. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01074">1074</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01085">1085</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -616,7 +607,7 @@
</ul>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of hexadecimal digits that would be required to encode <code>this</code>. The nothrow<true> version returns zero instead of throwing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01015">1015</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01026">1026</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -643,7 +634,7 @@
</ul>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if <code>*this</code> is even, otherwise <code>false</code>. The nothrow<true> version returns false instead of throwing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00957">957</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00968">968</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -672,7 +663,7 @@
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="nan.html">The Not-a-Number Value</a></dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>This will always return <code>false</code> on any type where the <code>nothrow</code> template parameter is <code>false</code>. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00978">978</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00989">989</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -699,7 +690,7 @@
</ul>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if <code>*this</code> is odd, otherwise <code>false</code>. The nothrow<true> version returns false instead of throwing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00940">940</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00951">951</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -728,7 +719,7 @@
<dl class="note"><dt><b>Note:</b></dt><dd>If called on a type that does not support Not-a-Number values (i.e. any type whose <code>nothrow</code> template parameter is <code>false</code>), it will throw a <code>not_a_number</code> exception.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="nan.html">The Not-a-Number Value</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01106">1106</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01117">1117</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -749,7 +740,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00163">163</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00165">165</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -772,7 +763,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67" title="Get the remainder after dividing a number by another.">operator%(integer_t, integer_t)</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00658">658</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00669">669</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -795,7 +786,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3" title="Combine two integers using a bitwise AND operation.">operator&(integer_t, integer_t)</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00774">774</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00785">785</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -818,7 +809,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455" title="Calculate the product of two integers.">operator*(integer_t, integer_t)</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00614">614</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00625">625</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -839,7 +830,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00166">166</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00168">168</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -860,7 +851,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00165">165</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00167">167</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -887,7 +878,7 @@
</ul>
<p>This is not recommended. It must make a copy before incrementing the <code>*this</code> object, making it noticeably less efficient than the preincrement operator. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00730">730</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00741">741</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -912,7 +903,7 @@
<li>Complexity: amortized O(1) </li>
</ul>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00683">683</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00694">694</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -935,7 +926,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+(integer_t, integer_t)</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00570">570</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00581">581</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -962,7 +953,7 @@
</ul>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>*this</code> with the sign reversed. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00549">549</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00560">560</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -989,7 +980,7 @@
</ul>
<p>This is not recommended. It must make a copy before decrementing the <code>*this</code> object, making it noticeably less efficient than the predecrement operator. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00755">755</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00766">766</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1014,7 +1005,7 @@
<li>Complexity: amortized O(1) </li>
</ul>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00705">705</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00716">716</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1037,7 +1028,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">operator-(integer_t, integer_t)</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00592">592</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00603">603</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1060,7 +1051,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21" title="Calculate how many dividends would fit into divisor.">operator/(integer_t, integer_t)</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00636">636</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00647">647</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1094,7 +1085,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The bit-shifted integer. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00847">847</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00858">858</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1117,7 +1108,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd>operator<<(integer_t, integer_t) </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00896">896</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00907">907</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1141,7 +1132,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00160">160</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00162">162</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1163,7 +1154,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00158">158</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00160">160</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1185,7 +1176,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00497">497</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00508">508</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1219,7 +1210,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The bit-shifted integer. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00875">875</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00886">886</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1242,7 +1233,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd>operator>>(integer_t, integer_t) </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00915">915</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00926">926</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1265,7 +1256,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025" title="Combine two integers using a bitwise XOR operation.">operator^(integer_t, integer_t)</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00818">818</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00829">829</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1288,7 +1279,7 @@
<div class="memdoc">
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075" title="Combine two integers using a bitwise OR operation.">operator|(integer_t, integer_t)</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00796">796</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00807">807</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1315,7 +1306,7 @@
</ul>
<p>Note that this operator is only useful with fixed-size integers. If used with a variable-size integer, it will throw a <code>too_big</code> exception, because a proper implementation would result in an infinitely long number. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00525">525</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00536">536</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1350,7 +1341,7 @@
<dl class="return"><dt><b>Returns:</b></dt><dd>2 to the power of <code>exponent</code>.</dd></dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This is a convenience function, to help with self-documenting code. It is also more efficient than using bit-shifting or the <code>pow</code> function to get the same result. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01042">1042</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01053">1053</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1418,7 +1409,7 @@
<dl class="return"><dt><b>Returns:</b></dt><dd>A random integer with the requested attributes.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="random.html">The XInt Random Number System</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01140">1140</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01151">1151</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1480,7 +1471,7 @@
<dl class="user"><dt><b></b></dt><dd>See the <a class="el" href="random.html">Random Number Functions page</a> for details on how to get cryptographically-secure random numbers.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="primes.html">Generating Prime Numbers</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01186">1186</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01197">1197</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1514,7 +1505,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if <code>*this</code> is negative, 0 if it's zero, or 1 if it's greater than zero. The nothrow<true> version returns zero instead of throwing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00994">994</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01005">1005</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1522,7 +1513,7 @@
<li><a class="el" href="integer_8hpp_source.html">integer.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classdisable__boost__rv__ref.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classdisable__boost__rv__ref.html (original)
+++ sandbox/xint/libs/xint/doc/classdisable__boost__rv__ref.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<li>detail/<a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/classes.html
==============================================================================
--- sandbox/xint/libs/xint/doc/classes.html (original)
+++ sandbox/xint/libs/xint/doc/classes.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -39,7 +39,7 @@
</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">overflow_error</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>) </td><td><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">threadsafe_base</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>) </td></tr><tr><td><a class="el" href="classboost_1_1xint_1_1default__random__generator.html">default_random_generator</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>) </td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>) </td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">no_strong_random</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>) </t
d><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> S </div></td></tr></table>
</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">too_big</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>) </td></tr><tr><td><a class="el" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref</a> </td></tr></table><div class="qindex"><a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_F">F</a> | <a class="qindex" href="#letter_I">I</a> | <a class="qindex" href="#letter_N">N</a> | <a class="qindex" href="#letter_O">O</a> | <a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_T">T</a></div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/compare_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/compare_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/compare_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="compare_8hpp_source.html">compare.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/compare_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/compare_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/compare_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -122,7 +122,7 @@
<a name="l00108"></a>00108 <span class="comment"></span>
<a name="l00109"></a>00109 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_COMPARE_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/complexity.html
==============================================================================
--- sandbox/xint/libs/xint/doc/complexity.html (original)
+++ sandbox/xint/libs/xint/doc/complexity.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -26,7 +26,7 @@
<h1><a class="anchor" id="complexity">A Note on Algorithmic Complexity </a></h1><p>This documentation includes a time-complexity estimate, in big-O notation, for each algorithm. The <code>n</code> in the complexity estimates is roughly the number of bits in the parameter(s). (More accurately, it's the number of <code>digit_t</code> values needed to hold those bits.) For those algorithms where the complexity calculation differs for different parameters, the parameter is noted as a subscript.</p>
<p>The time complexity is well-known for some algorithms, but for others, I had to make an educated guess. If you discover an error in the listed complexity, please report it. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/complexity_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/complexity_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/complexity_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/complexity.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/convert_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/convert_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/convert_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="convert_8hpp_source.html">convert.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/convert_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/convert_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/convert_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -49,228 +49,239 @@
<a name="l00031"></a>00031 <span class="keywordflow">else</span> <span class="keywordflow">return</span> char((n - 10) + <span class="charliteral">'a'</span>);
<a name="l00032"></a>00032 }
<a name="l00033"></a>00033
-<a name="l00034"></a>00034 BOOST_XINT_RAWINT_TPL
-<a name="l00035"></a>00035 std::string <a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2" title="Creates a string representation of the specified integer.">to_string</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keywordtype">size_t</span> base = 10, <span class="keywordtype">bool</span>
-<a name="l00036"></a>00036 uppercase = <span class="keyword">false</span>)
+<a name="l00034"></a>00034 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T, bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc>
+<a name="l00035"></a>00035 std::basic_string<charT> <a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2" title="Creates a string representation of the specified integer.">to_string</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keywordtype">size_t</span> base = 10,
+<a name="l00036"></a>00036 <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
<a name="l00037"></a>00037 {
<a name="l00038"></a>00038 <span class="keywordflow">if</span> (base < 2 || base > 36) <span class="keywordflow">throw</span> exceptions::invalid_base();
-<a name="l00039"></a>00039 <span class="keywordflow">if</span> (n.is_zero()) <span class="keywordflow">return</span> <span class="stringliteral">"0"</span>;
-<a name="l00040"></a>00040
-<a name="l00041"></a>00041 std::ostringstream out;
-<a name="l00042"></a>00042 <span class="keywordflow">if</span> (base == 2 || base == 4 || base == 16) {
-<a name="l00043"></a>00043 <span class="comment">// Fast no-division version, useful for debugging division and for cases</span>
-<a name="l00044"></a>00044 <span class="comment">// where maximum speed is necessary.</span>
-<a name="l00045"></a>00045 <span class="keyword">const</span> digit_t *firstDigit = n.digits(), *lastDigit = firstDigit +
-<a name="l00046"></a>00046 n.length - 1;
-<a name="l00047"></a>00047
-<a name="l00048"></a>00048 <span class="keywordflow">if</span> (n.negative) out << <span class="charliteral">'-'</span>;
-<a name="l00049"></a>00049
-<a name="l00050"></a>00050 <span class="keywordtype">int</span> bits_per_base_b_digit = 0;
-<a name="l00051"></a>00051 <span class="keywordflow">while</span> (base > 1) { base = base >> 1; ++bits_per_base_b_digit; }
-<a name="l00052"></a>00052 <span class="keyword">const</span> digit_t mask = (doubledigit_t(1) << bits_per_base_b_digit) - 1;
+<a name="l00039"></a>00039
+<a name="l00040"></a>00040 std::basic_ostringstream<charT> out;
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> (n.is_zero()) {
+<a name="l00042"></a>00042 out << <span class="stringliteral">"0"</span>;
+<a name="l00043"></a>00043 <span class="keywordflow">return</span> out.str();
+<a name="l00044"></a>00044 }
+<a name="l00045"></a>00045
+<a name="l00046"></a>00046 <span class="keywordflow">if</span> (base == 2 || base == 4 || base == 16) {
+<a name="l00047"></a>00047 <span class="comment">// Fast no-division version, useful for debugging division and for cases</span>
+<a name="l00048"></a>00048 <span class="comment">// where maximum speed is necessary.</span>
+<a name="l00049"></a>00049 <span class="keyword">const</span> digit_t *firstDigit = n.digits(), *lastDigit = firstDigit +
+<a name="l00050"></a>00050 n.length - 1;
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="keywordflow">if</span> (n.negative) out << <span class="charliteral">'-'</span>;
<a name="l00053"></a>00053
-<a name="l00054"></a>00054 <span class="comment">// Skip any leading zeros</span>
-<a name="l00055"></a>00055 <span class="keyword">const</span> digit_t *d = lastDigit;
-<a name="l00056"></a>00056 <span class="keywordtype">int</span> digitShift = (bits_per_digit - bits_per_base_b_digit);
-<a name="l00057"></a>00057 <span class="keywordflow">while</span> (digitShift >= 0 && ((*d >> digitShift) & mask) == 0)
-<a name="l00058"></a>00058 digitShift -= bits_per_base_b_digit;
-<a name="l00059"></a>00059
-<a name="l00060"></a>00060 <span class="keywordflow">do</span> {
-<a name="l00061"></a>00061 <span class="keywordflow">while</span> (digitShift >= 0) {
-<a name="l00062"></a>00062 out << nToChar((*d >> digitShift) & mask, uppercase);
-<a name="l00063"></a>00063 digitShift -= bits_per_base_b_digit;
-<a name="l00064"></a>00064 }
-<a name="l00065"></a>00065
-<a name="l00066"></a>00066 digitShift=(bits_per_digit - bits_per_base_b_digit);
-<a name="l00067"></a>00067 } <span class="keywordflow">while</span> (d-- != firstDigit);
-<a name="l00068"></a>00068
-<a name="l00069"></a>00069 <span class="keywordflow">return</span> out.str();
-<a name="l00070"></a>00070 } <span class="keywordflow">else</span> {
-<a name="l00071"></a>00071 <span class="comment">// ATTN: for when there's nothing more pressing to do</span>
-<a name="l00072"></a>00072 <span class="comment">// This could be made a lot more efficient for very large numbers, by</span>
-<a name="l00073"></a>00073 <span class="comment">// dividing n by base raised to whatever number of digits will fit into</span>
-<a name="l00074"></a>00074 <span class="comment">// a doubledigit_t, then just doing single-digit divides for that many</span>
-<a name="l00075"></a>00075 <span class="comment">// digits before going back to n for another chunk. That would be</span>
-<a name="l00076"></a>00076 <span class="comment">// premature optimization though, so I'm just making this note instead.</span>
-<a name="l00077"></a>00077 <span class="comment">// If someone can show me a use-case where more efficiency is needed in</span>
-<a name="l00078"></a>00078 <span class="comment">// this function, I'll add it later.</span>
-<a name="l00079"></a>00079
-<a name="l00080"></a>00080 BOOST_XINT_RAWINT shift;
-<a name="l00081"></a>00081 shift.set_unsigned(base);
-<a name="l00082"></a>00082 <span class="keyword">typename</span> BOOST_XINT_RAWINT::divide_t a(<a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(n.abs(), shift));
-<a name="l00083"></a>00083 <span class="keywordflow">do</span> {
-<a name="l00084"></a>00084 out << nToChar(a.remainder[0], uppercase);
-<a name="l00085"></a>00085 a = <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(a.quotient, shift);
-<a name="l00086"></a>00086 } <span class="keywordflow">while</span> (!a.quotient.is_zero());
-<a name="l00087"></a>00087 <span class="keywordflow">if</span> (!a.remainder.is_zero()) out << nToChar(a.remainder[0], uppercase);
-<a name="l00088"></a>00088
-<a name="l00089"></a>00089 <span class="keywordflow">if</span> (n.negative) out << <span class="charliteral">'-'</span>;
-<a name="l00090"></a>00090
-<a name="l00091"></a>00091 std::string rval = out.str();
-<a name="l00092"></a>00092 std::reverse(rval.begin(), rval.end());
-<a name="l00093"></a>00093 <span class="keywordflow">return</span> rval;
-<a name="l00094"></a>00094 }
-<a name="l00095"></a>00095 }
-<a name="l00096"></a>00096
-<a name="l00097"></a>00097 BOOST_XINT_RAWINT_TPL
-<a name="l00098"></a>00098 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">char</span> **endptr, <span class="keywordtype">size_t</span> base)
-<a name="l00099"></a>00099 {
-<a name="l00100"></a>00100 <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;
-<a name="l00101"></a>00101 <span class="keyword">const</span> <span class="keywordtype">char</span> *c = str;
-<a name="l00102"></a>00102 <span class="keywordflow">while</span> (isspace(*c)) ++c;
-<a name="l00103"></a>00103
-<a name="l00104"></a>00104 <span class="keywordflow">if</span> (*c == <span class="charliteral">'+'</span>) ++c;
-<a name="l00105"></a>00105 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c == <span class="charliteral">'-'</span>) { negate = <span class="keyword">true</span>; ++c; }
-<a name="l00106"></a>00106
-<a name="l00107"></a>00107 <span class="keywordflow">if</span> (base == <a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the &#39;base&#39; parameter of the string-to-integer...">autobase</a>) {
-<a name="l00108"></a>00108 <span class="keywordflow">if</span> (*c == <span class="charliteral">'0'</span>) {
-<a name="l00109"></a>00109 ++c;
-<a name="l00110"></a>00110 <span class="keywordflow">if</span> (*c == <span class="charliteral">'x'</span> || *c == <span class="charliteral">'X'</span>) {
-<a name="l00111"></a>00111 ++c;
-<a name="l00112"></a>00112 base = 16;
-<a name="l00113"></a>00113 } <span class="keywordflow">else</span> base = 8;
-<a name="l00114"></a>00114 } <span class="keywordflow">else</span> base = 10;
-<a name="l00115"></a>00115 }
-<a name="l00116"></a>00116
-<a name="l00117"></a>00117 <span class="keywordflow">if</span> (base < 2 || base > 36) <span class="keywordflow">throw</span> exceptions::invalid_base();
-<a name="l00118"></a>00118 <span class="keywordflow">if</span> (*c == 0) <span class="keywordflow">throw</span> exceptions::invalid_digit(<span class="stringliteral">"No valid digits"</span>);
-<a name="l00119"></a>00119
-<a name="l00120"></a>00120 std::string tstr;
-<a name="l00121"></a>00121 <span class="keywordflow">if</span> (negate) tstr.push_back(<span class="charliteral">'-'</span>);
-<a name="l00122"></a>00122 <span class="keywordflow">if</span> (base <= 10) {
-<a name="l00123"></a>00123 <span class="keyword">const</span> <span class="keywordtype">char</span> p = char(<span class="charliteral">'0'</span> + base);
-<a name="l00124"></a>00124 <span class="keywordflow">while</span> (*c >= <span class="charliteral">'0'</span> && *c < p)
-<a name="l00125"></a>00125 tstr.push_back(*c++);
-<a name="l00126"></a>00126 } <span class="keywordflow">else</span> {
-<a name="l00127"></a>00127 <span class="keyword">const</span> <span class="keywordtype">char</span> lower = char(<span class="charliteral">'a'</span> + base - 10), upper = char(<span class="charliteral">'A'</span> + base - 10);
-<a name="l00128"></a>00128 <span class="keywordflow">while</span> ((*c >= <span class="charliteral">'0'</span> && *c <= <span class="charliteral">'9'</span>)
-<a name="l00129"></a>00129 || (*c >= <span class="charliteral">'a'</span> && *c < lower)
-<a name="l00130"></a>00130 || (*c >= <span class="charliteral">'A'</span> && *c < upper))
-<a name="l00131"></a>00131 tstr.push_back(*c++);
-<a name="l00132"></a>00132 }
-<a name="l00133"></a>00133 *endptr = <span class="keyword">const_cast<</span><span class="keywordtype">char</span>*<span class="keyword">></span>(c);
-<a name="l00134"></a>00134
-<a name="l00135"></a>00135 from_string(tstr, base);
-<a name="l00136"></a>00136 }
-<a name="l00137"></a>00137
-<a name="l00138"></a>00138 BOOST_XINT_RAWINT_TPL
-<a name="l00139"></a>00139 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> base) {
-<a name="l00140"></a>00140 <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;
-<a name="l00141"></a>00141 <span class="keyword">const</span> <span class="keywordtype">char</span> *c = str;
-<a name="l00142"></a>00142 <span class="keywordflow">if</span> (*c == <span class="charliteral">'+'</span>) ++c;
-<a name="l00143"></a>00143 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c == <span class="charliteral">'-'</span>) { negate = <span class="keyword">true</span>; ++c; }
+<a name="l00054"></a>00054 <span class="keywordtype">int</span> bits_per_base_b_digit = 0;
+<a name="l00055"></a>00055 <span class="keywordflow">while</span> (base > 1) { base = base >> 1; ++bits_per_base_b_digit; }
+<a name="l00056"></a>00056 <span class="keyword">const</span> digit_t mask = (doubledigit_t(1) << bits_per_base_b_digit) - 1;
+<a name="l00057"></a>00057
+<a name="l00058"></a>00058 <span class="comment">// Skip any leading zeros</span>
+<a name="l00059"></a>00059 <span class="keyword">const</span> digit_t *d = lastDigit;
+<a name="l00060"></a>00060 <span class="keywordtype">int</span> digitShift = (bits_per_digit - bits_per_base_b_digit);
+<a name="l00061"></a>00061 <span class="keywordflow">while</span> (digitShift >= 0 && ((*d >> digitShift) & mask) == 0)
+<a name="l00062"></a>00062 digitShift -= bits_per_base_b_digit;
+<a name="l00063"></a>00063
+<a name="l00064"></a>00064 <span class="keywordflow">do</span> {
+<a name="l00065"></a>00065 <span class="keywordflow">while</span> (digitShift >= 0) {
+<a name="l00066"></a>00066 out << nToChar((*d >> digitShift) & mask, uppercase);
+<a name="l00067"></a>00067 digitShift -= bits_per_base_b_digit;
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 digitShift = (bits_per_digit - bits_per_base_b_digit);
+<a name="l00071"></a>00071 } <span class="keywordflow">while</span> (d-- != firstDigit);
+<a name="l00072"></a>00072
+<a name="l00073"></a>00073 <span class="keywordflow">return</span> out.str();
+<a name="l00074"></a>00074 } <span class="keywordflow">else</span> {
+<a name="l00075"></a>00075 <span class="comment">// ATTN: for when there's nothing more pressing to do</span>
+<a name="l00076"></a>00076 <span class="comment">// This could be made a lot more efficient for very large numbers, by</span>
+<a name="l00077"></a>00077 <span class="comment">// dividing n by base raised to whatever number of digits will fit into</span>
+<a name="l00078"></a>00078 <span class="comment">// a doubledigit_t, then just doing single-digit divides for that many</span>
+<a name="l00079"></a>00079 <span class="comment">// digits before going back to n for another chunk. That would be</span>
+<a name="l00080"></a>00080 <span class="comment">// premature optimization though, so I'm just making this note instead.</span>
+<a name="l00081"></a>00081 <span class="comment">// If someone can show me a use-case where more efficiency is needed in</span>
+<a name="l00082"></a>00082 <span class="comment">// this function, I'll add it later.</span>
+<a name="l00083"></a>00083
+<a name="l00084"></a>00084 BOOST_XINT_RAWINT shift;
+<a name="l00085"></a>00085 shift.set_unsigned(base);
+<a name="l00086"></a>00086 <span class="keyword">typename</span> BOOST_XINT_RAWINT::divide_t a(<a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(n.abs(), shift));
+<a name="l00087"></a>00087 <span class="keywordflow">do</span> {
+<a name="l00088"></a>00088 out << nToChar(a.remainder[0], uppercase);
+<a name="l00089"></a>00089 a = <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(a.quotient, shift);
+<a name="l00090"></a>00090 } <span class="keywordflow">while</span> (!a.quotient.is_zero());
+<a name="l00091"></a>00091 <span class="keywordflow">if</span> (!a.remainder.is_zero()) out << nToChar(a.remainder[0], uppercase);
+<a name="l00092"></a>00092
+<a name="l00093"></a>00093 <span class="keywordflow">if</span> (n.negative) out << <span class="charliteral">'-'</span>;
+<a name="l00094"></a>00094
+<a name="l00095"></a>00095 std::basic_string<charT> rval = out.str();
+<a name="l00096"></a>00096 std::reverse(rval.begin(), rval.end());
+<a name="l00097"></a>00097 <span class="keywordflow">return</span> rval;
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 BOOST_XINT_RAWINT_TPL
+<a name="l00102"></a>00102 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00103"></a>00103 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> charT *str, <span class="keywordtype">char</span> **endptr, <span class="keywordtype">size_t</span>
+<a name="l00104"></a>00104 base)
+<a name="l00105"></a>00105 {
+<a name="l00106"></a>00106 <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;
+<a name="l00107"></a>00107 <span class="keyword">const</span> charT *c = str;
+<a name="l00108"></a>00108 <span class="keywordflow">while</span> (isspace(*c)) ++c;
+<a name="l00109"></a>00109
+<a name="l00110"></a>00110 <span class="keywordflow">if</span> (*c == <span class="charliteral">'+'</span>) ++c;
+<a name="l00111"></a>00111 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c == <span class="charliteral">'-'</span>) { negate = <span class="keyword">true</span>; ++c; }
+<a name="l00112"></a>00112
+<a name="l00113"></a>00113 <span class="keywordflow">if</span> (base == <a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the &#39;base&#39; parameter of the string-to-integer...">autobase</a>) {
+<a name="l00114"></a>00114 <span class="keywordflow">if</span> (*c == <span class="charliteral">'0'</span>) {
+<a name="l00115"></a>00115 ++c;
+<a name="l00116"></a>00116 <span class="keywordflow">if</span> (*c == <span class="charliteral">'x'</span> || *c == <span class="charliteral">'X'</span>) {
+<a name="l00117"></a>00117 ++c;
+<a name="l00118"></a>00118 base = 16;
+<a name="l00119"></a>00119 } <span class="keywordflow">else</span> base = 8;
+<a name="l00120"></a>00120 } <span class="keywordflow">else</span> base = 10;
+<a name="l00121"></a>00121 }
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 <span class="keywordflow">if</span> (base < 2 || base > 36) <span class="keywordflow">throw</span> exceptions::invalid_base();
+<a name="l00124"></a>00124 <span class="keywordflow">if</span> (*c == 0) <span class="keywordflow">throw</span> exceptions::invalid_digit(<span class="stringliteral">"No valid digits"</span>);
+<a name="l00125"></a>00125
+<a name="l00126"></a>00126 std::basic_string<charT> tstr;
+<a name="l00127"></a>00127 <span class="keywordflow">if</span> (negate) tstr.push_back(<span class="charliteral">'-'</span>);
+<a name="l00128"></a>00128 <span class="keywordflow">if</span> (base <= 10) {
+<a name="l00129"></a>00129 <span class="keyword">const</span> charT p = charT(<span class="charliteral">'0'</span> + base);
+<a name="l00130"></a>00130 <span class="keywordflow">while</span> (*c >= <span class="charliteral">'0'</span> && *c < p)
+<a name="l00131"></a>00131 tstr.push_back(*c++);
+<a name="l00132"></a>00132 } <span class="keywordflow">else</span> {
+<a name="l00133"></a>00133 <span class="keyword">const</span> charT lower = charT(<span class="charliteral">'a'</span> + base - 10), upper = charT(<span class="charliteral">'A'</span> + base -
+<a name="l00134"></a>00134 10);
+<a name="l00135"></a>00135 <span class="keywordflow">while</span> ((*c >= <span class="charliteral">'0'</span> && *c <= <span class="charliteral">'9'</span>)
+<a name="l00136"></a>00136 || (*c >= <span class="charliteral">'a'</span> && *c < lower)
+<a name="l00137"></a>00137 || (*c >= <span class="charliteral">'A'</span> && *c < upper))
+<a name="l00138"></a>00138 tstr.push_back(*c++);
+<a name="l00139"></a>00139 }
+<a name="l00140"></a>00140 *endptr = <span class="keyword">const_cast<</span>charT*<span class="keyword">></span>(c);
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 from_string(tstr, base);
+<a name="l00143"></a>00143 }
<a name="l00144"></a>00144
-<a name="l00145"></a>00145 <span class="keywordflow">if</span> (base == <a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the &#39;base&#39; parameter of the string-to-integer...">autobase</a>) {
-<a name="l00146"></a>00146 <span class="keywordflow">if</span> (*c == <span class="charliteral">'0'</span>) {
-<a name="l00147"></a>00147 ++c;
-<a name="l00148"></a>00148 <span class="keywordflow">if</span> (*c == <span class="charliteral">'x'</span> || *c == <span class="charliteral">'X'</span>) {
-<a name="l00149"></a>00149 ++c;
-<a name="l00150"></a>00150 base = 16;
-<a name="l00151"></a>00151 } <span class="keywordflow">else</span> base = 8;
-<a name="l00152"></a>00152 } <span class="keywordflow">else</span> base = 10;
-<a name="l00153"></a>00153 }
-<a name="l00154"></a>00154
-<a name="l00155"></a>00155 <span class="keywordflow">if</span> (base < 2 || base > 36) <span class="keywordflow">throw</span> exceptions::invalid_base();
-<a name="l00156"></a>00156 <span class="keywordflow">if</span> (*c == 0) <span class="keywordflow">throw</span> exceptions::invalid_digit(<span class="stringliteral">"No valid digits"</span>);
-<a name="l00157"></a>00157
-<a name="l00158"></a>00158 <span class="comment">// ATTN: for when there's nothing more pressing to do</span>
-<a name="l00159"></a>00159 <span class="comment">// This function could use the same efficiency improvements that to_string</span>
-<a name="l00160"></a>00160 <span class="comment">// uses, but there's even less need for them here. Show me a use-case where</span>
-<a name="l00161"></a>00161 <span class="comment">// they're needed and I'll add them; until then, this will suffice.</span>
+<a name="l00145"></a>00145 BOOST_XINT_RAWINT_TPL
+<a name="l00146"></a>00146 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00147"></a>00147 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> charT *str, <span class="keywordtype">size_t</span> base) {
+<a name="l00148"></a>00148 <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;
+<a name="l00149"></a>00149 <span class="keyword">const</span> charT *c = str;
+<a name="l00150"></a>00150 <span class="keywordflow">if</span> (*c == <span class="charliteral">'+'</span>) ++c;
+<a name="l00151"></a>00151 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c == <span class="charliteral">'-'</span>) { negate = <span class="keyword">true</span>; ++c; }
+<a name="l00152"></a>00152
+<a name="l00153"></a>00153 <span class="keywordflow">if</span> (base == <a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the &#39;base&#39; parameter of the string-to-integer...">autobase</a>) {
+<a name="l00154"></a>00154 <span class="keywordflow">if</span> (*c == <span class="charliteral">'0'</span>) {
+<a name="l00155"></a>00155 ++c;
+<a name="l00156"></a>00156 <span class="keywordflow">if</span> (*c == <span class="charliteral">'x'</span> || *c == <span class="charliteral">'X'</span>) {
+<a name="l00157"></a>00157 ++c;
+<a name="l00158"></a>00158 base = 16;
+<a name="l00159"></a>00159 } <span class="keywordflow">else</span> base = 8;
+<a name="l00160"></a>00160 } <span class="keywordflow">else</span> base = 10;
+<a name="l00161"></a>00161 }
<a name="l00162"></a>00162
-<a name="l00163"></a>00163 BOOST_XINT_RAWINT shift, digit;
-<a name="l00164"></a>00164 shift.set_unsigned(base);
+<a name="l00163"></a>00163 <span class="keywordflow">if</span> (base < 2 || base > 36) <span class="keywordflow">throw</span> exceptions::invalid_base();
+<a name="l00164"></a>00164 <span class="keywordflow">if</span> (*c == 0) <span class="keywordflow">throw</span> exceptions::invalid_digit(<span class="stringliteral">"No valid digits"</span>);
<a name="l00165"></a>00165
-<a name="l00166"></a>00166 <span class="keyword">set</span>(0);
-<a name="l00167"></a>00167 <span class="keywordflow">while</span> (*c) {
-<a name="l00168"></a>00168 <span class="keywordflow">if</span> (*c >= <span class="charliteral">'0'</span> && *c <= <span class="charliteral">'9'</span>) digit.set(*c - <span class="charliteral">'0'</span>);
-<a name="l00169"></a>00169 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c >= <span class="charliteral">'A'</span> && *c <= <span class="charliteral">'Z'</span>) digit.set(*c - <span class="charliteral">'A'</span> + 10);
-<a name="l00170"></a>00170 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c >= <span class="charliteral">'a'</span> && *c <= <span class="charliteral">'z'</span>) digit.set(*c - <span class="charliteral">'a'</span> + 10);
-<a name="l00171"></a>00171 <span class="keywordflow">else</span>
-<a name="l00172"></a>00172 <span class="keywordflow">throw</span> exceptions::invalid_digit(<span class="stringliteral">"encountered non-alphanumeric "</span>
-<a name="l00173"></a>00173 <span class="stringliteral">"character in string"</span>);
-<a name="l00174"></a>00174
-<a name="l00175"></a>00175 <span class="keywordflow">if</span> (digit >= shift) <span class="keywordflow">throw</span> exceptions::invalid_digit(<span class="stringliteral">"encountered digit "</span>
-<a name="l00176"></a>00176 <span class="stringliteral">"greater than base allows"</span>);
-<a name="l00177"></a>00177
-<a name="l00178"></a>00178 *<span class="keyword">this</span> *= shift;
-<a name="l00179"></a>00179 *<span class="keyword">this</span> += digit;
-<a name="l00180"></a>00180 ++c;
-<a name="l00181"></a>00181 }
+<a name="l00166"></a>00166 <span class="comment">// ATTN: for when there's nothing more pressing to do</span>
+<a name="l00167"></a>00167 <span class="comment">// This function could use the same efficiency improvements that to_string</span>
+<a name="l00168"></a>00168 <span class="comment">// uses, but there's even less need for them here. Show me a use-case where</span>
+<a name="l00169"></a>00169 <span class="comment">// they're needed and I'll add them; until then, this will suffice.</span>
+<a name="l00170"></a>00170
+<a name="l00171"></a>00171 BOOST_XINT_RAWINT shift, digit;
+<a name="l00172"></a>00172 shift.set_unsigned(base);
+<a name="l00173"></a>00173
+<a name="l00174"></a>00174 <span class="keyword">set</span>(0);
+<a name="l00175"></a>00175 <span class="keywordflow">while</span> (*c) {
+<a name="l00176"></a>00176 <span class="keywordflow">if</span> (*c >= <span class="charliteral">'0'</span> && *c <= <span class="charliteral">'9'</span>) digit.set(*c - <span class="charliteral">'0'</span>);
+<a name="l00177"></a>00177 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c >= <span class="charliteral">'A'</span> && *c <= <span class="charliteral">'Z'</span>) digit.set(*c - <span class="charliteral">'A'</span> + 10);
+<a name="l00178"></a>00178 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c >= <span class="charliteral">'a'</span> && *c <= <span class="charliteral">'z'</span>) digit.set(*c - <span class="charliteral">'a'</span> + 10);
+<a name="l00179"></a>00179 <span class="keywordflow">else</span>
+<a name="l00180"></a>00180 <span class="keywordflow">throw</span> exceptions::invalid_digit(<span class="stringliteral">"encountered non-alphanumeric "</span>
+<a name="l00181"></a>00181 <span class="stringliteral">"character in string"</span>);
<a name="l00182"></a>00182
-<a name="l00183"></a>00183 negative = negate;
-<a name="l00184"></a>00184 trim();
-<a name="l00185"></a>00185 }
-<a name="l00186"></a>00186
-<a name="l00187"></a>00187 BOOST_XINT_RAWINT_TPL
-<a name="l00188"></a>00188 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base) {
-<a name="l00189"></a>00189 from_string(str.c_str(), base);
-<a name="l00190"></a>00190 }
-<a name="l00191"></a>00191
-<a name="l00192"></a>00192 BOOST_XINT_RAWINT_TPL
-<a name="l00193"></a>00193 <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keywordtype">size_t</span> bits = 0) {
-<a name="l00194"></a>00194 <span class="keywordflow">if</span> (bits > <span class="keywordtype">size_t</span>(std::numeric_limits<unsigned char>::digits)) <span class="keywordflow">throw</span>
-<a name="l00195"></a>00195 exceptions::invalid_argument(<span class="stringliteral">"can't fit that many bits into an "</span>
-<a name="l00196"></a>00196 <span class="stringliteral">"unsigned character on this system"</span>);
-<a name="l00197"></a>00197 <span class="keywordflow">if</span> (bits == 0) bits = std::numeric_limits<unsigned char>::digits;
-<a name="l00198"></a>00198
-<a name="l00199"></a>00199 bitqueue_t bitqueue;
-<a name="l00200"></a>00200 <span class="keyword">const</span> digit_t *s = n.digits(), *se = s + n.length;
-<a name="l00201"></a>00201 <span class="keywordflow">while</span> (s != se) bitqueue.push(*s++, bits_per_digit);
+<a name="l00183"></a>00183 <span class="keywordflow">if</span> (digit >= shift) <span class="keywordflow">throw</span> exceptions::invalid_digit(<span class="stringliteral">"encountered digit "</span>
+<a name="l00184"></a>00184 <span class="stringliteral">"greater than base allows"</span>);
+<a name="l00185"></a>00185
+<a name="l00186"></a>00186 *<span class="keyword">this</span> *= shift;
+<a name="l00187"></a>00187 *<span class="keyword">this</span> += digit;
+<a name="l00188"></a>00188 ++c;
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190
+<a name="l00191"></a>00191 negative = negate;
+<a name="l00192"></a>00192 trim();
+<a name="l00193"></a>00193 }
+<a name="l00194"></a>00194
+<a name="l00195"></a>00195 BOOST_XINT_RAWINT_TPL
+<a name="l00196"></a>00196 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00197"></a>00197 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> std::basic_string<charT>& str, <span class="keywordtype">size_t</span>
+<a name="l00198"></a>00198 base)
+<a name="l00199"></a>00199 {
+<a name="l00200"></a>00200 from_string(str.c_str(), base);
+<a name="l00201"></a>00201 }
<a name="l00202"></a>00202
-<a name="l00203"></a>00203 <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> target;
-<a name="l00204"></a>00204 <span class="keywordflow">while</span> (!bitqueue.empty()) target.push_back(static_cast<unsigned char>
-<a name="l00205"></a>00205 (bitqueue.pop(bits)));
-<a name="l00206"></a>00206 <span class="keywordflow">while</span> (!target.empty() && target.back()==0) target.pop_back();
-<a name="l00207"></a>00207 <span class="keywordflow">return</span> target;
-<a name="l00208"></a>00208 }
+<a name="l00203"></a>00203 BOOST_XINT_RAWINT_TPL
+<a name="l00204"></a>00204 <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keywordtype">size_t</span> bits = 0) {
+<a name="l00205"></a>00205 <span class="keywordflow">if</span> (bits > <span class="keywordtype">size_t</span>(std::numeric_limits<unsigned char>::digits)) <span class="keywordflow">throw</span>
+<a name="l00206"></a>00206 exceptions::invalid_argument(<span class="stringliteral">"can't fit that many bits into an "</span>
+<a name="l00207"></a>00207 <span class="stringliteral">"unsigned character on this system"</span>);
+<a name="l00208"></a>00208 <span class="keywordflow">if</span> (bits == 0) bits = std::numeric_limits<unsigned char>::digits;
<a name="l00209"></a>00209
-<a name="l00210"></a>00210 BOOST_XINT_RAWINT_TPL
-<a name="l00211"></a>00211 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_binary(<a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <span class="keywordtype">size_t</span> bits) {
-<a name="l00212"></a>00212 <span class="keywordflow">if</span> (bits > <span class="keywordtype">size_t</span>(std::numeric_limits<unsigned char>::digits)) <span class="keywordflow">throw</span>
-<a name="l00213"></a>00213 exceptions::invalid_argument(<span class="stringliteral">"can't fit that many bits into an "</span>
-<a name="l00214"></a>00214 <span class="stringliteral">"unsigned character on this system"</span>);
-<a name="l00215"></a>00215 <span class="keywordflow">if</span> (bits == 0) bits = std::numeric_limits<unsigned char>::digits;
-<a name="l00216"></a>00216
-<a name="l00217"></a>00217 bitqueue_t bitqueue;
-<a name="l00218"></a>00218 <span class="keywordflow">for</span> (xint::binary_t::const_iterator s = b.begin(), se = b.end(); s != se;
-<a name="l00219"></a>00219 ++s) bitqueue.push(*s, bits);
+<a name="l00210"></a>00210 bitqueue_t bitqueue;
+<a name="l00211"></a>00211 <span class="keyword">const</span> digit_t *s = n.digits(), *se = s + n.length;
+<a name="l00212"></a>00212 <span class="keywordflow">while</span> (s != se) bitqueue.push(*s++, bits_per_digit);
+<a name="l00213"></a>00213
+<a name="l00214"></a>00214 <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> target;
+<a name="l00215"></a>00215 <span class="keywordflow">while</span> (!bitqueue.empty()) target.push_back(static_cast<unsigned char>
+<a name="l00216"></a>00216 (bitqueue.pop(bits)));
+<a name="l00217"></a>00217 <span class="keywordflow">while</span> (!target.empty() && target.back()==0) target.pop_back();
+<a name="l00218"></a>00218 <span class="keywordflow">return</span> target;
+<a name="l00219"></a>00219 }
<a name="l00220"></a>00220
-<a name="l00221"></a>00221 digit_t *d = digits(bits_to_digits(b.size() * bits), realloc::ignore), *t =
-<a name="l00222"></a>00222 d, *te = t + max_length();
-<a name="l00223"></a>00223 <span class="keywordflow">while</span> (t != te && !bitqueue.empty())
-<a name="l00224"></a>00224 *t++ = static_cast<digit_t>(bitqueue.pop(bits_per_digit));
-<a name="l00225"></a>00225 length = (t - d);
-<a name="l00226"></a>00226 trim();
-<a name="l00227"></a>00227 }
-<a name="l00228"></a>00228
-<a name="l00229"></a>00229 <span class="keyword">template</span> <<span class="keyword">typename</span> T, bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc>
-<a name="l00230"></a>00230 T <a class="code" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69" title="Converts an xint::integer type to a built-in integer type.">to</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T>
-<a name="l00231"></a>00231 >::type* = 0)
-<a name="l00232"></a>00232 {
-<a name="l00233"></a>00233 <span class="keyword">using</span> std::numeric_limits;
-<a name="l00234"></a>00234
-<a name="l00235"></a>00235 <span class="keyword">static</span> <span class="keyword">const</span> BOOST_XINT_RAWINT tmin((numeric_limits<T>::min)());
-<a name="l00236"></a>00236 <span class="keyword">static</span> <span class="keyword">const</span> BOOST_XINT_RAWINT tmax((numeric_limits<T>::max)());
-<a name="l00237"></a>00237 <span class="keywordflow">if</span> (n < tmin || n > tmax) <span class="keywordflow">throw</span> exceptions::too_big(<span class="stringliteral">"value out of range "</span>
-<a name="l00238"></a>00238 <span class="stringliteral">"for requested conversion"</span>);
+<a name="l00221"></a>00221 BOOST_XINT_RAWINT_TPL
+<a name="l00222"></a>00222 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_binary(<a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <span class="keywordtype">size_t</span> bits) {
+<a name="l00223"></a>00223 <span class="keywordflow">if</span> (bits > <span class="keywordtype">size_t</span>(std::numeric_limits<unsigned char>::digits)) <span class="keywordflow">throw</span>
+<a name="l00224"></a>00224 exceptions::invalid_argument(<span class="stringliteral">"can't fit that many bits into an "</span>
+<a name="l00225"></a>00225 <span class="stringliteral">"unsigned character on this system"</span>);
+<a name="l00226"></a>00226 <span class="keywordflow">if</span> (bits == 0) bits = std::numeric_limits<unsigned char>::digits;
+<a name="l00227"></a>00227
+<a name="l00228"></a>00228 bitqueue_t bitqueue;
+<a name="l00229"></a>00229 <span class="keywordflow">for</span> (xint::binary_t::const_iterator s = b.begin(), se = b.end(); s != se;
+<a name="l00230"></a>00230 ++s) bitqueue.push(*s, bits);
+<a name="l00231"></a>00231
+<a name="l00232"></a>00232 digit_t *d = digits(bits_to_digits(b.size() * bits), realloc::ignore), *t =
+<a name="l00233"></a>00233 d, *te = t + max_length();
+<a name="l00234"></a>00234 <span class="keywordflow">while</span> (t != te && !bitqueue.empty())
+<a name="l00235"></a>00235 *t++ = static_cast<digit_t>(bitqueue.pop(bits_per_digit));
+<a name="l00236"></a>00236 length = (t - d);
+<a name="l00237"></a>00237 trim();
+<a name="l00238"></a>00238 }
<a name="l00239"></a>00239
-<a name="l00240"></a>00240 T rval = 0, shift = T(digit_overflowbit);
-<a name="l00241"></a>00241 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x = 0; x < n.length; ++x) {
-<a name="l00242"></a>00242 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) > <span class="keyword">sizeof</span>(digit_t)) rval *= shift;
-<a name="l00243"></a>00243 rval += <span class="keyword">static_cast<</span>T<span class="keyword">></span>(n[n.length - x - 1]);
-<a name="l00244"></a>00244 }
-<a name="l00245"></a>00245 <span class="keywordflow">if</span> (n.negative) rval *= -1;
-<a name="l00246"></a>00246 <span class="keywordflow">return</span> rval;
-<a name="l00247"></a>00247 }
-<a name="l00248"></a>00248
-<a name="l00249"></a>00249 } <span class="comment">// namespace detail</span>
-<a name="l00250"></a>00250 } <span class="comment">// namespace xint</span>
-<a name="l00251"></a>00251 } <span class="comment">// namespace boost</span>
-<a name="l00253"></a>00253 <span class="comment"></span>
-<a name="l00254"></a>00254 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_CONVERT_HPP</span>
+<a name="l00240"></a>00240 <span class="keyword">template</span> <<span class="keyword">typename</span> T, bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc>
+<a name="l00241"></a>00241 T <a class="code" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69" title="Converts an xint::integer type to a built-in integer type.">to</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">typename</span> boost::enable_if<boost::is_integral<T>
+<a name="l00242"></a>00242 >::type* = 0)
+<a name="l00243"></a>00243 {
+<a name="l00244"></a>00244 <span class="keyword">using</span> std::numeric_limits;
+<a name="l00245"></a>00245
+<a name="l00246"></a>00246 <span class="keyword">static</span> <span class="keyword">const</span> BOOST_XINT_RAWINT tmin((numeric_limits<T>::min)());
+<a name="l00247"></a>00247 <span class="keyword">static</span> <span class="keyword">const</span> BOOST_XINT_RAWINT tmax((numeric_limits<T>::max)());
+<a name="l00248"></a>00248 <span class="keywordflow">if</span> (n < tmin || n > tmax) <span class="keywordflow">throw</span> exceptions::too_big(<span class="stringliteral">"value out of range "</span>
+<a name="l00249"></a>00249 <span class="stringliteral">"for requested conversion"</span>);
+<a name="l00250"></a>00250
+<a name="l00251"></a>00251 T rval = 0, shift = T(digit_overflowbit);
+<a name="l00252"></a>00252 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> x = 0; x < n.length; ++x) {
+<a name="l00253"></a>00253 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) > <span class="keyword">sizeof</span>(digit_t)) rval *= shift;
+<a name="l00254"></a>00254 rval += <span class="keyword">static_cast<</span>T<span class="keyword">></span>(n[n.length - x - 1]);
+<a name="l00255"></a>00255 }
+<a name="l00256"></a>00256 <span class="keywordflow">if</span> (n.negative) rval *= -1;
+<a name="l00257"></a>00257 <span class="keywordflow">return</span> rval;
+<a name="l00258"></a>00258 }
+<a name="l00259"></a>00259
+<a name="l00260"></a>00260 } <span class="comment">// namespace detail</span>
+<a name="l00261"></a>00261 } <span class="comment">// namespace xint</span>
+<a name="l00262"></a>00262 } <span class="comment">// namespace boost</span>
+<a name="l00264"></a>00264 <span class="comment"></span>
+<a name="l00265"></a>00265 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_CONVERT_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/copyonwrite_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/copyonwrite_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/copyonwrite_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/copyonwrite.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/cow.html
==============================================================================
--- sandbox/xint/libs/xint/doc/cow.html (original)
+++ sandbox/xint/libs/xint/doc/cow.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -27,7 +27,7 @@
<p>To increase the speed of the library further, it uses a copy-on-write system internally. That means that if the internal functions copy an integer object, the copy and the original share the same storage. They are only assigned separate storage when one of them is changed. This mechanism makes copying a number (explicitly, by returning it, or by using it as a non-reference parameter to a function) very fast, regardless of its size.</p>
<p>Unfortunately, copy-on-write isn't compatible with thread-safe operation, so by default the library will ensure that all of its objects have unique storage before they are returned to your program. If you want maximum speed, and can ensure that integer objects are only used in the threads they are created in, you can disable this by using the <code>threadsafe<false></code> option on the <code>integer_t</code> class template. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/dependencies.html
==============================================================================
--- sandbox/xint/libs/xint/doc/dependencies.html (original)
+++ sandbox/xint/libs/xint/doc/dependencies.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -36,7 +36,7 @@
</ul>
<p>All of these are header-only libraries, meaning that you don't need to worry about linking your program with them. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/dependencies_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/dependencies_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/dependencies_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/dependencies.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/divide_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/divide_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/divide_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="divide_8hpp_source.html">divide.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/divide_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/divide_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/divide_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -234,7 +234,7 @@
<a name="l00223"></a>00223 <span class="comment"></span>
<a name="l00224"></a>00224 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_DIVIDE_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/dox/acknowledgements.dox
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/acknowledgements.dox (original)
+++ sandbox/xint/libs/xint/doc/dox/acknowledgements.dox 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -43,6 +43,7 @@
effectively with multiple \c bool parameters.
- Christopher Jefferson, for sharing the best way to support \c
BOOST_NO_EXCEPTIONS.
+- Adam Merz, for suggesting wstring/wchar_t support.
And the other Boost development list members who joined the discussion:
Modified: sandbox/xint/libs/xint/doc/ex__fibonacci.html
==============================================================================
--- sandbox/xint/libs/xint/doc/ex__fibonacci.html (original)
+++ sandbox/xint/libs/xint/doc/ex__fibonacci.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -64,7 +64,7 @@
</pre></div><p>If you're not intimately familiar with the Fibonacci sequence, and how fast the numbers in it grow, the answer might shock you.</p>
<p>As you can see, using the XInt library is just like using the native integer types -- except that an <code>xint::integer</code> won't overflow on you until you completely exhaust your system's memory. :-) </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/ex__fibonacci_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/ex__fibonacci_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/ex__fibonacci_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/ex_fibonacci.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/exceptions.html
==============================================================================
--- sandbox/xint/libs/xint/doc/exceptions.html (original)
+++ sandbox/xint/libs/xint/doc/exceptions.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -62,7 +62,7 @@
}
}
</pre></div> </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/exceptions_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/exceptions_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/exceptions_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/exceptions.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/exceptions_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/exceptions_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/exceptions_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -60,7 +60,7 @@
<p>Definition in file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/exceptions_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/exceptions_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/exceptions_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -114,7 +114,7 @@
<a name="l00137"></a>00137
<a name="l00138"></a>00138 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_EXCEPTIONS_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/files.html
==============================================================================
--- sandbox/xint/libs/xint/doc/files.html (original)
+++ sandbox/xint/libs/xint/doc/files.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -54,9 +54,10 @@
<tr><td class="indexkey">detail/<a class="el" href="raw__integer_8hpp.html">raw_integer.hpp</a> [code]</td><td class="indexvalue">Contains the raw_integer class declaration, and miscellaneous definitions for member functions </td></tr>
<tr><td class="indexkey">detail/<a class="el" href="roots_8hpp.html">roots.hpp</a> [code]</td><td class="indexvalue">Contains the square-root function definition, and any future root-related ones </td></tr>
<tr><td class="indexkey">detail/<a class="el" href="shift_8hpp.html">shift.hpp</a> [code]</td><td class="indexvalue">Contains the bit-shifting function definitions </td></tr>
+ <tr><td class="indexkey">detail/<a class="el" href="streams_8hpp.html">streams.hpp</a> [code]</td><td class="indexvalue">Contains the stream input/output code for raw_integer types </td></tr>
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/fixedlength.html
==============================================================================
--- sandbox/xint/libs/xint/doc/fixedlength.html (original)
+++ sandbox/xint/libs/xint/doc/fixedlength.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -27,7 +27,7 @@
<dl class="note"><dt><b>Note:</b></dt><dd>The number of bits refers only to the unsigned magnitude of the number. The sign is stored separately. This means that, for example, a <code>integer_t<8></code> has a range of -255 to +255, not -128 to +127 like an <code>int8_t</code>.</dd></dl>
<dl class="user"><dt><b></b></dt><dd>Also note that when calculating with a fixed-length integer type, the number does not "wrap around" when it exceeds the type's size like the built-in signed integer types do. It is truncated to the lower bits instead. For example, <code>integer_t<8>(-255) - 1</code> and <code>integer_t<8>(255) + 1</code> will both be zero. However, the sign (on non-zero answers) is preserved, so <code>integer_t<8>(-255) - 2</code> will be -1. </dd></dl>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/fixedlength_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/fixedlength_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/fixedlength_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/fixedlength.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/functions.html
==============================================================================
--- sandbox/xint/libs/xint/doc/functions.html (original)
+++ sandbox/xint/libs/xint/doc/functions.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -240,7 +240,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/functions_func.html
==============================================================================
--- sandbox/xint/libs/xint/doc/functions_func.html (original)
+++ sandbox/xint/libs/xint/doc/functions_func.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -226,7 +226,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/functions_type.html
==============================================================================
--- sandbox/xint/libs/xint/doc/functions_type.html (original)
+++ sandbox/xint/libs/xint/doc/functions_type.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -40,7 +40,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/functions_vars.html
==============================================================================
--- sandbox/xint/libs/xint/doc/functions_vars.html (original)
+++ sandbox/xint/libs/xint/doc/functions_vars.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -43,7 +43,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/gcd_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/gcd_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/gcd_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="gcd_8hpp_source.html">gcd.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/gcd_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/gcd_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/gcd_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -157,7 +157,7 @@
<a name="l00142"></a>00142 <span class="comment"></span>
<a name="l00143"></a>00143 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_GCD_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/globals.html
==============================================================================
--- sandbox/xint/libs/xint/doc/globals.html (original)
+++ sandbox/xint/libs/xint/doc/globals.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -70,7 +70,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/globals_defs.html
==============================================================================
--- sandbox/xint/libs/xint/doc/globals_defs.html (original)
+++ sandbox/xint/libs/xint/doc/globals_defs.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -70,7 +70,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/hierarchy.html
==============================================================================
--- sandbox/xint/libs/xint/doc/hierarchy.html (original)
+++ sandbox/xint/libs/xint/doc/hierarchy.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -59,7 +59,7 @@
<li><a class="el" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref< T ></a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/history.html
==============================================================================
--- sandbox/xint/libs/xint/doc/history.html (original)
+++ sandbox/xint/libs/xint/doc/history.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -57,7 +57,7 @@
<li>Added Boost.Parameter options to the <code>integer_t</code> type, so you're no longer forced to list the options in order, and list all earlier options before the one that you want to change. </li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/history_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/history_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/history_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/history.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/index.html
==============================================================================
--- sandbox/xint/libs/xint/doc/index.html (original)
+++ sandbox/xint/libs/xint/doc/index.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -62,7 +62,7 @@
<li><a class="el" href="ex__fibonacci.html">Fibonacci Numbers</a> </li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/index_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/index_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/index_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/index.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/integer_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/integer_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/integer_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -208,6 +208,9 @@
<tr><td class="memTemplParams" colspan="2">template<... > </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::string </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2">boost::xint::to_string</a> (const integer_t n, size_t base=10, bool uppercase=false)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a string representation of the specified integer. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<... > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::wstring </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab1c726c14c688957565bb5d2e8478c0b">boost::xint::to_wstring</a> (const integer_t n, size_t base=10, bool uppercase=false)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a wide-character string representation of the specified integer. <br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Declares the arbitrary-length integer type. </p>
@@ -262,7 +265,7 @@
</pre></div>
<p>Allows for comparisons between integer_t types and other integral values. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02284">2284</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02332">2332</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -284,7 +287,7 @@
<p>Allows for operations between integer_t types and other integral values. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02320">2320</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02368">2368</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -364,7 +367,7 @@
</div>
</div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/integer_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/integer_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/integer_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -68,1715 +68,1748 @@
<a name="l00047"></a>00047 <span class="keyword">namespace </span>boost {
<a name="l00048"></a>00048 <span class="keyword">namespace </span>xint {
<a name="l00049"></a>00049
-<a name="l00050"></a>00050 <span class="comment">// todo: update for new parameters</span>
-<a name="l00101"></a>00101 <span class="comment"></span><a class="code" href="integer_8hpp.html#aa7c3e1efa96c7df6333940b38b2d7e5b">BOOST_XINT_INTEGER_INITIAL_TPL</a>
-<a name="l00102"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html">00102</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> {
-<a name="l00103"></a>00103 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00104"></a>00104 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> options::integer_signature::bind<A0,A1,A2,A3,A4>::type
-<a name="l00105"></a>00105 args;
-<a name="l00106"></a>00106 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding<args, tag::fixedlength_tag,
-<a name="l00107"></a>00107 <a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength.html">options::fixedlength<0></a> >::type BitsType;
-<a name="l00108"></a>00108 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding<args, tag::threadsafe_tag, mpl::true_>::type
-<a name="l00109"></a>00109 ThreadsafeType;
-<a name="l00110"></a>00110 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding<args, tag::secure_tag, mpl::false_>::type
-<a name="l00111"></a>00111 SecureType;
-<a name="l00112"></a>00112 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding<args, tag::nothrow_tag, mpl::false_>::type
-<a name="l00113"></a>00113 NothrowType;
-<a name="l00114"></a>00114 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00115"></a>00115 <span class="preprocessor"></span>
-<a name="l00116"></a>00116 <span class="keyword">public</span>:
-<a name="l00117"></a>00117 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00118"></a>00118 <span class="preprocessor"></span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> Bits;
-<a name="l00119"></a>00119 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> Threadsafe, Secure, Nothrow;
-<a name="l00120"></a>00120 <span class="keyword">typedef</span> <span class="keyword">typename</span> binding<args, tag::allocator_tag,
-<a name="l00121"></a>00121 std::allocator<detail::digit_t> >::type Alloc;
-<a name="l00122"></a>00122 <span class="keyword">typedef</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> type;
-<a name="l00123"></a>00123 <span class="keyword">typedef</span> detail::raw_integer_t<BitsType::value, SecureType::value, Alloc>
-<a name="l00124"></a>00124 datatype;
-<a name="l00125"></a>00125 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00126"></a>00126 <span class="preprocessor"></span>
-<a name="l00129"></a>00129 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>();
-<a name="l00130"></a>00130 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& b, <span class="keywordtype">bool</span> force_thread_safety =
-<a name="l00131"></a>00131 <span class="keyword">false</span>);
-<a name="l00132"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">00132</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">integer_t</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(type) b) { _swap(b); }
-<a name="l00133"></a>00133 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> base = 10);
-<a name="l00134"></a>00134 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">char</span> **endptr, <span class="keywordtype">size_t</span> base = 10);
-<a name="l00135"></a>00135 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base = 10);
-<a name="l00136"></a>00136 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits = 0);
-<a name="l00137"></a>00137 <a class="code" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">BOOST_XINT_OTHER_TPL</a> <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">BOOST_XINT_OTHER_TYPE</a>& other,
-<a name="l00138"></a>00138 <span class="keywordtype">bool</span> force_thread_safety = <span class="keyword">false</span>);
-<a name="l00139"></a>00139 <span class="keyword">template</span> <<span class="keyword">typename</span> Type> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> Type n,
-<a name="l00140"></a>00140 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<Type> >::type* = 0);
-<a name="l00141"></a>00141
-<a name="l00142"></a>00142 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00143"></a>00143 <span class="preprocessor"></span>
-<a name="l00144"></a>00144 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> detail::raw_integer_t<BitsType::value, SecureType::value,
-<a name="l00145"></a>00145 Alloc> c): data(c) { <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique(); }
+<a name="l00100"></a>00100 <a class="code" href="integer_8hpp.html#aa7c3e1efa96c7df6333940b38b2d7e5b">BOOST_XINT_INTEGER_INITIAL_TPL</a>
+<a name="l00101"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html">00101</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> {
+<a name="l00102"></a>00102 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> options::integer_signature::bind<A0,A1,A2,A3,A4>::type
+<a name="l00104"></a>00104 args;
+<a name="l00105"></a>00105 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding<args, tag::fixedlength_tag,
+<a name="l00106"></a>00106 <a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength.html">options::fixedlength<0></a> >::type BitsType;
+<a name="l00107"></a>00107 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding<args, tag::threadsafe_tag, mpl::true_>::type
+<a name="l00108"></a>00108 ThreadsafeType;
+<a name="l00109"></a>00109 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding<args, tag::secure_tag, mpl::false_>::type
+<a name="l00110"></a>00110 SecureType;
+<a name="l00111"></a>00111 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding<args, tag::nothrow_tag, mpl::false_>::type
+<a name="l00112"></a>00112 NothrowType;
+<a name="l00113"></a>00113 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span>
+<a name="l00115"></a>00115 <span class="keyword">public</span>:
+<a name="l00116"></a>00116 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00117"></a>00117 <span class="preprocessor"></span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> Bits;
+<a name="l00118"></a>00118 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> Threadsafe, Secure, Nothrow;
+<a name="l00119"></a>00119 <span class="keyword">typedef</span> <span class="keyword">typename</span> binding<args, tag::allocator_tag,
+<a name="l00120"></a>00120 std::allocator<detail::digit_t> >::type Alloc;
+<a name="l00121"></a>00121 <span class="keyword">typedef</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> type;
+<a name="l00122"></a>00122 <span class="keyword">typedef</span> detail::raw_integer_t<BitsType::value, SecureType::value, Alloc>
+<a name="l00123"></a>00123 datatype;
+<a name="l00124"></a>00124 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00125"></a>00125 <span class="preprocessor"></span>
+<a name="l00128"></a>00128 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>();
+<a name="l00129"></a>00129 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& b, <span class="keywordtype">bool</span> force_thread_safety =
+<a name="l00130"></a>00130 <span class="keyword">false</span>);
+<a name="l00131"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">00131</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">integer_t</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(type) b) { _swap(b); }
+<a name="l00132"></a>00132 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00133"></a>00133 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> charT *str, <span class="keywordtype">size_t</span> base = 10);
+<a name="l00134"></a>00134 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00135"></a>00135 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> charT *str, charT **endptr, <span class="keywordtype">size_t</span> base = 10);
+<a name="l00136"></a>00136 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00137"></a>00137 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> std::basic_string<charT>& str, <span class="keywordtype">size_t</span> base = 10);
+<a name="l00138"></a>00138 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits = 0);
+<a name="l00139"></a>00139 <a class="code" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">BOOST_XINT_OTHER_TPL</a> <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">BOOST_XINT_OTHER_TYPE</a>& other,
+<a name="l00140"></a>00140 <span class="keywordtype">bool</span> force_thread_safety = <span class="keyword">false</span>);
+<a name="l00141"></a>00141 <span class="keyword">template</span> <<span class="keyword">typename</span> Type> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> Type n,
+<a name="l00142"></a>00142 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<Type> >::type* = 0);
+<a name="l00143"></a>00143
+<a name="l00144"></a>00144 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00145"></a>00145 <span class="preprocessor"></span>
<a name="l00146"></a>00146 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> detail::raw_integer_t<BitsType::value, SecureType::value,
-<a name="l00147"></a>00147 Alloc> c, <span class="keywordtype">bool</span> negative): data(c, negative) { <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>)
-<a name="l00148"></a>00148 data.make_unique(); }
-<a name="l00149"></a>00149 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00150"></a>00150 <span class="preprocessor"></span>
-<a name="l00151"></a>00151
-<a name="l00157"></a>00157 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(type) c);
-<a name="l00158"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae8aaa078191d16525cfb8c97d9f5f401">00158</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#ae8aaa078191d16525cfb8c97d9f5f401">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(type) c) {
-<a name="l00159"></a>00159 _swap(c); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00160"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a7798d6022dd3478a10b35b094347c95f">00160</a> <span class="keyword">template</span> <<span class="keyword">typename</span> Type> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7798d6022dd3478a10b35b094347c95f">operator=</a>(<span class="keyword">const</span> Type n) {
-<a name="l00161"></a>00161 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> nn(n); _swap(nn); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00162"></a>00162
-<a name="l00163"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">00163</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">operator!</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.is_zero(); }
-<a name="l00164"></a>00164 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2" title="Return the additive inverse of an integer.">operator-</a>() <span class="keyword">const</span>;
-<a name="l00165"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">00165</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">operator+</a>() { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00166"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a9c772faa5bee3403bed32e1d7c44f51b">00166</a> <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a9c772faa5bee3403bed32e1d7c44f51b">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00167"></a>00167 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1" title="The Bitwise Ones&#39; Complement (i.e. bitwise NOT) operator.">operator~</a>() <span class="keyword">const</span>;
-<a name="l00168"></a>00168
-<a name="l00169"></a>00169 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">operator+=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00170"></a>00170 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">operator-=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00171"></a>00171 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">operator*=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00172"></a>00172 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">operator/=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00173"></a>00173 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">operator%=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00174"></a>00174
-<a name="l00175"></a>00175 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">operator++</a>();
-<a name="l00176"></a>00176 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">operator--</a>();
-<a name="l00177"></a>00177 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">operator++</a>(<span class="keywordtype">int</span>);
-<a name="l00178"></a>00178 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">operator--</a>(<span class="keywordtype">int</span>);
-<a name="l00179"></a>00179
-<a name="l00180"></a>00180 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">operator&=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n);
-<a name="l00181"></a>00181 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">operator|=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n);
-<a name="l00182"></a>00182 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">operator^=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n);
-<a name="l00183"></a>00183 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005" title="Left-shift an integer by a specified number of bits.">operator<<</a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) <span class="keyword">const</span>;
-<a name="l00184"></a>00184 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8" title="Right-shift an integer by a specified number of bits.">operator>></a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) <span class="keyword">const</span>;
-<a name="l00185"></a>00185 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">operator<<=</a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift);
-<a name="l00186"></a>00186 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">operator>>=</a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift);
-<a name="l00188"></a>00188
-<a name="l00191"></a>00191 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a28c1cf2549da47e36ada1e3a2a020654" title="Tests the lowest bit of *this to determine oddness.">is_odd</a>() <span class="keyword">const</span>;
-<a name="l00192"></a>00192 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#af7d57cc73521c4d72bc853435127b790" title="Tests the lowest bit of *this to determine evenness.">is_even</a>() <span class="keyword">const</span>;
-<a name="l00193"></a>00193 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>() <span class="keyword">const</span>;
-<a name="l00194"></a>00194 <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3" title="Tests the sign of *this.">sign</a>(<span class="keywordtype">bool</span> signed_zero = <span class="keyword">false</span>) <span class="keyword">const</span>;
-<a name="l00195"></a>00195 <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6575f1fd58be6bf73145459b4b46afbb" title="Tells you roughly how large *this is.">hex_digits</a>() <span class="keyword">const</span>;
-<a name="l00197"></a>00197
-<a name="l00198"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a1c701a8337c775e18c26759d55398b58">00198</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t<BOOST_XINT_INTEGER_TYPE ></a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">divide_t</a>;
+<a name="l00147"></a>00147 Alloc> c): data(c) { <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique(); }
+<a name="l00148"></a>00148 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> detail::raw_integer_t<BitsType::value, SecureType::value,
+<a name="l00149"></a>00149 Alloc> c, <span class="keywordtype">bool</span> negative): data(c, negative) { <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>)
+<a name="l00150"></a>00150 data.make_unique(); }
+<a name="l00151"></a>00151 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00152"></a>00152 <span class="preprocessor"></span>
+<a name="l00153"></a>00153
+<a name="l00159"></a>00159 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(type) c);
+<a name="l00160"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae8aaa078191d16525cfb8c97d9f5f401">00160</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#ae8aaa078191d16525cfb8c97d9f5f401">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(type) c) {
+<a name="l00161"></a>00161 _swap(c); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00162"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a7798d6022dd3478a10b35b094347c95f">00162</a> <span class="keyword">template</span> <<span class="keyword">typename</span> Type> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7798d6022dd3478a10b35b094347c95f">operator=</a>(<span class="keyword">const</span> Type n) {
+<a name="l00163"></a>00163 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> nn(n); _swap(nn); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00164"></a>00164
+<a name="l00165"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">00165</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">operator!</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.is_zero(); }
+<a name="l00166"></a>00166 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2" title="Return the additive inverse of an integer.">operator-</a>() <span class="keyword">const</span>;
+<a name="l00167"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">00167</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">operator+</a>() { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00168"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a9c772faa5bee3403bed32e1d7c44f51b">00168</a> <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a9c772faa5bee3403bed32e1d7c44f51b">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00169"></a>00169 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1" title="The Bitwise Ones&#39; Complement (i.e. bitwise NOT) operator.">operator~</a>() <span class="keyword">const</span>;
+<a name="l00170"></a>00170
+<a name="l00171"></a>00171 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">operator+=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
+<a name="l00172"></a>00172 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">operator-=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
+<a name="l00173"></a>00173 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">operator*=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
+<a name="l00174"></a>00174 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">operator/=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
+<a name="l00175"></a>00175 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">operator%=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
+<a name="l00176"></a>00176
+<a name="l00177"></a>00177 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">operator++</a>();
+<a name="l00178"></a>00178 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">operator--</a>();
+<a name="l00179"></a>00179 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">operator++</a>(<span class="keywordtype">int</span>);
+<a name="l00180"></a>00180 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">operator--</a>(<span class="keywordtype">int</span>);
+<a name="l00181"></a>00181
+<a name="l00182"></a>00182 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">operator&=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n);
+<a name="l00183"></a>00183 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">operator|=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n);
+<a name="l00184"></a>00184 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">operator^=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n);
+<a name="l00185"></a>00185 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005" title="Left-shift an integer by a specified number of bits.">operator<<</a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) <span class="keyword">const</span>;
+<a name="l00186"></a>00186 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8" title="Right-shift an integer by a specified number of bits.">operator>></a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) <span class="keyword">const</span>;
+<a name="l00187"></a>00187 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">operator<<=</a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift);
+<a name="l00188"></a>00188 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& <a class="code" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">operator>>=</a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift);
+<a name="l00190"></a>00190
+<a name="l00193"></a>00193 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a28c1cf2549da47e36ada1e3a2a020654" title="Tests the lowest bit of *this to determine oddness.">is_odd</a>() <span class="keyword">const</span>;
+<a name="l00194"></a>00194 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#af7d57cc73521c4d72bc853435127b790" title="Tests the lowest bit of *this to determine evenness.">is_even</a>() <span class="keyword">const</span>;
+<a name="l00195"></a>00195 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>() <span class="keyword">const</span>;
+<a name="l00196"></a>00196 <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3" title="Tests the sign of *this.">sign</a>(<span class="keywordtype">bool</span> signed_zero = <span class="keyword">false</span>) <span class="keyword">const</span>;
+<a name="l00197"></a>00197 <span class="keywordtype">size_t</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6575f1fd58be6bf73145459b4b46afbb" title="Tells you roughly how large *this is.">hex_digits</a>() <span class="keyword">const</span>;
<a name="l00199"></a>00199
-<a name="l00207"></a>00207
-<a name="l00208"></a>00208 <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a45af7d644cdfe8ae95a32c7373787389" title="Calculate the value of 2e">pow2</a>(<span class="keywordtype">size_t</span> exponent);
-<a name="l00209"></a>00209 <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6f3a91f5162f991ce61e9f925817129d" title="Calculate the value of n! ">factorial</a>(<span class="keywordtype">size_t</span> n);
-<a name="l00210"></a>00210 <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00211"></a>00211 <span class="keyword">template</span> <<span class="keyword">class</span> Type> <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2" title="Generates a random integer with specific attributes.">random_by_size</a>(Type&
-<a name="l00212"></a>00212 gen, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <span class="keywordtype">bool</span> high_bit_on = <span class="keyword">false</span>, <span class="keywordtype">bool</span> low_bit_on =
-<a name="l00213"></a>00213 <span class="keyword">false</span>, <span class="keywordtype">bool</span> can_be_negative = <span class="keyword">false</span>);
-<a name="l00214"></a>00214 <span class="keyword">template</span> <<span class="keyword">class</span> Type> <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">random_prime</a>(Type& gen,
-<a name="l00215"></a>00215 <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback = <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696" title="An empty callback_t, used as a default parameter for some functions.">no_callback</a>);
-<a name="l00217"></a>00217
-<a name="l00218"></a>00218 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00219"></a>00219 <span class="preprocessor"></span>
-<a name="l00220"></a>00220
-<a name="l00221"></a>00221 <span class="keywordtype">void</span> _swap(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& s) { <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
-<a name="l00222"></a>00222 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(data, s.data); }
-<a name="l00223"></a>00223 datatype& _data() { <span class="keywordflow">return</span> data; }
-<a name="l00224"></a>00224 <span class="keyword">const</span> datatype& _data()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }
-<a name="l00225"></a>00225 <span class="keywordtype">size_t</span> _get_length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.length; }
-<a name="l00226"></a>00226 detail::digit_t _get_digit(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data[i]; }
-<a name="l00227"></a>00227 <span class="keywordtype">void</span> _make_unique() { data.make_unique(); }
-<a name="l00229"></a>00229 <span class="preprocessor"> #endif</span>
-<a name="l00230"></a>00230 <span class="preprocessor"></span>
-<a name="l00231"></a>00231 <span class="keyword">private</span>:
-<a name="l00232"></a>00232 datatype data;
-<a name="l00233"></a>00233
-<a name="l00234"></a>00234 <a class="code" href="basic__types__and__includes_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">BOOST_XINT_COPYABLE_AND_MOVABLE</a>(type)
-<a name="l00235"></a>00235 };
-<a name="l00236"></a>00236
-<a name="l00237"></a>00237 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00238"></a>00238 <span class="preprocessor"></span><a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00239"></a>00239 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> BOOST_XINT_INTEGER_TYPE::Bits =
-<a name="l00240"></a>00240 BOOST_XINT_INTEGER_TYPE::BitsType::value;
-<a name="l00241"></a>00241 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00242"></a>00242 <span class="keyword">const</span> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::Threadsafe =
-<a name="l00243"></a>00243 BOOST_XINT_INTEGER_TYPE::ThreadsafeType::value;
-<a name="l00244"></a>00244 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00245"></a>00245 <span class="keyword">const</span> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::Secure =
-<a name="l00246"></a>00246 BOOST_XINT_INTEGER_TYPE::SecureType::value;
-<a name="l00247"></a>00247 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00248"></a>00248 <span class="keyword">const</span> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::Nothrow =
-<a name="l00249"></a>00249 BOOST_XINT_INTEGER_TYPE::NothrowType::value;
-<a name="l00250"></a>00250 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00251"></a>00251 <span class="preprocessor"></span>
-<a name="l00253"></a>00253 <span class="comment">// Member function template definitions</span>
-<a name="l00254"></a>00254
-<a name="l00256"></a>00256 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00257"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb">00257</a> BOOST_XINT_INTEGER_TYPE::integer_t() {
-<a name="l00258"></a>00258 <span class="comment">// Don't need to do anything, already preinitialized to zero.</span>
-<a name="l00259"></a>00259 }
-<a name="l00260"></a>00260
-<a name="l00271"></a>00271 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00272"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a6735b1926fb31c09537fb8f2bcc243ef">00272</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& b, <span class="keywordtype">bool</span>
-<a name="l00273"></a>00273 force_thread_safety)
-<a name="l00274"></a>00274 {
-<a name="l00275"></a>00275 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00276"></a>00276 <span class="keywordflow">try</span> {
-<a name="l00277"></a>00277 data = b.data;
-<a name="l00278"></a>00278 <span class="keywordflow">if</span> (!data.is_nan()) {
-<a name="l00279"></a>00279 <span class="keywordflow">if</span> (force_thread_safety && Threadsafe == <span class="keyword">false</span>) data.make_unique();
-<a name="l00280"></a>00280 }
-<a name="l00281"></a>00281 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00282"></a>00282 data.make_nan();
-<a name="l00283"></a>00283 }
-<a name="l00284"></a>00284 } <span class="keywordflow">else</span> {
-<a name="l00285"></a>00285 data = b.data;
-<a name="l00286"></a>00286 <span class="keywordflow">if</span> (force_thread_safety && Threadsafe == <span class="keyword">false</span>) data.make_unique();
-<a name="l00287"></a>00287 }
-<a name="l00288"></a>00288 }
-<a name="l00289"></a>00289
-<a name="l00291"></a>00291 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00292"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aabfdab7fc4cc16f776be0a7c8b886d68">00292</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> base) {
-<a name="l00293"></a>00293 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00294"></a>00294 <span class="keywordflow">try</span> {
-<a name="l00295"></a>00295 <span class="keywordflow">if</span> (str[0] == <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>[0] && std::string(str) == <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>) {
-<a name="l00296"></a>00296 data.make_nan();
-<a name="l00297"></a>00297 } <span class="keywordflow">else</span> {
-<a name="l00298"></a>00298 data.from_string(str, base);
-<a name="l00299"></a>00299 }
-<a name="l00300"></a>00300 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00301"></a>00301 data.make_nan();
-<a name="l00302"></a>00302 }
-<a name="l00303"></a>00303 } <span class="keywordflow">else</span> {
-<a name="l00304"></a>00304 data.from_string(str, base);
-<a name="l00305"></a>00305 }
-<a name="l00306"></a>00306 }
-<a name="l00307"></a>00307
-<a name="l00336"></a>00336 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00337"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#afc116db2b62cc68eb9b82ceb904ea187">00337</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">char</span> **endptr, <span class="keywordtype">size_t</span> base)
-<a name="l00338"></a>00338 {
-<a name="l00339"></a>00339 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00340"></a>00340 <span class="keywordflow">try</span> {
-<a name="l00341"></a>00341 <span class="keywordflow">if</span> (str[0] == <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>[0]) {
-<a name="l00342"></a>00342 std::string s(str);
-<a name="l00343"></a>00343 <span class="keywordflow">if</span> (s.substr(0, <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>.length()) == <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>) {
-<a name="l00344"></a>00344 data.make_nan();
-<a name="l00345"></a>00345 *endptr = str + <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>.length();
-<a name="l00346"></a>00346 <span class="keywordflow">return</span>;
-<a name="l00347"></a>00347 }
-<a name="l00348"></a>00348 }
-<a name="l00349"></a>00349 data.from_string(str, endptr, base);
-<a name="l00350"></a>00350 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00351"></a>00351 data.make_nan();
-<a name="l00352"></a>00352 }
-<a name="l00353"></a>00353 } <span class="keywordflow">else</span> {
-<a name="l00354"></a>00354 data.from_string(str, endptr, base);
-<a name="l00355"></a>00355 }
-<a name="l00356"></a>00356 }
-<a name="l00357"></a>00357
-<a name="l00382"></a>00382 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00383"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a75d00d3e27a38ecbf666eaa6fa6aaf5a">00383</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base) {
-<a name="l00384"></a>00384 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00385"></a>00385 <span class="keywordflow">try</span> {
-<a name="l00386"></a>00386 <span class="keywordflow">if</span> (str == <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>) data.make_nan();
-<a name="l00387"></a>00387 <span class="keywordflow">else</span> data.from_string(str, base);
-<a name="l00388"></a>00388 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00389"></a>00389 data.make_nan();
-<a name="l00390"></a>00390 }
-<a name="l00391"></a>00391 } <span class="keywordflow">else</span> {
-<a name="l00392"></a>00392 data.from_string(str, base);
-<a name="l00393"></a>00393 }
-<a name="l00394"></a>00394 }
-<a name="l00395"></a>00395
-<a name="l00417"></a>00417 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00418"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a864a599e2de326e6e339ffc820fd849e">00418</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits) {
-<a name="l00419"></a>00419 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00420"></a>00420 <span class="keywordflow">try</span> {
-<a name="l00421"></a>00421 data.from_binary(b, bits);
-<a name="l00422"></a>00422 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00423"></a>00423 data.make_nan();
-<a name="l00424"></a>00424 }
-<a name="l00425"></a>00425 } <span class="keywordflow">else</span> {
-<a name="l00426"></a>00426 data.from_binary(b, bits);
-<a name="l00427"></a>00427 }
-<a name="l00428"></a>00428 }
-<a name="l00429"></a>00429
-<a name="l00442"></a>00442 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00443"></a>00443 <a class="code" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">BOOST_XINT_OTHER_TPL</a>
-<a name="l00444"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#afcc80aaf55194eca5926d7a6d52489f0">00444</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">BOOST_XINT_OTHER_TYPE</a>& b, <span class="keywordtype">bool</span>
-<a name="l00445"></a>00445 force_thread_safety)
-<a name="l00446"></a>00446 {
-<a name="l00447"></a>00447 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00448"></a>00448 <span class="keywordflow">try</span> {
-<a name="l00449"></a>00449 <span class="keywordflow">if</span> (b.is_nan()) {
-<a name="l00450"></a>00450 data.make_nan();
-<a name="l00451"></a>00451 } <span class="keywordflow">else</span> {
-<a name="l00452"></a>00452 data = b._data();
-<a name="l00453"></a>00453 <span class="keywordflow">if</span> (!data.is_nan() && force_thread_safety && Threadsafe ==
-<a name="l00454"></a>00454 <span class="keyword">false</span>) data.make_unique();
-<a name="l00455"></a>00455 }
-<a name="l00456"></a>00456 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00457"></a>00457 data.make_nan();
-<a name="l00458"></a>00458 }
-<a name="l00459"></a>00459 } <span class="keywordflow">else</span> {
-<a name="l00460"></a>00460 <span class="keywordflow">if</span> (b._data().is_nan()) <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">exceptions::not_a_number</a>();
-<a name="l00461"></a>00461 data = b._data();
-<a name="l00462"></a>00462 <span class="keywordflow">if</span> (force_thread_safety && Threadsafe == <span class="keyword">false</span>) data.make_unique();
-<a name="l00463"></a>00463 }
-<a name="l00464"></a>00464 }
-<a name="l00465"></a>00465
-<a name="l00478"></a>00478 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00479"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ad159c2201f2cf1e1de1988cc41f8b4eb">00479</a> <span class="keyword">template</span> <<span class="keyword">typename</span> Type> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> Type n,
-<a name="l00480"></a>00480 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<Type> >::type*)
-<a name="l00481"></a>00481 {
-<a name="l00482"></a>00482 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00483"></a>00483 <span class="keywordflow">try</span> {
-<a name="l00484"></a>00484 <span class="keywordflow">if</span> (std::numeric_limits<Type>::is_signed) data.set_signed(n);
-<a name="l00485"></a>00485 <span class="keywordflow">else</span> data.set_unsigned(n);
-<a name="l00486"></a>00486 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00487"></a>00487 data.make_nan();
-<a name="l00488"></a>00488 }
-<a name="l00489"></a>00489 } <span class="keywordflow">else</span> {
-<a name="l00490"></a>00490 <span class="keywordflow">if</span> (std::numeric_limits<Type>::is_signed) data.set_signed(n);
-<a name="l00491"></a>00491 <span class="keywordflow">else</span> data.set_unsigned(n);
-<a name="l00492"></a>00492 }
-<a name="l00493"></a>00493 }
-<a name="l00494"></a>00494
-<a name="l00495"></a>00495 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00496"></a>00496 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::
-<a name="l00497"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">00497</a> operator=(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(type) c)
-<a name="l00498"></a>00498 {
-<a name="l00499"></a>00499 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00500"></a>00500 <span class="keywordflow">if</span> (c._data().is_nan()) data.make_nan();
-<a name="l00501"></a>00501 <span class="keywordflow">else</span> {
-<a name="l00502"></a>00502 <span class="keywordflow">try</span> {
-<a name="l00503"></a>00503 data = c.data;
-<a name="l00504"></a>00504 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00505"></a>00505 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00506"></a>00506 data.make_nan();
-<a name="l00507"></a>00507 }
-<a name="l00508"></a>00508 }
-<a name="l00509"></a>00509 } <span class="keywordflow">else</span> {
-<a name="l00510"></a>00510 data = c.data;
-<a name="l00511"></a>00511 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00512"></a>00512 }
-<a name="l00513"></a>00513 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00514"></a>00514 }
-<a name="l00515"></a>00515
-<a name="l00524"></a>00524 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00525"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1">00525</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::operator~()<span class="keyword"> const </span>{
-<a name="l00526"></a>00526 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00527"></a>00527 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00528"></a>00528 <span class="keywordflow">try</span> {
-<a name="l00529"></a>00529 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(~data);
-<a name="l00530"></a>00530 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00531"></a>00531 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00532"></a>00532 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00533"></a>00533 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00534"></a>00534 }
-<a name="l00535"></a>00535 } <span class="keywordflow">else</span> {
-<a name="l00536"></a>00536 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(~data);
-<a name="l00537"></a>00537 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00538"></a>00538 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00539"></a>00539 }
-<a name="l00540"></a>00540 }
-<a name="l00541"></a>00541
-<a name="l00548"></a>00548 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00549"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2">00549</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">BOOST_XINT_INTEGER_TYPE::operator-</a>()<span class="keyword"> const </span>{
-<a name="l00550"></a>00550 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00551"></a>00551 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00552"></a>00552 <span class="keywordflow">try</span> {
-<a name="l00553"></a>00553 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(*<span class="keyword">this</span>);
-<a name="l00554"></a>00554 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00555"></a>00555 r.data = -r.data;
-<a name="l00556"></a>00556 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00557"></a>00557 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00558"></a>00558 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00559"></a>00559 }
-<a name="l00560"></a>00560 } <span class="keywordflow">else</span> {
-<a name="l00561"></a>00561 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(*<span class="keyword">this</span>);
-<a name="l00562"></a>00562 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00563"></a>00563 r.data = -r.data;
-<a name="l00564"></a>00564 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00565"></a>00565 }
-<a name="l00566"></a>00566 }
-<a name="l00567"></a>00567
-<a name="l00569"></a>00569 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00570"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">00570</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator+=(<span class="keyword">const</span>
-<a name="l00571"></a>00571 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00572"></a>00572 {
-<a name="l00573"></a>00573 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00574"></a>00574 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00575"></a>00575 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00576"></a>00576 <span class="keywordflow">try</span> {
-<a name="l00577"></a>00577 data += b.data;
-<a name="l00578"></a>00578 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00579"></a>00579 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00580"></a>00580 data.make_nan();
-<a name="l00581"></a>00581 }
-<a name="l00582"></a>00582 }
-<a name="l00583"></a>00583 } <span class="keywordflow">else</span> {
-<a name="l00584"></a>00584 data += b.data;
-<a name="l00585"></a>00585 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00586"></a>00586 }
-<a name="l00587"></a>00587 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00588"></a>00588 }
-<a name="l00589"></a>00589
-<a name="l00591"></a>00591 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00592"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">00592</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator-=(<span class="keyword">const</span>
-<a name="l00593"></a>00593 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00594"></a>00594 {
-<a name="l00595"></a>00595 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00596"></a>00596 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00597"></a>00597 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00598"></a>00598 <span class="keywordflow">try</span> {
-<a name="l00599"></a>00599 data -= b.data;
-<a name="l00600"></a>00600 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00601"></a>00601 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00602"></a>00602 data.make_nan();
-<a name="l00603"></a>00603 }
-<a name="l00604"></a>00604 }
-<a name="l00605"></a>00605 } <span class="keywordflow">else</span> {
-<a name="l00606"></a>00606 data -= b.data;
-<a name="l00607"></a>00607 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00608"></a>00608 }
-<a name="l00609"></a>00609 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00610"></a>00610 }
-<a name="l00611"></a>00611
-<a name="l00613"></a>00613 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00614"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">00614</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator*=(<span class="keyword">const</span>
-<a name="l00615"></a>00615 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00616"></a>00616 {
-<a name="l00617"></a>00617 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00618"></a>00618 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00619"></a>00619 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00620"></a>00620 <span class="keywordflow">try</span> {
-<a name="l00621"></a>00621 data *= b.data;
-<a name="l00622"></a>00622 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00623"></a>00623 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00624"></a>00624 data.make_nan();
-<a name="l00625"></a>00625 }
-<a name="l00626"></a>00626 }
-<a name="l00627"></a>00627 } <span class="keywordflow">else</span> {
-<a name="l00628"></a>00628 data *= b.data;
-<a name="l00629"></a>00629 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00630"></a>00630 }
-<a name="l00631"></a>00631 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00632"></a>00632 }
-<a name="l00633"></a>00633
-<a name="l00635"></a>00635 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00636"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">00636</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator/=(<span class="keyword">const</span>
-<a name="l00637"></a>00637 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00638"></a>00638 {
-<a name="l00639"></a>00639 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00640"></a>00640 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00641"></a>00641 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00642"></a>00642 <span class="keywordflow">try</span> {
-<a name="l00643"></a>00643 data /= b.data;
-<a name="l00644"></a>00644 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00645"></a>00645 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00646"></a>00646 data.make_nan();
-<a name="l00647"></a>00647 }
-<a name="l00648"></a>00648 }
-<a name="l00649"></a>00649 } <span class="keywordflow">else</span> {
-<a name="l00650"></a>00650 data /= b.data;
-<a name="l00651"></a>00651 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00652"></a>00652 }
-<a name="l00653"></a>00653 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00654"></a>00654 }
-<a name="l00655"></a>00655
-<a name="l00657"></a>00657 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00658"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">00658</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator%=(<span class="keyword">const</span>
-<a name="l00659"></a>00659 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00660"></a>00660 {
-<a name="l00661"></a>00661 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00662"></a>00662 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00663"></a>00663 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00664"></a>00664 <span class="keywordflow">try</span> {
-<a name="l00665"></a>00665 data %= b.data;
-<a name="l00666"></a>00666 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00667"></a>00667 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00668"></a>00668 data.make_nan();
-<a name="l00669"></a>00669 }
-<a name="l00670"></a>00670 }
-<a name="l00671"></a>00671 } <span class="keywordflow">else</span> {
-<a name="l00672"></a>00672 data %= b.data;
-<a name="l00673"></a>00673 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00674"></a>00674 }
-<a name="l00675"></a>00675 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00676"></a>00676 }
-<a name="l00677"></a>00677
-<a name="l00682"></a>00682 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00683"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">00683</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator++() {
-<a name="l00684"></a>00684 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00685"></a>00685 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00686"></a>00686 <span class="keywordflow">try</span> {
-<a name="l00687"></a>00687 ++data;
-<a name="l00688"></a>00688 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00689"></a>00689 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00690"></a>00690 data.make_nan();
-<a name="l00691"></a>00691 }
-<a name="l00692"></a>00692 }
-<a name="l00693"></a>00693 } <span class="keywordflow">else</span> {
-<a name="l00694"></a>00694 ++data;
-<a name="l00695"></a>00695 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00696"></a>00696 }
-<a name="l00697"></a>00697 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00698"></a>00698 }
-<a name="l00699"></a>00699
-<a name="l00704"></a>00704 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00705"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">00705</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator--() {
-<a name="l00706"></a>00706 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00707"></a>00707 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00708"></a>00708 <span class="keywordflow">try</span> {
-<a name="l00709"></a>00709 --data;
-<a name="l00710"></a>00710 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00711"></a>00711 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00712"></a>00712 data.make_nan();
-<a name="l00713"></a>00713 }
-<a name="l00714"></a>00714 }
-<a name="l00715"></a>00715 } <span class="keywordflow">else</span> {
-<a name="l00716"></a>00716 --data;
-<a name="l00717"></a>00717 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00718"></a>00718 }
-<a name="l00719"></a>00719 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00720"></a>00720 }
-<a name="l00721"></a>00721
-<a name="l00729"></a>00729 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00730"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a86ddf2ee74e7716528baa9a0b7e18449">00730</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::operator++(<span class="keywordtype">int</span>) {
-<a name="l00731"></a>00731 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00732"></a>00732 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00733"></a>00733 <span class="keywordflow">try</span> {
-<a name="l00734"></a>00734 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data++);
-<a name="l00735"></a>00735 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00736"></a>00736 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00737"></a>00737 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00738"></a>00738 data.make_nan();
-<a name="l00739"></a>00739 }
-<a name="l00740"></a>00740 } <span class="keywordflow">else</span> {
-<a name="l00741"></a>00741 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data++);
-<a name="l00742"></a>00742 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00743"></a>00743 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00744"></a>00744 }
-<a name="l00745"></a>00745 }
-<a name="l00746"></a>00746
-<a name="l00754"></a>00754 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00755"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adab9f000397bd8856f6b73b45e6682c3">00755</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::operator--(<span class="keywordtype">int</span>) {
-<a name="l00756"></a>00756 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00757"></a>00757 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00758"></a>00758 <span class="keywordflow">try</span> {
-<a name="l00759"></a>00759 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data--);
-<a name="l00760"></a>00760 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00761"></a>00761 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00762"></a>00762 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00763"></a>00763 data.make_nan();
-<a name="l00764"></a>00764 }
-<a name="l00765"></a>00765 } <span class="keywordflow">else</span> {
-<a name="l00766"></a>00766 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data--);
-<a name="l00767"></a>00767 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00768"></a>00768 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00769"></a>00769 }
-<a name="l00770"></a>00770 }
-<a name="l00771"></a>00771
-<a name="l00773"></a>00773 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00774"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">00774</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator&=(<span class="keyword">const</span>
-<a name="l00775"></a>00775 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
-<a name="l00776"></a>00776 {
-<a name="l00777"></a>00777 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00778"></a>00778 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
-<a name="l00779"></a>00779 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00780"></a>00780 <span class="keywordflow">try</span> {
-<a name="l00781"></a>00781 data &= n.data;
-<a name="l00782"></a>00782 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00783"></a>00783 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00784"></a>00784 data.make_nan();
-<a name="l00785"></a>00785 }
-<a name="l00786"></a>00786 }
-<a name="l00787"></a>00787 } <span class="keywordflow">else</span> {
-<a name="l00788"></a>00788 data &= n.data;
-<a name="l00789"></a>00789 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00790"></a>00790 }
-<a name="l00791"></a>00791 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00792"></a>00792 }
-<a name="l00793"></a>00793
-<a name="l00795"></a>00795 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00796"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">00796</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator|=(<span class="keyword">const</span>
-<a name="l00797"></a>00797 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
-<a name="l00798"></a>00798 {
-<a name="l00799"></a>00799 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00800"></a>00800 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
-<a name="l00801"></a>00801 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00802"></a>00802 <span class="keywordflow">try</span> {
-<a name="l00803"></a>00803 data |= n.data;
-<a name="l00804"></a>00804 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00805"></a>00805 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00806"></a>00806 data.make_nan();
-<a name="l00807"></a>00807 }
-<a name="l00808"></a>00808 }
-<a name="l00809"></a>00809 } <span class="keywordflow">else</span> {
-<a name="l00810"></a>00810 data |= n.data;
-<a name="l00811"></a>00811 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00812"></a>00812 }
-<a name="l00813"></a>00813 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00814"></a>00814 }
-<a name="l00815"></a>00815
-<a name="l00817"></a>00817 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00818"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">00818</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator^=(<span class="keyword">const</span>
-<a name="l00819"></a>00819 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
-<a name="l00820"></a>00820 {
-<a name="l00821"></a>00821 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00822"></a>00822 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
-<a name="l00823"></a>00823 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00824"></a>00824 <span class="keywordflow">try</span> {
-<a name="l00825"></a>00825 data ^= n.data;
-<a name="l00826"></a>00826 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00827"></a>00827 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00828"></a>00828 data.make_nan();
-<a name="l00829"></a>00829 }
-<a name="l00830"></a>00830 }
-<a name="l00831"></a>00831 } <span class="keywordflow">else</span> {
-<a name="l00832"></a>00832 data ^= n.data;
-<a name="l00833"></a>00833 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00834"></a>00834 }
-<a name="l00835"></a>00835 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00836"></a>00836 }
-<a name="l00837"></a>00837
-<a name="l00846"></a>00846 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00847"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005">00847</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">BOOST_XINT_INTEGER_TYPE::operator<<</a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift)<span class="keyword"></span>
-<a name="l00848"></a>00848 <span class="keyword"> const</span>
-<a name="l00849"></a>00849 <span class="keyword"></span>{
-<a name="l00850"></a>00850 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00851"></a>00851 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00852"></a>00852 <span class="keywordflow">try</span> {
-<a name="l00853"></a>00853 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data << shift);
-<a name="l00854"></a>00854 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00855"></a>00855 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00856"></a>00856 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00857"></a>00857 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00858"></a>00858 }
-<a name="l00859"></a>00859 } <span class="keywordflow">else</span> {
-<a name="l00860"></a>00860 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data << shift);
-<a name="l00861"></a>00861 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00862"></a>00862 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00863"></a>00863 }
-<a name="l00864"></a>00864 }
-<a name="l00865"></a>00865
-<a name="l00874"></a>00874 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00875"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8">00875</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">BOOST_XINT_INTEGER_TYPE::operator>></a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift)<span class="keyword"></span>
-<a name="l00876"></a>00876 <span class="keyword"> const</span>
-<a name="l00877"></a>00877 <span class="keyword"></span>{
-<a name="l00878"></a>00878 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00879"></a>00879 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00880"></a>00880 <span class="keywordflow">try</span> {
-<a name="l00881"></a>00881 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data >> shift);
-<a name="l00882"></a>00882 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00883"></a>00883 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00884"></a>00884 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00885"></a>00885 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00886"></a>00886 }
-<a name="l00887"></a>00887 } <span class="keywordflow">else</span> {
-<a name="l00888"></a>00888 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data >> shift);
-<a name="l00889"></a>00889 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00890"></a>00890 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00891"></a>00891 }
-<a name="l00892"></a>00892 }
-<a name="l00893"></a>00893
-<a name="l00895"></a>00895 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00896"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">00896</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator<<=(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) {
-<a name="l00897"></a>00897 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00898"></a>00898 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00899"></a>00899 <span class="keywordflow">try</span> {
-<a name="l00900"></a>00900 data <<= shift;
-<a name="l00901"></a>00901 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00902"></a>00902 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00903"></a>00903 data.make_nan();
-<a name="l00904"></a>00904 }
-<a name="l00905"></a>00905 }
-<a name="l00906"></a>00906 } <span class="keywordflow">else</span> {
-<a name="l00907"></a>00907 data <<= shift;
-<a name="l00908"></a>00908 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00909"></a>00909 }
-<a name="l00910"></a>00910 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00911"></a>00911 }
-<a name="l00912"></a>00912
-<a name="l00914"></a>00914 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00915"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">00915</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator>>=(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) {
-<a name="l00916"></a>00916 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00917"></a>00917 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
-<a name="l00918"></a>00918 <span class="keywordflow">try</span> {
-<a name="l00919"></a>00919 data >>= shift;
-<a name="l00920"></a>00920 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00921"></a>00921 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00922"></a>00922 data.make_nan();
-<a name="l00923"></a>00923 }
-<a name="l00924"></a>00924 }
-<a name="l00925"></a>00925 } <span class="keywordflow">else</span> {
-<a name="l00926"></a>00926 data >>= shift;
-<a name="l00927"></a>00927 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00928"></a>00928 }
-<a name="l00929"></a>00929 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00930"></a>00930 }
-<a name="l00931"></a>00931
-<a name="l00939"></a>00939 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00940"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a28c1cf2549da47e36ada1e3a2a020654">00940</a> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::is_odd()<span class="keyword"> const </span>{
-<a name="l00941"></a>00941 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00942"></a>00942 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00943"></a>00943 <span class="keywordflow">return</span> data.is_odd();
-<a name="l00944"></a>00944 } <span class="keywordflow">else</span> {
-<a name="l00945"></a>00945 <span class="keywordflow">return</span> data.is_odd();
-<a name="l00946"></a>00946 }
-<a name="l00947"></a>00947 }
-<a name="l00948"></a>00948
-<a name="l00956"></a>00956 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00957"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#af7d57cc73521c4d72bc853435127b790">00957</a> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::is_even()<span class="keyword"> const </span>{
-<a name="l00958"></a>00958 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00959"></a>00959 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l00960"></a>00960 <span class="keywordflow">return</span> data.is_even();
-<a name="l00961"></a>00961 } <span class="keywordflow">else</span> {
-<a name="l00962"></a>00962 <span class="keywordflow">return</span> data.is_even();
-<a name="l00963"></a>00963 }
-<a name="l00964"></a>00964 }
-<a name="l00965"></a>00965
-<a name="l00977"></a>00977 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00978"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5">00978</a> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::is_nan()<span class="keyword"> const </span>{
-<a name="l00979"></a>00979 <span class="keywordflow">return</span> data.is_nan();
-<a name="l00980"></a>00980 }
-<a name="l00981"></a>00981
-<a name="l00993"></a>00993 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00994"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3">00994</a> <span class="keywordtype">int</span> BOOST_XINT_INTEGER_TYPE::sign(<span class="keywordtype">bool</span> signed_zero)<span class="keyword"> const </span>{
-<a name="l00995"></a>00995 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00996"></a>00996 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> 0;
-<a name="l00997"></a>00997 <span class="keywordflow">try</span> {
-<a name="l00998"></a>00998 <span class="keywordflow">return</span> data.sign(signed_zero);
-<a name="l00999"></a>00999 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01000"></a>01000 <span class="keywordflow">return</span> 0;
-<a name="l01001"></a>01001 }
-<a name="l01002"></a>01002 } <span class="keywordflow">else</span> {
-<a name="l01003"></a>01003 <span class="keywordflow">return</span> data.sign(signed_zero);
-<a name="l01004"></a>01004 }
-<a name="l01005"></a>01005 }
-<a name="l01006"></a>01006
-<a name="l01014"></a>01014 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01015"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a6575f1fd58be6bf73145459b4b46afbb">01015</a> <span class="keywordtype">size_t</span> BOOST_XINT_INTEGER_TYPE::hex_digits()<span class="keyword"> const </span>{
-<a name="l01016"></a>01016 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01017"></a>01017 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> 0;
-<a name="l01018"></a>01018 <span class="keywordflow">try</span> {
-<a name="l01019"></a>01019 <span class="keywordflow">return</span> data.hex_digits();
-<a name="l01020"></a>01020 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01021"></a>01021 <span class="keywordflow">return</span> 0;
-<a name="l01022"></a>01022 }
-<a name="l01023"></a>01023 } <span class="keywordflow">else</span> {
-<a name="l01024"></a>01024 <span class="keywordflow">return</span> data.hex_digits();
-<a name="l01025"></a>01025 }
-<a name="l01026"></a>01026 }
-<a name="l01027"></a>01027
-<a name="l01041"></a>01041 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01042"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a45af7d644cdfe8ae95a32c7373787389">01042</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::pow2(<span class="keywordtype">size_t</span> exponent) {
-<a name="l01043"></a>01043 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01044"></a>01044 <span class="keywordflow">try</span> {
-<a name="l01045"></a>01045 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01046"></a>01046 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a45af7d644cdfe8ae95a32c7373787389" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
-<a name="l01047"></a>01047 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01048"></a>01048 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01049"></a>01049 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01050"></a>01050 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l01051"></a>01051 }
-<a name="l01052"></a>01052 } <span class="keywordflow">else</span> {
-<a name="l01053"></a>01053 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01054"></a>01054 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a45af7d644cdfe8ae95a32c7373787389" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
-<a name="l01055"></a>01055 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01056"></a>01056 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01057"></a>01057 }
-<a name="l01058"></a>01058 }
-<a name="l01059"></a>01059
-<a name="l01073"></a>01073 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01074"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a6f3a91f5162f991ce61e9f925817129d">01074</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::factorial(<span class="keywordtype">size_t</span> n) {
-<a name="l01075"></a>01075 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01076"></a>01076 <span class="keywordflow">try</span> {
-<a name="l01077"></a>01077 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01078"></a>01078 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6f3a91f5162f991ce61e9f925817129d" title="Calculate the value of n! ">detail::factorial</a>(r.data, n);
-<a name="l01079"></a>01079 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01080"></a>01080 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01081"></a>01081 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01082"></a>01082 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l01083"></a>01083 }
-<a name="l01084"></a>01084 } <span class="keywordflow">else</span> {
-<a name="l01085"></a>01085 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01086"></a>01086 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6f3a91f5162f991ce61e9f925817129d" title="Calculate the value of n! ">detail::factorial</a>(r.data, n);
-<a name="l01087"></a>01087 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01088"></a>01088 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01089"></a>01089 }
-<a name="l01090"></a>01090 }
-<a name="l01091"></a>01091
-<a name="l01105"></a>01105 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01106"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1">01106</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::nan() {
-<a name="l01107"></a>01107 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01108"></a>01108 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01109"></a>01109 r._data().make_nan();
-<a name="l01110"></a>01110 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01111"></a>01111 } <span class="keywordflow">else</span> {
-<a name="l01112"></a>01112 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">exceptions::not_a_number</a>();
-<a name="l01113"></a>01113 }
-<a name="l01114"></a>01114 }
-<a name="l01115"></a>01115
-<a name="l01138"></a>01138 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01139"></a>01139 <span class="keyword">template</span> <<span class="keyword">class</span> Type>
-<a name="l01140"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2">01140</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::random_by_size(Type& gen,
-<a name="l01141"></a>01141 <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <span class="keywordtype">bool</span> high_bit_on, <span class="keywordtype">bool</span> low_bit_on, <span class="keywordtype">bool</span>
-<a name="l01142"></a>01142 can_be_negative)
-<a name="l01143"></a>01143 {
-<a name="l01144"></a>01144 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01145"></a>01145 <span class="keywordflow">try</span> {
-<a name="l01146"></a>01146 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen, size_in_bits, high_bit_on,
-<a name="l01147"></a>01147 low_bit_on, can_be_negative);
-<a name="l01148"></a>01148 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01149"></a>01149 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l01150"></a>01150 }
-<a name="l01151"></a>01151 } <span class="keywordflow">else</span> {
-<a name="l01152"></a>01152 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen, size_in_bits, high_bit_on,
-<a name="l01153"></a>01153 low_bit_on, can_be_negative);
-<a name="l01154"></a>01154 }
-<a name="l01155"></a>01155 }
-<a name="l01156"></a>01156
-<a name="l01184"></a>01184 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01185"></a>01185 <span class="keyword">template</span> <<span class="keyword">class</span> Type>
-<a name="l01186"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02">01186</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::random_prime(Type& gen,
-<a name="l01187"></a>01187 <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback)
-<a name="l01188"></a>01188 {
-<a name="l01189"></a>01189 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01190"></a>01190 <span class="keywordflow">try</span> {
-<a name="l01191"></a>01191 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen, size_in_bits, callback);
-<a name="l01192"></a>01192 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01193"></a>01193 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l01194"></a>01194 }
-<a name="l01195"></a>01195 } <span class="keywordflow">else</span> {
-<a name="l01196"></a>01196 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen, size_in_bits, callback);
-<a name="l01197"></a>01197 }
-<a name="l01198"></a>01198 }
-<a name="l01199"></a>01199
-<a name="l01201"></a>01201 <span class="comment">// Free function template definitions</span>
-<a name="l01207"></a>01207 <span class="comment"></span>
-<a name="l01208"></a>01208
-<a name="l01217"></a>01217 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01218"></a><a class="code" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523">01218</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523" title="Returns the absolute value of an integer.">abs</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l01219"></a>01219 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01220"></a>01220 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01221"></a>01221 <span class="keywordflow">try</span> {
-<a name="l01222"></a>01222 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n._data().abs());
-<a name="l01223"></a>01223 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01224"></a>01224 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01225"></a>01225 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01226"></a>01226 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01227"></a>01227 }
-<a name="l01228"></a>01228 } <span class="keywordflow">else</span> {
-<a name="l01229"></a>01229 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n._data().abs());
-<a name="l01230"></a>01230 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01231"></a>01231 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01232"></a>01232 }
-<a name="l01233"></a>01233 }
-<a name="l01234"></a>01234
-<a name="l01253"></a>01253 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01254"></a><a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4">01254</a> <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>
-<a name="l01255"></a>01255 dividend, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> divisor)
-<a name="l01256"></a>01256 {
-<a name="l01257"></a>01257 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01258"></a>01258 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span> <span class="keyword">typename</span>
-<a name="l01259"></a>01259 BOOST_XINT_INTEGER_TYPE::divide_t(BOOST_XINT_INTEGER_TYPE::nan(),
-<a name="l01260"></a>01260 BOOST_XINT_INTEGER_TYPE::nan());
-<a name="l01261"></a>01261 <span class="keywordflow">try</span> {
-<a name="l01262"></a>01262 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::datatype::divide_t rr =
-<a name="l01263"></a>01263 <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
-<a name="l01264"></a>01264 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t r(rr.quotient,
-<a name="l01265"></a>01265 rr.remainder);
-<a name="l01266"></a>01266 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01267"></a>01267 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01268"></a>01268 <span class="keywordflow">return</span> <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t(
-<a name="l01269"></a>01269 BOOST_XINT_INTEGER_TYPE::nan(), BOOST_XINT_INTEGER_TYPE::nan());
-<a name="l01270"></a>01270 }
-<a name="l01271"></a>01271 } <span class="keywordflow">else</span> {
-<a name="l01272"></a>01272 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::datatype::divide_t rr =
-<a name="l01273"></a>01273 <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
-<a name="l01274"></a>01274 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t r(rr.quotient, rr.remainder);
-<a name="l01275"></a>01275 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01276"></a>01276 }
-<a name="l01277"></a>01277 }
-<a name="l01279"></a>01279
-<a name="l01285"></a>01285
-<a name="l01286"></a>01286
-<a name="l01298"></a>01298 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01299"></a><a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424">01299</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">square</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l01300"></a>01300 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01301"></a>01301 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01302"></a>01302 <span class="keywordflow">try</span> {
-<a name="l01303"></a>01303 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">detail::square</a>(n._data());
-<a name="l01304"></a>01304 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01305"></a>01305 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01306"></a>01306 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01307"></a>01307 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01308"></a>01308 }
-<a name="l01309"></a>01309 } <span class="keywordflow">else</span> {
-<a name="l01310"></a>01310 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">detail::square</a>(n._data());
-<a name="l01311"></a>01311 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01312"></a>01312 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01313"></a>01313 }
-<a name="l01314"></a>01314 }
-<a name="l01315"></a>01315
-<a name="l01324"></a>01324 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01325"></a><a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52">01325</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01326"></a>01326 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> e)
-<a name="l01327"></a>01327 {
-<a name="l01328"></a>01328 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01329"></a>01329 <span class="keywordflow">if</span> (n.is_nan() || e.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01330"></a>01330 <span class="keywordflow">try</span> {
-<a name="l01331"></a>01331 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01332"></a>01332 <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
-<a name="l01333"></a>01333 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01334"></a>01334 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01335"></a>01335 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01336"></a>01336 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01337"></a>01337 }
-<a name="l01338"></a>01338 } <span class="keywordflow">else</span> {
-<a name="l01339"></a>01339 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01340"></a>01340 <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
-<a name="l01341"></a>01341 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01342"></a>01342 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01343"></a>01343 }
-<a name="l01344"></a>01344 }
-<a name="l01345"></a>01345
-<a name="l01358"></a>01358 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01359"></a><a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2">01359</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l01360"></a>01360 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01361"></a>01361 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01362"></a>01362 <span class="keywordflow">try</span> {
-<a name="l01363"></a>01363 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(n._data());
-<a name="l01364"></a>01364 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01365"></a>01365 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01366"></a>01366 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01367"></a>01367 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01368"></a>01368 }
-<a name="l01369"></a>01369 } <span class="keywordflow">else</span> {
-<a name="l01370"></a>01370 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(n._data());
-<a name="l01371"></a>01371 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01372"></a>01372 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01373"></a>01373 }
-<a name="l01374"></a>01374 }
-<a name="l01376"></a>01376
-<a name="l01382"></a>01382
-<a name="l01383"></a>01383
-<a name="l01396"></a>01396 <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3, <span class="keyword">class</span> A4>
-<a name="l01397"></a><a class="code" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69">01397</a> T <a class="code" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69" title="Converts an xint::integer type to a built-in integer type.">to</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l01398"></a>01398 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01399"></a>01399 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> T(0);
-<a name="l01400"></a>01400 <span class="keywordflow">try</span> {
-<a name="l01401"></a>01401 <span class="keywordflow">return</span> to<T>(n._data());
-<a name="l01402"></a>01402 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01403"></a>01403 <span class="keywordflow">return</span> T(0);
-<a name="l01404"></a>01404 }
-<a name="l01405"></a>01405 } <span class="keywordflow">else</span> {
-<a name="l01406"></a>01406 <span class="keywordflow">return</span> to<T>(n._data());
-<a name="l01407"></a>01407 }
-<a name="l01408"></a>01408 }
-<a name="l01409"></a>01409
-<a name="l01430"></a>01430 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01431"></a><a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2">01431</a> std::string <a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2" title="Creates a string representation of the specified integer.">to_string</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keywordtype">size_t</span> base = 10, <span class="keywordtype">bool</span>
-<a name="l01432"></a>01432 uppercase = <span class="keyword">false</span>)
-<a name="l01433"></a>01433 {
-<a name="l01434"></a>01434 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01435"></a>01435 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>;
-<a name="l01436"></a>01436 <span class="keywordflow">try</span> {
-<a name="l01437"></a>01437 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2" title="Creates a string representation of the specified integer.">to_string</a>(n._data(), base, uppercase);
-<a name="l01438"></a>01438 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01439"></a>01439 <span class="keywordflow">return</span> std::string();
-<a name="l01440"></a>01440 }
-<a name="l01441"></a>01441 } <span class="keywordflow">else</span> {
-<a name="l01442"></a>01442 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2" title="Creates a string representation of the specified integer.">to_string</a>(n._data(), base, uppercase);
-<a name="l01443"></a>01443 }
-<a name="l01444"></a>01444 }
-<a name="l01445"></a>01445
-<a name="l01473"></a>01473 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01474"></a><a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40">01474</a> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits = 0) {
-<a name="l01475"></a>01475 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01476"></a>01476 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a>();
-<a name="l01477"></a>01477 <span class="keywordflow">try</span> {
-<a name="l01478"></a>01478 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
-<a name="l01479"></a>01479 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01480"></a>01480 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a>();
-<a name="l01481"></a>01481 }
-<a name="l01482"></a>01482 } <span class="keywordflow">else</span> {
-<a name="l01483"></a>01483 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
-<a name="l01484"></a>01484 }
-<a name="l01485"></a>01485 }
-<a name="l01487"></a>01487
-<a name="l01490"></a>01490
-<a name="l01501"></a>01501 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01502"></a><a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba">01502</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01503"></a>01503 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01504"></a>01504 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01505"></a>01505 <span class="keywordflow">try</span> {
-<a name="l01506"></a>01506 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
-<a name="l01507"></a>01507 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01508"></a>01508 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01509"></a>01509 }
-<a name="l01510"></a>01510 } <span class="keywordflow">else</span> {
-<a name="l01511"></a>01511 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
-<a name="l01512"></a>01512 }
-<a name="l01513"></a>01513 }
-<a name="l01514"></a>01514
-<a name="l01524"></a>01524 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01525"></a><a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921">01525</a> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01526"></a>01526 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01527"></a>01527 <span class="keywordflow">if</span> (!n.is_nan()) {
-<a name="l01528"></a>01528 <span class="keywordflow">try</span> {
-<a name="l01529"></a>01529 <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
-<a name="l01530"></a>01530 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01531"></a>01531 <span class="comment">// Do nothing.</span>
-<a name="l01532"></a>01532 }
-<a name="l01533"></a>01533 }
-<a name="l01534"></a>01534 } <span class="keywordflow">else</span> {
-<a name="l01535"></a>01535 <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
-<a name="l01536"></a>01536 }
-<a name="l01537"></a>01537 }
+<a name="l00200"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a1c701a8337c775e18c26759d55398b58">00200</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t<BOOST_XINT_INTEGER_TYPE ></a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">divide_t</a>;
+<a name="l00201"></a>00201
+<a name="l00209"></a>00209
+<a name="l00210"></a>00210 <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a45af7d644cdfe8ae95a32c7373787389" title="Calculate the value of 2e">pow2</a>(<span class="keywordtype">size_t</span> exponent);
+<a name="l00211"></a>00211 <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6f3a91f5162f991ce61e9f925817129d" title="Calculate the value of n! ">factorial</a>(<span class="keywordtype">size_t</span> n);
+<a name="l00212"></a>00212 <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l00213"></a>00213 <span class="keyword">template</span> <<span class="keyword">class</span> Type> <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2" title="Generates a random integer with specific attributes.">random_by_size</a>(Type&
+<a name="l00214"></a>00214 gen, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <span class="keywordtype">bool</span> high_bit_on = <span class="keyword">false</span>, <span class="keywordtype">bool</span> low_bit_on =
+<a name="l00215"></a>00215 <span class="keyword">false</span>, <span class="keywordtype">bool</span> can_be_negative = <span class="keyword">false</span>);
+<a name="l00216"></a>00216 <span class="keyword">template</span> <<span class="keyword">class</span> Type> <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">random_prime</a>(Type& gen,
+<a name="l00217"></a>00217 <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback = <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696" title="An empty callback_t, used as a default parameter for some functions.">no_callback</a>);
+<a name="l00219"></a>00219
+<a name="l00220"></a>00220 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00221"></a>00221 <span class="preprocessor"></span>
+<a name="l00222"></a>00222
+<a name="l00223"></a>00223 <span class="keywordtype">void</span> _swap(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& s) { <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
+<a name="l00224"></a>00224 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(data, s.data); }
+<a name="l00225"></a>00225 datatype& _data() { <span class="keywordflow">return</span> data; }
+<a name="l00226"></a>00226 <span class="keyword">const</span> datatype& _data()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }
+<a name="l00227"></a>00227 <span class="keywordtype">size_t</span> _get_length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.length; }
+<a name="l00228"></a>00228 detail::digit_t _get_digit(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data[i]; }
+<a name="l00229"></a>00229 <span class="keywordtype">void</span> _make_unique() { data.make_unique(); }
+<a name="l00231"></a>00231 <span class="preprocessor"> #endif</span>
+<a name="l00232"></a>00232 <span class="preprocessor"></span>
+<a name="l00233"></a>00233 <span class="keyword">private</span>:
+<a name="l00234"></a>00234 datatype data;
+<a name="l00235"></a>00235
+<a name="l00236"></a>00236 <a class="code" href="basic__types__and__includes_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">BOOST_XINT_COPYABLE_AND_MOVABLE</a>(type)
+<a name="l00237"></a>00237 };
+<a name="l00238"></a>00238
+<a name="l00239"></a>00239 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00240"></a>00240 <span class="preprocessor"></span><a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00241"></a>00241 <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> BOOST_XINT_INTEGER_TYPE::Bits =
+<a name="l00242"></a>00242 BOOST_XINT_INTEGER_TYPE::BitsType::value;
+<a name="l00243"></a>00243 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00244"></a>00244 <span class="keyword">const</span> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::Threadsafe =
+<a name="l00245"></a>00245 BOOST_XINT_INTEGER_TYPE::ThreadsafeType::value;
+<a name="l00246"></a>00246 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00247"></a>00247 <span class="keyword">const</span> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::Secure =
+<a name="l00248"></a>00248 BOOST_XINT_INTEGER_TYPE::SecureType::value;
+<a name="l00249"></a>00249 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00250"></a>00250 <span class="keyword">const</span> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::Nothrow =
+<a name="l00251"></a>00251 BOOST_XINT_INTEGER_TYPE::NothrowType::value;
+<a name="l00252"></a>00252 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00253"></a>00253 <span class="preprocessor"></span>
+<a name="l00255"></a>00255 <span class="comment">// Member function template definitions</span>
+<a name="l00256"></a>00256
+<a name="l00258"></a>00258 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00259"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb">00259</a> BOOST_XINT_INTEGER_TYPE::integer_t() {
+<a name="l00260"></a>00260 <span class="comment">// Don't need to do anything, already preinitialized to zero.</span>
+<a name="l00261"></a>00261 }
+<a name="l00262"></a>00262
+<a name="l00273"></a>00273 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00274"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a6735b1926fb31c09537fb8f2bcc243ef">00274</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& b, <span class="keywordtype">bool</span>
+<a name="l00275"></a>00275 force_thread_safety)
+<a name="l00276"></a>00276 {
+<a name="l00277"></a>00277 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00278"></a>00278 <span class="keywordflow">try</span> {
+<a name="l00279"></a>00279 data = b.data;
+<a name="l00280"></a>00280 <span class="keywordflow">if</span> (!data.is_nan()) {
+<a name="l00281"></a>00281 <span class="keywordflow">if</span> (force_thread_safety && Threadsafe == <span class="keyword">false</span>)
+<a name="l00282"></a>00282 data.make_unique();
+<a name="l00283"></a>00283 }
+<a name="l00284"></a>00284 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00285"></a>00285 data.make_nan();
+<a name="l00286"></a>00286 }
+<a name="l00287"></a>00287 } <span class="keywordflow">else</span> {
+<a name="l00288"></a>00288 data = b.data;
+<a name="l00289"></a>00289 <span class="keywordflow">if</span> (force_thread_safety && Threadsafe == <span class="keyword">false</span>) data.make_unique();
+<a name="l00290"></a>00290 }
+<a name="l00291"></a>00291 }
+<a name="l00292"></a>00292
+<a name="l00294"></a>00294 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00295"></a>00295 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00296"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#acbb2f2d84c8da9e32be880bc81d9a4dd">00296</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> charT *str, <span class="keywordtype">size_t</span> base) {
+<a name="l00297"></a>00297 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00298"></a>00298 <span class="keywordflow">try</span> {
+<a name="l00299"></a>00299 std::basic_string<charT> tnan = detail::nan_text<charT>();
+<a name="l00300"></a>00300 <span class="keywordflow">if</span> (str[0] == tnan[0] && std::basic_string<charT>(str) == tnan) {
+<a name="l00301"></a>00301 data.make_nan();
+<a name="l00302"></a>00302 } <span class="keywordflow">else</span> {
+<a name="l00303"></a>00303 data.from_string(str, base);
+<a name="l00304"></a>00304 }
+<a name="l00305"></a>00305 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00306"></a>00306 data.make_nan();
+<a name="l00307"></a>00307 }
+<a name="l00308"></a>00308 } <span class="keywordflow">else</span> {
+<a name="l00309"></a>00309 data.from_string(str, base);
+<a name="l00310"></a>00310 }
+<a name="l00311"></a>00311 }
+<a name="l00312"></a>00312
+<a name="l00341"></a>00341 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00342"></a>00342 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00343"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a8519d7f48c8f31d72cadd51e3d448347">00343</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> charT *str, charT **endptr, <span class="keywordtype">size_t</span>
+<a name="l00344"></a>00344 base)
+<a name="l00345"></a>00345 {
+<a name="l00346"></a>00346 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00347"></a>00347 <span class="keywordflow">try</span> {
+<a name="l00348"></a>00348 std::basic_string<charT> tnan = detail::nan_text<charT>();
+<a name="l00349"></a>00349 <span class="keywordflow">if</span> (str[0] == tnan[0]) {
+<a name="l00350"></a>00350 std::basic_string<charT> s(str);
+<a name="l00351"></a>00351 <span class="keywordflow">if</span> (s.substr(0, tnan.length()) == tnan) {
+<a name="l00352"></a>00352 data.make_nan();
+<a name="l00353"></a>00353 *endptr = str + tnan.length();
+<a name="l00354"></a>00354 <span class="keywordflow">return</span>;
+<a name="l00355"></a>00355 }
+<a name="l00356"></a>00356 }
+<a name="l00357"></a>00357 data.from_string(str, endptr, base);
+<a name="l00358"></a>00358 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00359"></a>00359 data.make_nan();
+<a name="l00360"></a>00360 }
+<a name="l00361"></a>00361 } <span class="keywordflow">else</span> {
+<a name="l00362"></a>00362 data.from_string(str, endptr, base);
+<a name="l00363"></a>00363 }
+<a name="l00364"></a>00364 }
+<a name="l00365"></a>00365
+<a name="l00390"></a>00390 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00391"></a>00391 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00392"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a1ae3c81960394029b823464225bc368e">00392</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> std::basic_string<charT>& str, <span class="keywordtype">size_t</span>
+<a name="l00393"></a>00393 base)
+<a name="l00394"></a>00394 {
+<a name="l00395"></a>00395 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00396"></a>00396 <span class="keywordflow">try</span> {
+<a name="l00397"></a>00397 <span class="keywordflow">if</span> (str == detail::nan_text<charT>()) data.make_nan();
+<a name="l00398"></a>00398 <span class="keywordflow">else</span> data.from_string(str, base);
+<a name="l00399"></a>00399 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00400"></a>00400 data.make_nan();
+<a name="l00401"></a>00401 }
+<a name="l00402"></a>00402 } <span class="keywordflow">else</span> {
+<a name="l00403"></a>00403 data.from_string(str, base);
+<a name="l00404"></a>00404 }
+<a name="l00405"></a>00405 }
+<a name="l00406"></a>00406
+<a name="l00428"></a>00428 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00429"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a864a599e2de326e6e339ffc820fd849e">00429</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits) {
+<a name="l00430"></a>00430 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00431"></a>00431 <span class="keywordflow">try</span> {
+<a name="l00432"></a>00432 data.from_binary(b, bits);
+<a name="l00433"></a>00433 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00434"></a>00434 data.make_nan();
+<a name="l00435"></a>00435 }
+<a name="l00436"></a>00436 } <span class="keywordflow">else</span> {
+<a name="l00437"></a>00437 data.from_binary(b, bits);
+<a name="l00438"></a>00438 }
+<a name="l00439"></a>00439 }
+<a name="l00440"></a>00440
+<a name="l00453"></a>00453 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00454"></a>00454 <a class="code" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">BOOST_XINT_OTHER_TPL</a>
+<a name="l00455"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#afcc80aaf55194eca5926d7a6d52489f0">00455</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">BOOST_XINT_OTHER_TYPE</a>& b, <span class="keywordtype">bool</span>
+<a name="l00456"></a>00456 force_thread_safety)
+<a name="l00457"></a>00457 {
+<a name="l00458"></a>00458 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00459"></a>00459 <span class="keywordflow">try</span> {
+<a name="l00460"></a>00460 <span class="keywordflow">if</span> (b.is_nan()) {
+<a name="l00461"></a>00461 data.make_nan();
+<a name="l00462"></a>00462 } <span class="keywordflow">else</span> {
+<a name="l00463"></a>00463 data = b._data();
+<a name="l00464"></a>00464 <span class="keywordflow">if</span> (!data.is_nan() && force_thread_safety && Threadsafe ==
+<a name="l00465"></a>00465 <span class="keyword">false</span>) data.make_unique();
+<a name="l00466"></a>00466 }
+<a name="l00467"></a>00467 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00468"></a>00468 data.make_nan();
+<a name="l00469"></a>00469 }
+<a name="l00470"></a>00470 } <span class="keywordflow">else</span> {
+<a name="l00471"></a>00471 <span class="keywordflow">if</span> (b._data().is_nan()) <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">exceptions::not_a_number</a>();
+<a name="l00472"></a>00472 data = b._data();
+<a name="l00473"></a>00473 <span class="keywordflow">if</span> (force_thread_safety && Threadsafe == <span class="keyword">false</span>) data.make_unique();
+<a name="l00474"></a>00474 }
+<a name="l00475"></a>00475 }
+<a name="l00476"></a>00476
+<a name="l00489"></a>00489 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00490"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ad159c2201f2cf1e1de1988cc41f8b4eb">00490</a> <span class="keyword">template</span> <<span class="keyword">typename</span> Type> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> Type n,
+<a name="l00491"></a>00491 <span class="keyword">typename</span> boost::enable_if<boost::is_integral<Type> >::type*)
+<a name="l00492"></a>00492 {
+<a name="l00493"></a>00493 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00494"></a>00494 <span class="keywordflow">try</span> {
+<a name="l00495"></a>00495 <span class="keywordflow">if</span> (std::numeric_limits<Type>::is_signed) data.set_signed(n);
+<a name="l00496"></a>00496 <span class="keywordflow">else</span> data.set_unsigned(n);
+<a name="l00497"></a>00497 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00498"></a>00498 data.make_nan();
+<a name="l00499"></a>00499 }
+<a name="l00500"></a>00500 } <span class="keywordflow">else</span> {
+<a name="l00501"></a>00501 <span class="keywordflow">if</span> (std::numeric_limits<Type>::is_signed) data.set_signed(n);
+<a name="l00502"></a>00502 <span class="keywordflow">else</span> data.set_unsigned(n);
+<a name="l00503"></a>00503 }
+<a name="l00504"></a>00504 }
+<a name="l00505"></a>00505
+<a name="l00506"></a>00506 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00507"></a>00507 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::
+<a name="l00508"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">00508</a> operator=(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(type) c)
+<a name="l00509"></a>00509 {
+<a name="l00510"></a>00510 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00511"></a>00511 <span class="keywordflow">if</span> (c._data().is_nan()) data.make_nan();
+<a name="l00512"></a>00512 <span class="keywordflow">else</span> {
+<a name="l00513"></a>00513 <span class="keywordflow">try</span> {
+<a name="l00514"></a>00514 data = c.data;
+<a name="l00515"></a>00515 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00516"></a>00516 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00517"></a>00517 data.make_nan();
+<a name="l00518"></a>00518 }
+<a name="l00519"></a>00519 }
+<a name="l00520"></a>00520 } <span class="keywordflow">else</span> {
+<a name="l00521"></a>00521 data = c.data;
+<a name="l00522"></a>00522 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00523"></a>00523 }
+<a name="l00524"></a>00524 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00525"></a>00525 }
+<a name="l00526"></a>00526
+<a name="l00535"></a>00535 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00536"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1">00536</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::operator~()<span class="keyword"> const </span>{
+<a name="l00537"></a>00537 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00538"></a>00538 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00539"></a>00539 <span class="keywordflow">try</span> {
+<a name="l00540"></a>00540 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(~data);
+<a name="l00541"></a>00541 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00542"></a>00542 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00543"></a>00543 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00544"></a>00544 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l00545"></a>00545 }
+<a name="l00546"></a>00546 } <span class="keywordflow">else</span> {
+<a name="l00547"></a>00547 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(~data);
+<a name="l00548"></a>00548 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00549"></a>00549 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00550"></a>00550 }
+<a name="l00551"></a>00551 }
+<a name="l00552"></a>00552
+<a name="l00559"></a>00559 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00560"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2">00560</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">BOOST_XINT_INTEGER_TYPE::operator-</a>()<span class="keyword"> const </span>{
+<a name="l00561"></a>00561 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00562"></a>00562 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00563"></a>00563 <span class="keywordflow">try</span> {
+<a name="l00564"></a>00564 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(*<span class="keyword">this</span>);
+<a name="l00565"></a>00565 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00566"></a>00566 r.data = -r.data;
+<a name="l00567"></a>00567 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00568"></a>00568 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00569"></a>00569 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l00570"></a>00570 }
+<a name="l00571"></a>00571 } <span class="keywordflow">else</span> {
+<a name="l00572"></a>00572 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(*<span class="keyword">this</span>);
+<a name="l00573"></a>00573 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00574"></a>00574 r.data = -r.data;
+<a name="l00575"></a>00575 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00576"></a>00576 }
+<a name="l00577"></a>00577 }
+<a name="l00578"></a>00578
+<a name="l00580"></a>00580 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00581"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">00581</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator+=(<span class="keyword">const</span>
+<a name="l00582"></a>00582 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
+<a name="l00583"></a>00583 {
+<a name="l00584"></a>00584 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00585"></a>00585 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00586"></a>00586 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00587"></a>00587 <span class="keywordflow">try</span> {
+<a name="l00588"></a>00588 data += b.data;
+<a name="l00589"></a>00589 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00590"></a>00590 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00591"></a>00591 data.make_nan();
+<a name="l00592"></a>00592 }
+<a name="l00593"></a>00593 }
+<a name="l00594"></a>00594 } <span class="keywordflow">else</span> {
+<a name="l00595"></a>00595 data += b.data;
+<a name="l00596"></a>00596 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00597"></a>00597 }
+<a name="l00598"></a>00598 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00599"></a>00599 }
+<a name="l00600"></a>00600
+<a name="l00602"></a>00602 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00603"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">00603</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator-=(<span class="keyword">const</span>
+<a name="l00604"></a>00604 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
+<a name="l00605"></a>00605 {
+<a name="l00606"></a>00606 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00607"></a>00607 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00608"></a>00608 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00609"></a>00609 <span class="keywordflow">try</span> {
+<a name="l00610"></a>00610 data -= b.data;
+<a name="l00611"></a>00611 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00612"></a>00612 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00613"></a>00613 data.make_nan();
+<a name="l00614"></a>00614 }
+<a name="l00615"></a>00615 }
+<a name="l00616"></a>00616 } <span class="keywordflow">else</span> {
+<a name="l00617"></a>00617 data -= b.data;
+<a name="l00618"></a>00618 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00619"></a>00619 }
+<a name="l00620"></a>00620 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00621"></a>00621 }
+<a name="l00622"></a>00622
+<a name="l00624"></a>00624 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00625"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">00625</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator*=(<span class="keyword">const</span>
+<a name="l00626"></a>00626 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
+<a name="l00627"></a>00627 {
+<a name="l00628"></a>00628 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00629"></a>00629 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00630"></a>00630 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00631"></a>00631 <span class="keywordflow">try</span> {
+<a name="l00632"></a>00632 data *= b.data;
+<a name="l00633"></a>00633 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00634"></a>00634 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00635"></a>00635 data.make_nan();
+<a name="l00636"></a>00636 }
+<a name="l00637"></a>00637 }
+<a name="l00638"></a>00638 } <span class="keywordflow">else</span> {
+<a name="l00639"></a>00639 data *= b.data;
+<a name="l00640"></a>00640 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00641"></a>00641 }
+<a name="l00642"></a>00642 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00643"></a>00643 }
+<a name="l00644"></a>00644
+<a name="l00646"></a>00646 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00647"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">00647</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator/=(<span class="keyword">const</span>
+<a name="l00648"></a>00648 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
+<a name="l00649"></a>00649 {
+<a name="l00650"></a>00650 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00651"></a>00651 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00652"></a>00652 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00653"></a>00653 <span class="keywordflow">try</span> {
+<a name="l00654"></a>00654 data /= b.data;
+<a name="l00655"></a>00655 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00656"></a>00656 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00657"></a>00657 data.make_nan();
+<a name="l00658"></a>00658 }
+<a name="l00659"></a>00659 }
+<a name="l00660"></a>00660 } <span class="keywordflow">else</span> {
+<a name="l00661"></a>00661 data /= b.data;
+<a name="l00662"></a>00662 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00663"></a>00663 }
+<a name="l00664"></a>00664 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00665"></a>00665 }
+<a name="l00666"></a>00666
+<a name="l00668"></a>00668 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00669"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">00669</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator%=(<span class="keyword">const</span>
+<a name="l00670"></a>00670 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
+<a name="l00671"></a>00671 {
+<a name="l00672"></a>00672 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00673"></a>00673 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00674"></a>00674 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00675"></a>00675 <span class="keywordflow">try</span> {
+<a name="l00676"></a>00676 data %= b.data;
+<a name="l00677"></a>00677 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00678"></a>00678 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00679"></a>00679 data.make_nan();
+<a name="l00680"></a>00680 }
+<a name="l00681"></a>00681 }
+<a name="l00682"></a>00682 } <span class="keywordflow">else</span> {
+<a name="l00683"></a>00683 data %= b.data;
+<a name="l00684"></a>00684 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00685"></a>00685 }
+<a name="l00686"></a>00686 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00687"></a>00687 }
+<a name="l00688"></a>00688
+<a name="l00693"></a>00693 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00694"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">00694</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator++() {
+<a name="l00695"></a>00695 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00696"></a>00696 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00697"></a>00697 <span class="keywordflow">try</span> {
+<a name="l00698"></a>00698 ++data;
+<a name="l00699"></a>00699 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00700"></a>00700 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00701"></a>00701 data.make_nan();
+<a name="l00702"></a>00702 }
+<a name="l00703"></a>00703 }
+<a name="l00704"></a>00704 } <span class="keywordflow">else</span> {
+<a name="l00705"></a>00705 ++data;
+<a name="l00706"></a>00706 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00707"></a>00707 }
+<a name="l00708"></a>00708 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00709"></a>00709 }
+<a name="l00710"></a>00710
+<a name="l00715"></a>00715 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00716"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">00716</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator--() {
+<a name="l00717"></a>00717 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00718"></a>00718 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00719"></a>00719 <span class="keywordflow">try</span> {
+<a name="l00720"></a>00720 --data;
+<a name="l00721"></a>00721 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00722"></a>00722 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00723"></a>00723 data.make_nan();
+<a name="l00724"></a>00724 }
+<a name="l00725"></a>00725 }
+<a name="l00726"></a>00726 } <span class="keywordflow">else</span> {
+<a name="l00727"></a>00727 --data;
+<a name="l00728"></a>00728 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00729"></a>00729 }
+<a name="l00730"></a>00730 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00731"></a>00731 }
+<a name="l00732"></a>00732
+<a name="l00740"></a>00740 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00741"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a86ddf2ee74e7716528baa9a0b7e18449">00741</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::operator++(<span class="keywordtype">int</span>) {
+<a name="l00742"></a>00742 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00743"></a>00743 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00744"></a>00744 <span class="keywordflow">try</span> {
+<a name="l00745"></a>00745 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data++);
+<a name="l00746"></a>00746 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
+<a name="l00747"></a>00747 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00748"></a>00748 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00749"></a>00749 data.make_nan();
+<a name="l00750"></a>00750 }
+<a name="l00751"></a>00751 } <span class="keywordflow">else</span> {
+<a name="l00752"></a>00752 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data++);
+<a name="l00753"></a>00753 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
+<a name="l00754"></a>00754 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00755"></a>00755 }
+<a name="l00756"></a>00756 }
+<a name="l00757"></a>00757
+<a name="l00765"></a>00765 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00766"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adab9f000397bd8856f6b73b45e6682c3">00766</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::operator--(<span class="keywordtype">int</span>) {
+<a name="l00767"></a>00767 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00768"></a>00768 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00769"></a>00769 <span class="keywordflow">try</span> {
+<a name="l00770"></a>00770 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data--);
+<a name="l00771"></a>00771 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
+<a name="l00772"></a>00772 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00773"></a>00773 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00774"></a>00774 data.make_nan();
+<a name="l00775"></a>00775 }
+<a name="l00776"></a>00776 } <span class="keywordflow">else</span> {
+<a name="l00777"></a>00777 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data--);
+<a name="l00778"></a>00778 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
+<a name="l00779"></a>00779 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00780"></a>00780 }
+<a name="l00781"></a>00781 }
+<a name="l00782"></a>00782
+<a name="l00784"></a>00784 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00785"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">00785</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator&=(<span class="keyword">const</span>
+<a name="l00786"></a>00786 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
+<a name="l00787"></a>00787 {
+<a name="l00788"></a>00788 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00789"></a>00789 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
+<a name="l00790"></a>00790 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00791"></a>00791 <span class="keywordflow">try</span> {
+<a name="l00792"></a>00792 data &= n.data;
+<a name="l00793"></a>00793 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00794"></a>00794 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00795"></a>00795 data.make_nan();
+<a name="l00796"></a>00796 }
+<a name="l00797"></a>00797 }
+<a name="l00798"></a>00798 } <span class="keywordflow">else</span> {
+<a name="l00799"></a>00799 data &= n.data;
+<a name="l00800"></a>00800 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00801"></a>00801 }
+<a name="l00802"></a>00802 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00803"></a>00803 }
+<a name="l00804"></a>00804
+<a name="l00806"></a>00806 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00807"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">00807</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator|=(<span class="keyword">const</span>
+<a name="l00808"></a>00808 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
+<a name="l00809"></a>00809 {
+<a name="l00810"></a>00810 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00811"></a>00811 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
+<a name="l00812"></a>00812 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00813"></a>00813 <span class="keywordflow">try</span> {
+<a name="l00814"></a>00814 data |= n.data;
+<a name="l00815"></a>00815 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00816"></a>00816 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00817"></a>00817 data.make_nan();
+<a name="l00818"></a>00818 }
+<a name="l00819"></a>00819 }
+<a name="l00820"></a>00820 } <span class="keywordflow">else</span> {
+<a name="l00821"></a>00821 data |= n.data;
+<a name="l00822"></a>00822 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00823"></a>00823 }
+<a name="l00824"></a>00824 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00825"></a>00825 }
+<a name="l00826"></a>00826
+<a name="l00828"></a>00828 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00829"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">00829</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator^=(<span class="keyword">const</span>
+<a name="l00830"></a>00830 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
+<a name="l00831"></a>00831 {
+<a name="l00832"></a>00832 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00833"></a>00833 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
+<a name="l00834"></a>00834 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00835"></a>00835 <span class="keywordflow">try</span> {
+<a name="l00836"></a>00836 data ^= n.data;
+<a name="l00837"></a>00837 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00838"></a>00838 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00839"></a>00839 data.make_nan();
+<a name="l00840"></a>00840 }
+<a name="l00841"></a>00841 }
+<a name="l00842"></a>00842 } <span class="keywordflow">else</span> {
+<a name="l00843"></a>00843 data ^= n.data;
+<a name="l00844"></a>00844 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00845"></a>00845 }
+<a name="l00846"></a>00846 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00847"></a>00847 }
+<a name="l00848"></a>00848
+<a name="l00857"></a>00857 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00858"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005">00858</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">BOOST_XINT_INTEGER_TYPE::operator<<</a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift)<span class="keyword"></span>
+<a name="l00859"></a>00859 <span class="keyword"> const</span>
+<a name="l00860"></a>00860 <span class="keyword"></span>{
+<a name="l00861"></a>00861 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00862"></a>00862 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00863"></a>00863 <span class="keywordflow">try</span> {
+<a name="l00864"></a>00864 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data << shift);
+<a name="l00865"></a>00865 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00866"></a>00866 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00867"></a>00867 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00868"></a>00868 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l00869"></a>00869 }
+<a name="l00870"></a>00870 } <span class="keywordflow">else</span> {
+<a name="l00871"></a>00871 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data << shift);
+<a name="l00872"></a>00872 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00873"></a>00873 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00874"></a>00874 }
+<a name="l00875"></a>00875 }
+<a name="l00876"></a>00876
+<a name="l00885"></a>00885 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00886"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8">00886</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">BOOST_XINT_INTEGER_TYPE::operator>></a>(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift)<span class="keyword"></span>
+<a name="l00887"></a>00887 <span class="keyword"> const</span>
+<a name="l00888"></a>00888 <span class="keyword"></span>{
+<a name="l00889"></a>00889 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00890"></a>00890 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00891"></a>00891 <span class="keywordflow">try</span> {
+<a name="l00892"></a>00892 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data >> shift);
+<a name="l00893"></a>00893 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00894"></a>00894 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00895"></a>00895 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00896"></a>00896 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l00897"></a>00897 }
+<a name="l00898"></a>00898 } <span class="keywordflow">else</span> {
+<a name="l00899"></a>00899 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data >> shift);
+<a name="l00900"></a>00900 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00901"></a>00901 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00902"></a>00902 }
+<a name="l00903"></a>00903 }
+<a name="l00904"></a>00904
+<a name="l00906"></a>00906 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00907"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">00907</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator<<=(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) {
+<a name="l00908"></a>00908 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00909"></a>00909 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00910"></a>00910 <span class="keywordflow">try</span> {
+<a name="l00911"></a>00911 data <<= shift;
+<a name="l00912"></a>00912 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00913"></a>00913 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00914"></a>00914 data.make_nan();
+<a name="l00915"></a>00915 }
+<a name="l00916"></a>00916 }
+<a name="l00917"></a>00917 } <span class="keywordflow">else</span> {
+<a name="l00918"></a>00918 data <<= shift;
+<a name="l00919"></a>00919 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00920"></a>00920 }
+<a name="l00921"></a>00921 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00922"></a>00922 }
+<a name="l00923"></a>00923
+<a name="l00925"></a>00925 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00926"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">00926</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& BOOST_XINT_INTEGER_TYPE::operator>>=(<a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) {
+<a name="l00927"></a>00927 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00928"></a>00928 <span class="keywordflow">if</span> (!<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) {
+<a name="l00929"></a>00929 <span class="keywordflow">try</span> {
+<a name="l00930"></a>00930 data >>= shift;
+<a name="l00931"></a>00931 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00932"></a>00932 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00933"></a>00933 data.make_nan();
+<a name="l00934"></a>00934 }
+<a name="l00935"></a>00935 }
+<a name="l00936"></a>00936 } <span class="keywordflow">else</span> {
+<a name="l00937"></a>00937 data >>= shift;
+<a name="l00938"></a>00938 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00939"></a>00939 }
+<a name="l00940"></a>00940 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00941"></a>00941 }
+<a name="l00942"></a>00942
+<a name="l00950"></a>00950 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00951"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a28c1cf2549da47e36ada1e3a2a020654">00951</a> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::is_odd()<span class="keyword"> const </span>{
+<a name="l00952"></a>00952 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00953"></a>00953 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00954"></a>00954 <span class="keywordflow">return</span> data.is_odd();
+<a name="l00955"></a>00955 } <span class="keywordflow">else</span> {
+<a name="l00956"></a>00956 <span class="keywordflow">return</span> data.is_odd();
+<a name="l00957"></a>00957 }
+<a name="l00958"></a>00958 }
+<a name="l00959"></a>00959
+<a name="l00967"></a>00967 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00968"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#af7d57cc73521c4d72bc853435127b790">00968</a> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::is_even()<span class="keyword"> const </span>{
+<a name="l00969"></a>00969 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00970"></a>00970 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l00971"></a>00971 <span class="keywordflow">return</span> data.is_even();
+<a name="l00972"></a>00972 } <span class="keywordflow">else</span> {
+<a name="l00973"></a>00973 <span class="keywordflow">return</span> data.is_even();
+<a name="l00974"></a>00974 }
+<a name="l00975"></a>00975 }
+<a name="l00976"></a>00976
+<a name="l00988"></a>00988 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l00989"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5">00989</a> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::is_nan()<span class="keyword"> const </span>{
+<a name="l00990"></a>00990 <span class="keywordflow">return</span> data.is_nan();
+<a name="l00991"></a>00991 }
+<a name="l00992"></a>00992
+<a name="l01004"></a>01004 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01005"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3">01005</a> <span class="keywordtype">int</span> BOOST_XINT_INTEGER_TYPE::sign(<span class="keywordtype">bool</span> signed_zero)<span class="keyword"> const </span>{
+<a name="l01006"></a>01006 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01007"></a>01007 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> 0;
+<a name="l01008"></a>01008 <span class="keywordflow">try</span> {
+<a name="l01009"></a>01009 <span class="keywordflow">return</span> data.sign(signed_zero);
+<a name="l01010"></a>01010 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01011"></a>01011 <span class="keywordflow">return</span> 0;
+<a name="l01012"></a>01012 }
+<a name="l01013"></a>01013 } <span class="keywordflow">else</span> {
+<a name="l01014"></a>01014 <span class="keywordflow">return</span> data.sign(signed_zero);
+<a name="l01015"></a>01015 }
+<a name="l01016"></a>01016 }
+<a name="l01017"></a>01017
+<a name="l01025"></a>01025 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01026"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a6575f1fd58be6bf73145459b4b46afbb">01026</a> <span class="keywordtype">size_t</span> BOOST_XINT_INTEGER_TYPE::hex_digits()<span class="keyword"> const </span>{
+<a name="l01027"></a>01027 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01028"></a>01028 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>()) <span class="keywordflow">return</span> 0;
+<a name="l01029"></a>01029 <span class="keywordflow">try</span> {
+<a name="l01030"></a>01030 <span class="keywordflow">return</span> data.hex_digits();
+<a name="l01031"></a>01031 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01032"></a>01032 <span class="keywordflow">return</span> 0;
+<a name="l01033"></a>01033 }
+<a name="l01034"></a>01034 } <span class="keywordflow">else</span> {
+<a name="l01035"></a>01035 <span class="keywordflow">return</span> data.hex_digits();
+<a name="l01036"></a>01036 }
+<a name="l01037"></a>01037 }
+<a name="l01038"></a>01038
+<a name="l01052"></a>01052 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01053"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a45af7d644cdfe8ae95a32c7373787389">01053</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::pow2(<span class="keywordtype">size_t</span> exponent) {
+<a name="l01054"></a>01054 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01055"></a>01055 <span class="keywordflow">try</span> {
+<a name="l01056"></a>01056 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l01057"></a>01057 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a45af7d644cdfe8ae95a32c7373787389" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
+<a name="l01058"></a>01058 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01059"></a>01059 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01060"></a>01060 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01061"></a>01061 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l01062"></a>01062 }
+<a name="l01063"></a>01063 } <span class="keywordflow">else</span> {
+<a name="l01064"></a>01064 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l01065"></a>01065 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a45af7d644cdfe8ae95a32c7373787389" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
+<a name="l01066"></a>01066 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01067"></a>01067 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01068"></a>01068 }
+<a name="l01069"></a>01069 }
+<a name="l01070"></a>01070
+<a name="l01084"></a>01084 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01085"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a6f3a91f5162f991ce61e9f925817129d">01085</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::factorial(<span class="keywordtype">size_t</span> n) {
+<a name="l01086"></a>01086 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01087"></a>01087 <span class="keywordflow">try</span> {
+<a name="l01088"></a>01088 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l01089"></a>01089 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6f3a91f5162f991ce61e9f925817129d" title="Calculate the value of n! ">detail::factorial</a>(r.data, n);
+<a name="l01090"></a>01090 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01091"></a>01091 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01092"></a>01092 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01093"></a>01093 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l01094"></a>01094 }
+<a name="l01095"></a>01095 } <span class="keywordflow">else</span> {
+<a name="l01096"></a>01096 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l01097"></a>01097 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6f3a91f5162f991ce61e9f925817129d" title="Calculate the value of n! ">detail::factorial</a>(r.data, n);
+<a name="l01098"></a>01098 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01099"></a>01099 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01100"></a>01100 }
+<a name="l01101"></a>01101 }
+<a name="l01102"></a>01102
+<a name="l01116"></a>01116 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01117"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1">01117</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::nan() {
+<a name="l01118"></a>01118 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01119"></a>01119 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l01120"></a>01120 r._data().make_nan();
+<a name="l01121"></a>01121 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01122"></a>01122 } <span class="keywordflow">else</span> {
+<a name="l01123"></a>01123 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">exceptions::not_a_number</a>();
+<a name="l01124"></a>01124 }
+<a name="l01125"></a>01125 }
+<a name="l01126"></a>01126
+<a name="l01149"></a>01149 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01150"></a>01150 <span class="keyword">template</span> <<span class="keyword">class</span> Type>
+<a name="l01151"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2">01151</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::random_by_size(Type& gen,
+<a name="l01152"></a>01152 <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <span class="keywordtype">bool</span> high_bit_on, <span class="keywordtype">bool</span> low_bit_on, <span class="keywordtype">bool</span>
+<a name="l01153"></a>01153 can_be_negative)
+<a name="l01154"></a>01154 {
+<a name="l01155"></a>01155 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01156"></a>01156 <span class="keywordflow">try</span> {
+<a name="l01157"></a>01157 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen, size_in_bits, high_bit_on,
+<a name="l01158"></a>01158 low_bit_on, can_be_negative);
+<a name="l01159"></a>01159 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01160"></a>01160 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l01161"></a>01161 }
+<a name="l01162"></a>01162 } <span class="keywordflow">else</span> {
+<a name="l01163"></a>01163 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen, size_in_bits, high_bit_on,
+<a name="l01164"></a>01164 low_bit_on, can_be_negative);
+<a name="l01165"></a>01165 }
+<a name="l01166"></a>01166 }
+<a name="l01167"></a>01167
+<a name="l01195"></a>01195 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01196"></a>01196 <span class="keyword">template</span> <<span class="keyword">class</span> Type>
+<a name="l01197"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02">01197</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::random_prime(Type& gen,
+<a name="l01198"></a>01198 <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> size_in_bits, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback)
+<a name="l01199"></a>01199 {
+<a name="l01200"></a>01200 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01201"></a>01201 <span class="keywordflow">try</span> {
+<a name="l01202"></a>01202 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen, size_in_bits, callback);
+<a name="l01203"></a>01203 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01204"></a>01204 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l01205"></a>01205 }
+<a name="l01206"></a>01206 } <span class="keywordflow">else</span> {
+<a name="l01207"></a>01207 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen, size_in_bits, callback);
+<a name="l01208"></a>01208 }
+<a name="l01209"></a>01209 }
+<a name="l01210"></a>01210
+<a name="l01212"></a>01212 <span class="comment">// Free function template definitions</span>
+<a name="l01218"></a>01218 <span class="comment"></span>
+<a name="l01219"></a>01219
+<a name="l01228"></a>01228 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01229"></a><a class="code" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523">01229</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523" title="Returns the absolute value of an integer.">abs</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
+<a name="l01230"></a>01230 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01231"></a>01231 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01232"></a>01232 <span class="keywordflow">try</span> {
+<a name="l01233"></a>01233 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n._data().abs());
+<a name="l01234"></a>01234 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01235"></a>01235 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01236"></a>01236 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01237"></a>01237 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01238"></a>01238 }
+<a name="l01239"></a>01239 } <span class="keywordflow">else</span> {
+<a name="l01240"></a>01240 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n._data().abs());
+<a name="l01241"></a>01241 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01242"></a>01242 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01243"></a>01243 }
+<a name="l01244"></a>01244 }
+<a name="l01245"></a>01245
+<a name="l01264"></a>01264 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01265"></a><a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4">01265</a> <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>
+<a name="l01266"></a>01266 dividend, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> divisor)
+<a name="l01267"></a>01267 {
+<a name="l01268"></a>01268 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01269"></a>01269 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span> <span class="keyword">typename</span>
+<a name="l01270"></a>01270 BOOST_XINT_INTEGER_TYPE::divide_t(BOOST_XINT_INTEGER_TYPE::nan(),
+<a name="l01271"></a>01271 BOOST_XINT_INTEGER_TYPE::nan());
+<a name="l01272"></a>01272 <span class="keywordflow">try</span> {
+<a name="l01273"></a>01273 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::datatype::divide_t rr =
+<a name="l01274"></a>01274 <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
+<a name="l01275"></a>01275 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t r(rr.quotient,
+<a name="l01276"></a>01276 rr.remainder);
+<a name="l01277"></a>01277 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01278"></a>01278 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01279"></a>01279 <span class="keywordflow">return</span> <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t(
+<a name="l01280"></a>01280 BOOST_XINT_INTEGER_TYPE::nan(), BOOST_XINT_INTEGER_TYPE::nan());
+<a name="l01281"></a>01281 }
+<a name="l01282"></a>01282 } <span class="keywordflow">else</span> {
+<a name="l01283"></a>01283 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::datatype::divide_t rr =
+<a name="l01284"></a>01284 <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
+<a name="l01285"></a>01285 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t r(rr.quotient, rr.remainder);
+<a name="l01286"></a>01286 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01287"></a>01287 }
+<a name="l01288"></a>01288 }
+<a name="l01290"></a>01290
+<a name="l01296"></a>01296
+<a name="l01297"></a>01297
+<a name="l01309"></a>01309 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01310"></a><a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424">01310</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">square</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
+<a name="l01311"></a>01311 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01312"></a>01312 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
+<a name="l01313"></a>01313 <span class="keywordflow">try</span> {
+<a name="l01314"></a>01314 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">detail::square</a>(n._data());
+<a name="l01315"></a>01315 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01316"></a>01316 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01317"></a>01317 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01318"></a>01318 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01319"></a>01319 }
+<a name="l01320"></a>01320 } <span class="keywordflow">else</span> {
+<a name="l01321"></a>01321 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">detail::square</a>(n._data());
+<a name="l01322"></a>01322 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01323"></a>01323 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01324"></a>01324 }
+<a name="l01325"></a>01325 }
+<a name="l01326"></a>01326
+<a name="l01335"></a>01335 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01336"></a><a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52">01336</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
+<a name="l01337"></a>01337 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> e)
+<a name="l01338"></a>01338 {
+<a name="l01339"></a>01339 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01340"></a>01340 <span class="keywordflow">if</span> (n.is_nan() || e.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01341"></a>01341 <span class="keywordflow">try</span> {
+<a name="l01342"></a>01342 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l01343"></a>01343 <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
+<a name="l01344"></a>01344 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01345"></a>01345 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01346"></a>01346 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01347"></a>01347 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01348"></a>01348 }
+<a name="l01349"></a>01349 } <span class="keywordflow">else</span> {
+<a name="l01350"></a>01350 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l01351"></a>01351 <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
+<a name="l01352"></a>01352 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01353"></a>01353 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01354"></a>01354 }
+<a name="l01355"></a>01355 }
+<a name="l01356"></a>01356
+<a name="l01369"></a>01369 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01370"></a><a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2">01370</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
+<a name="l01371"></a>01371 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01372"></a>01372 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
+<a name="l01373"></a>01373 <span class="keywordflow">try</span> {
+<a name="l01374"></a>01374 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(n._data());
+<a name="l01375"></a>01375 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01376"></a>01376 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01377"></a>01377 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01378"></a>01378 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01379"></a>01379 }
+<a name="l01380"></a>01380 } <span class="keywordflow">else</span> {
+<a name="l01381"></a>01381 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(n._data());
+<a name="l01382"></a>01382 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01383"></a>01383 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01384"></a>01384 }
+<a name="l01385"></a>01385 }
+<a name="l01387"></a>01387
+<a name="l01393"></a>01393
+<a name="l01394"></a>01394
+<a name="l01407"></a>01407 <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3, <span class="keyword">class</span> A4>
+<a name="l01408"></a><a class="code" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69">01408</a> T <a class="code" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69" title="Converts an xint::integer type to a built-in integer type.">to</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
+<a name="l01409"></a>01409 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01410"></a>01410 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> T(0);
+<a name="l01411"></a>01411 <span class="keywordflow">try</span> {
+<a name="l01412"></a>01412 <span class="keywordflow">return</span> to<T>(n._data());
+<a name="l01413"></a>01413 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01414"></a>01414 <span class="keywordflow">return</span> T(0);
+<a name="l01415"></a>01415 }
+<a name="l01416"></a>01416 } <span class="keywordflow">else</span> {
+<a name="l01417"></a>01417 <span class="keywordflow">return</span> to<T>(n._data());
+<a name="l01418"></a>01418 }
+<a name="l01419"></a>01419 }
+<a name="l01420"></a>01420
+<a name="l01441"></a>01441 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01442"></a><a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2">01442</a> std::string <a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2" title="Creates a string representation of the specified integer.">to_string</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keywordtype">size_t</span> base = 10, <span class="keywordtype">bool</span>
+<a name="l01443"></a>01443 uppercase = <span class="keyword">false</span>)
+<a name="l01444"></a>01444 {
+<a name="l01445"></a>01445 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01446"></a>01446 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> detail::nan_text<char>();
+<a name="l01447"></a>01447 <span class="keywordflow">try</span> {
+<a name="l01448"></a>01448 <span class="keywordflow">return</span> to_string<char>(n._data(), base, uppercase);
+<a name="l01449"></a>01449 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01450"></a>01450 <span class="keywordflow">return</span> std::string();
+<a name="l01451"></a>01451 }
+<a name="l01452"></a>01452 } <span class="keywordflow">else</span> {
+<a name="l01453"></a>01453 <span class="keywordflow">return</span> to_string<char>(n._data(), base, uppercase);
+<a name="l01454"></a>01454 }
+<a name="l01455"></a>01455 }
+<a name="l01456"></a>01456
+<a name="l01478"></a>01478 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01479"></a><a class="code" href="namespaceboost_1_1xint.html#ab1c726c14c688957565bb5d2e8478c0b">01479</a> std::wstring <a class="code" href="namespaceboost_1_1xint.html#ab1c726c14c688957565bb5d2e8478c0b" title="Creates a wide-character string representation of the specified integer.">to_wstring</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keywordtype">size_t</span> base = 10, <span class="keywordtype">bool</span>
+<a name="l01480"></a>01480 uppercase = <span class="keyword">false</span>)
+<a name="l01481"></a>01481 {
+<a name="l01482"></a>01482 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01483"></a>01483 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> detail::nan_text<wchar_t>();
+<a name="l01484"></a>01484 <span class="keywordflow">try</span> {
+<a name="l01485"></a>01485 <span class="keywordflow">return</span> to_string<wchar_t>(n._data(), base, uppercase);
+<a name="l01486"></a>01486 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01487"></a>01487 <span class="keywordflow">return</span> std::wstring();
+<a name="l01488"></a>01488 }
+<a name="l01489"></a>01489 } <span class="keywordflow">else</span> {
+<a name="l01490"></a>01490 <span class="keywordflow">return</span> to_string<wchar_t>(n._data(), base, uppercase);
+<a name="l01491"></a>01491 }
+<a name="l01492"></a>01492 }
+<a name="l01493"></a>01493
+<a name="l01521"></a>01521 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01522"></a><a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40">01522</a> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits = 0) {
+<a name="l01523"></a>01523 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01524"></a>01524 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a>();
+<a name="l01525"></a>01525 <span class="keywordflow">try</span> {
+<a name="l01526"></a>01526 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
+<a name="l01527"></a>01527 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01528"></a>01528 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a>();
+<a name="l01529"></a>01529 }
+<a name="l01530"></a>01530 } <span class="keywordflow">else</span> {
+<a name="l01531"></a>01531 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
+<a name="l01532"></a>01532 }
+<a name="l01533"></a>01533 }
+<a name="l01535"></a>01535
<a name="l01538"></a>01538
-<a name="l01548"></a>01548 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01549"></a><a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175">01549</a> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01550"></a>01550 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01551"></a>01551 <span class="keywordflow">if</span> (!n.is_nan()) {
-<a name="l01552"></a>01552 <span class="keywordflow">try</span> {
-<a name="l01553"></a>01553 <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
-<a name="l01554"></a>01554 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01555"></a>01555 <span class="comment">// Do nothing.</span>
-<a name="l01556"></a>01556 }
+<a name="l01549"></a>01549 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01550"></a><a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba">01550</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
+<a name="l01551"></a>01551 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01552"></a>01552 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01553"></a>01553 <span class="keywordflow">try</span> {
+<a name="l01554"></a>01554 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
+<a name="l01555"></a>01555 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01556"></a>01556 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l01557"></a>01557 }
<a name="l01558"></a>01558 } <span class="keywordflow">else</span> {
-<a name="l01559"></a>01559 <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
+<a name="l01559"></a>01559 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
<a name="l01560"></a>01560 }
<a name="l01561"></a>01561 }
<a name="l01562"></a>01562
-<a name="l01576"></a>01576 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01577"></a><a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4">01577</a> <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> return_if_zero =
-<a name="l01578"></a>01578 0)
-<a name="l01579"></a>01579 {
-<a name="l01580"></a>01580 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01581"></a>01581 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
-<a name="l01582"></a>01582 <span class="keywordflow">try</span> {
-<a name="l01583"></a>01583 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(n._data(), return_if_zero);
-<a name="l01584"></a>01584 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01585"></a>01585 <span class="keywordflow">return</span> return_if_zero;
-<a name="l01586"></a>01586 }
-<a name="l01587"></a>01587 } <span class="keywordflow">else</span> {
-<a name="l01588"></a>01588 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(n._data(), return_if_zero);
-<a name="l01589"></a>01589 }
-<a name="l01590"></a>01590 }
-<a name="l01591"></a>01591
-<a name="l01605"></a>01605 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01606"></a><a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0">01606</a> <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> return_if_zero =
-<a name="l01607"></a>01607 0)
-<a name="l01608"></a>01608 {
-<a name="l01609"></a>01609 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01610"></a>01610 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
-<a name="l01611"></a>01611 <span class="keywordflow">try</span> {
-<a name="l01612"></a>01612 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(n._data(), return_if_zero);
-<a name="l01613"></a>01613 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01614"></a>01614 <span class="keywordflow">return</span> return_if_zero;
-<a name="l01615"></a>01615 }
-<a name="l01616"></a>01616 } <span class="keywordflow">else</span> {
-<a name="l01617"></a>01617 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(n._data(), return_if_zero);
-<a name="l01618"></a>01618 }
-<a name="l01619"></a>01619 }
-<a name="l01621"></a>01621
-<a name="l01630"></a>01630
-<a name="l01631"></a>01631
-<a name="l01646"></a>01646 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01647"></a><a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564">01647</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01648"></a>01648 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> by, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus)
-<a name="l01649"></a>01649 {
-<a name="l01650"></a>01650 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01651"></a>01651 <span class="keywordflow">if</span> (n.is_nan() || by.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01652"></a>01652 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01653"></a>01653 <span class="keywordflow">try</span> {
-<a name="l01654"></a>01654 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
-<a name="l01655"></a>01655 modulus._data());
-<a name="l01656"></a>01656 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01657"></a>01657 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01658"></a>01658 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01659"></a>01659 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01660"></a>01660 }
-<a name="l01661"></a>01661 } <span class="keywordflow">else</span> {
-<a name="l01662"></a>01662 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
-<a name="l01663"></a>01663 modulus._data());
-<a name="l01664"></a>01664 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01665"></a>01665 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01572"></a>01572 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01573"></a><a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921">01573</a> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
+<a name="l01574"></a>01574 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01575"></a>01575 <span class="keywordflow">if</span> (!n.is_nan()) {
+<a name="l01576"></a>01576 <span class="keywordflow">try</span> {
+<a name="l01577"></a>01577 <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
+<a name="l01578"></a>01578 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01579"></a>01579 <span class="comment">// Do nothing.</span>
+<a name="l01580"></a>01580 }
+<a name="l01581"></a>01581 }
+<a name="l01582"></a>01582 } <span class="keywordflow">else</span> {
+<a name="l01583"></a>01583 <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
+<a name="l01584"></a>01584 }
+<a name="l01585"></a>01585 }
+<a name="l01586"></a>01586
+<a name="l01596"></a>01596 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01597"></a><a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175">01597</a> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
+<a name="l01598"></a>01598 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01599"></a>01599 <span class="keywordflow">if</span> (!n.is_nan()) {
+<a name="l01600"></a>01600 <span class="keywordflow">try</span> {
+<a name="l01601"></a>01601 <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
+<a name="l01602"></a>01602 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01603"></a>01603 <span class="comment">// Do nothing.</span>
+<a name="l01604"></a>01604 }
+<a name="l01605"></a>01605 }
+<a name="l01606"></a>01606 } <span class="keywordflow">else</span> {
+<a name="l01607"></a>01607 <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
+<a name="l01608"></a>01608 }
+<a name="l01609"></a>01609 }
+<a name="l01610"></a>01610
+<a name="l01624"></a>01624 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01625"></a><a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4">01625</a> <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> return_if_zero =
+<a name="l01626"></a>01626 0)
+<a name="l01627"></a>01627 {
+<a name="l01628"></a>01628 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01629"></a>01629 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
+<a name="l01630"></a>01630 <span class="keywordflow">try</span> {
+<a name="l01631"></a>01631 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(n._data(), return_if_zero);
+<a name="l01632"></a>01632 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01633"></a>01633 <span class="keywordflow">return</span> return_if_zero;
+<a name="l01634"></a>01634 }
+<a name="l01635"></a>01635 } <span class="keywordflow">else</span> {
+<a name="l01636"></a>01636 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(n._data(), return_if_zero);
+<a name="l01637"></a>01637 }
+<a name="l01638"></a>01638 }
+<a name="l01639"></a>01639
+<a name="l01653"></a>01653 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01654"></a><a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0">01654</a> <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> return_if_zero =
+<a name="l01655"></a>01655 0)
+<a name="l01656"></a>01656 {
+<a name="l01657"></a>01657 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01658"></a>01658 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
+<a name="l01659"></a>01659 <span class="keywordflow">try</span> {
+<a name="l01660"></a>01660 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(n._data(), return_if_zero);
+<a name="l01661"></a>01661 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01662"></a>01662 <span class="keywordflow">return</span> return_if_zero;
+<a name="l01663"></a>01663 }
+<a name="l01664"></a>01664 } <span class="keywordflow">else</span> {
+<a name="l01665"></a>01665 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(n._data(), return_if_zero);
<a name="l01666"></a>01666 }
<a name="l01667"></a>01667 }
-<a name="l01668"></a>01668
-<a name="l01683"></a>01683 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01684"></a><a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877">01684</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01685"></a>01685 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus)
-<a name="l01686"></a>01686 {
-<a name="l01687"></a>01687 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01688"></a>01688 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01689"></a>01689 <span class="keywordflow">try</span> {
-<a name="l01690"></a>01690 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(), modulus._data());
-<a name="l01691"></a>01691 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01692"></a>01692 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01693"></a>01693 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01694"></a>01694 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01695"></a>01695 }
-<a name="l01696"></a>01696 } <span class="keywordflow">else</span> {
-<a name="l01697"></a>01697 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(), modulus._data());
-<a name="l01698"></a>01698 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01699"></a>01699 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01700"></a>01700 }
-<a name="l01701"></a>01701 }
-<a name="l01702"></a>01702
-<a name="l01726"></a>01726 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01727"></a><a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0">01727</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01728"></a>01728 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> exponent, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus,
-<a name="l01729"></a>01729 <span class="keywordtype">bool</span> no_monty = <span class="keyword">false</span>)
-<a name="l01730"></a>01730 {
-<a name="l01731"></a>01731 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01732"></a>01732 <span class="keywordflow">if</span> (n.is_nan() || exponent.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01733"></a>01733 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01734"></a>01734 <span class="keywordflow">try</span> {
-<a name="l01735"></a>01735 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
-<a name="l01736"></a>01736 modulus._data(), no_monty);
-<a name="l01737"></a>01737 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01738"></a>01738 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01739"></a>01739 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01740"></a>01740 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01741"></a>01741 }
-<a name="l01742"></a>01742 } <span class="keywordflow">else</span> {
-<a name="l01743"></a>01743 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
-<a name="l01744"></a>01744 modulus._data(), no_monty);
-<a name="l01745"></a>01745 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01746"></a>01746 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01747"></a>01747 }
-<a name="l01748"></a>01748 }
-<a name="l01749"></a>01749
-<a name="l01762"></a>01762 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01763"></a><a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad">01763</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01764"></a>01764 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus)
-<a name="l01765"></a>01765 {
-<a name="l01766"></a>01766 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01767"></a>01767 <span class="keywordflow">if</span> (n.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01768"></a>01768 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01769"></a>01769 <span class="keywordflow">try</span> {
-<a name="l01770"></a>01770 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data());
-<a name="l01771"></a>01771 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01772"></a>01772 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01773"></a>01773 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01774"></a>01774 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01775"></a>01775 }
-<a name="l01776"></a>01776 } <span class="keywordflow">else</span> {
-<a name="l01777"></a>01777 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data());
-<a name="l01778"></a>01778 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01779"></a>01779 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01780"></a>01780 }
-<a name="l01781"></a>01781 }
-<a name="l01783"></a>01783
-<a name="l01789"></a>01789
-<a name="l01790"></a>01790
-<a name="l01815"></a>01815 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01816"></a><a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4">01816</a> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback = <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696" title="An empty callback_t, used as a default parameter for some functions.">no_callback</a>)
-<a name="l01817"></a>01817 {
-<a name="l01818"></a>01818 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01819"></a>01819 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> -2;
-<a name="l01820"></a>01820 <span class="keywordflow">try</span> {
-<a name="l01821"></a>01821 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
-<a name="l01822"></a>01822 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01823"></a>01823 <span class="keywordflow">return</span> -2;
-<a name="l01824"></a>01824 }
-<a name="l01825"></a>01825 } <span class="keywordflow">else</span> {
-<a name="l01826"></a>01826 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
-<a name="l01827"></a>01827 }
-<a name="l01828"></a>01828 }
-<a name="l01830"></a>01830
+<a name="l01669"></a>01669
+<a name="l01678"></a>01678
+<a name="l01679"></a>01679
+<a name="l01694"></a>01694 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01695"></a><a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564">01695</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
+<a name="l01696"></a>01696 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> by, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus)
+<a name="l01697"></a>01697 {
+<a name="l01698"></a>01698 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01699"></a>01699 <span class="keywordflow">if</span> (n.is_nan() || by.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
+<a name="l01700"></a>01700 BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01701"></a>01701 <span class="keywordflow">try</span> {
+<a name="l01702"></a>01702 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
+<a name="l01703"></a>01703 modulus._data());
+<a name="l01704"></a>01704 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01705"></a>01705 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01706"></a>01706 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01707"></a>01707 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01708"></a>01708 }
+<a name="l01709"></a>01709 } <span class="keywordflow">else</span> {
+<a name="l01710"></a>01710 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
+<a name="l01711"></a>01711 modulus._data());
+<a name="l01712"></a>01712 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01713"></a>01713 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01714"></a>01714 }
+<a name="l01715"></a>01715 }
+<a name="l01716"></a>01716
+<a name="l01731"></a>01731 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01732"></a><a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877">01732</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
+<a name="l01733"></a>01733 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus)
+<a name="l01734"></a>01734 {
+<a name="l01735"></a>01735 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01736"></a>01736 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
+<a name="l01737"></a>01737 <span class="keywordflow">try</span> {
+<a name="l01738"></a>01738 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(), modulus._data());
+<a name="l01739"></a>01739 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01740"></a>01740 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01741"></a>01741 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01742"></a>01742 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01743"></a>01743 }
+<a name="l01744"></a>01744 } <span class="keywordflow">else</span> {
+<a name="l01745"></a>01745 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(), modulus._data());
+<a name="l01746"></a>01746 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01747"></a>01747 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01748"></a>01748 }
+<a name="l01749"></a>01749 }
+<a name="l01750"></a>01750
+<a name="l01774"></a>01774 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01775"></a><a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0">01775</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
+<a name="l01776"></a>01776 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> exponent, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus,
+<a name="l01777"></a>01777 <span class="keywordtype">bool</span> no_monty = <span class="keyword">false</span>)
+<a name="l01778"></a>01778 {
+<a name="l01779"></a>01779 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01780"></a>01780 <span class="keywordflow">if</span> (n.is_nan() || exponent.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
+<a name="l01781"></a>01781 BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01782"></a>01782 <span class="keywordflow">try</span> {
+<a name="l01783"></a>01783 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
+<a name="l01784"></a>01784 modulus._data(), no_monty);
+<a name="l01785"></a>01785 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01786"></a>01786 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01787"></a>01787 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01788"></a>01788 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01789"></a>01789 }
+<a name="l01790"></a>01790 } <span class="keywordflow">else</span> {
+<a name="l01791"></a>01791 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
+<a name="l01792"></a>01792 modulus._data(), no_monty);
+<a name="l01793"></a>01793 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01794"></a>01794 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01795"></a>01795 }
+<a name="l01796"></a>01796 }
+<a name="l01797"></a>01797
+<a name="l01810"></a>01810 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01811"></a><a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad">01811</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
+<a name="l01812"></a>01812 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus)
+<a name="l01813"></a>01813 {
+<a name="l01814"></a>01814 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01815"></a>01815 <span class="keywordflow">if</span> (n.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
+<a name="l01816"></a>01816 BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01817"></a>01817 <span class="keywordflow">try</span> {
+<a name="l01818"></a>01818 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data());
+<a name="l01819"></a>01819 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01820"></a>01820 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01821"></a>01821 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01822"></a>01822 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01823"></a>01823 }
+<a name="l01824"></a>01824 } <span class="keywordflow">else</span> {
+<a name="l01825"></a>01825 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data());
+<a name="l01826"></a>01826 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01827"></a>01827 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01828"></a>01828 }
+<a name="l01829"></a>01829 }
+<a name="l01831"></a>01831
+<a name="l01837"></a>01837
<a name="l01838"></a>01838
-<a name="l01839"></a><a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">01839</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator<</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01840"></a>01840 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01841"></a>01841 {
-<a name="l01842"></a>01842 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01843"></a>01843 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01844"></a>01844 <span class="keywordflow">try</span> {
-<a name="l01845"></a>01845 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator<</a>(n1._data(), n2._data());
-<a name="l01846"></a>01846 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01847"></a>01847 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01848"></a>01848 }
-<a name="l01849"></a>01849 } <span class="keywordflow">else</span> {
-<a name="l01850"></a>01850 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator<</a>(n1._data(), n2._data());
-<a name="l01851"></a>01851 }
-<a name="l01852"></a>01852 }
-<a name="l01853"></a>01853
-<a name="l01854"></a><a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">01854</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator></a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01855"></a>01855 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01856"></a>01856 {
-<a name="l01857"></a>01857 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01858"></a>01858 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01859"></a>01859 <span class="keywordflow">try</span> {
-<a name="l01860"></a>01860 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator></a>(n1._data(), n2._data());
-<a name="l01861"></a>01861 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01862"></a>01862 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01863"></a>01863 }
-<a name="l01864"></a>01864 } <span class="keywordflow">else</span> {
-<a name="l01865"></a>01865 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator></a>(n1._data(), n2._data());
-<a name="l01866"></a>01866 }
-<a name="l01867"></a>01867 }
-<a name="l01868"></a>01868
-<a name="l01869"></a><a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">01869</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator<=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01870"></a>01870 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01871"></a>01871 {
-<a name="l01872"></a>01872 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01873"></a>01873 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01874"></a>01874 <span class="keywordflow">try</span> {
-<a name="l01875"></a>01875 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator<=</a>(n1._data(), n2._data());
-<a name="l01876"></a>01876 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01877"></a>01877 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01878"></a>01878 }
-<a name="l01879"></a>01879 } <span class="keywordflow">else</span> {
-<a name="l01880"></a>01880 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator<=</a>(n1._data(), n2._data());
-<a name="l01881"></a>01881 }
-<a name="l01882"></a>01882 }
-<a name="l01883"></a>01883
-<a name="l01884"></a><a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">01884</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator>=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01885"></a>01885 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01886"></a>01886 {
-<a name="l01887"></a>01887 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01888"></a>01888 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01889"></a>01889 <span class="keywordflow">try</span> {
-<a name="l01890"></a>01890 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator>=</a>(n1._data(), n2._data());
-<a name="l01891"></a>01891 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01892"></a>01892 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01893"></a>01893 }
-<a name="l01894"></a>01894 } <span class="keywordflow">else</span> {
-<a name="l01895"></a>01895 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator>=</a>(n1._data(), n2._data());
-<a name="l01896"></a>01896 }
-<a name="l01897"></a>01897 }
-<a name="l01898"></a>01898
-<a name="l01899"></a><a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">01899</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01900"></a>01900 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01901"></a>01901 {
-<a name="l01902"></a>01902 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01903"></a>01903 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01904"></a>01904 <span class="keywordflow">try</span> {
-<a name="l01905"></a>01905 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(n1._data(), n2._data());
-<a name="l01906"></a>01906 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01907"></a>01907 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01908"></a>01908 }
-<a name="l01909"></a>01909 } <span class="keywordflow">else</span> {
-<a name="l01910"></a>01910 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(n1._data(), n2._data());
-<a name="l01911"></a>01911 }
-<a name="l01912"></a>01912 }
-<a name="l01913"></a>01913
-<a name="l01914"></a><a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">01914</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01915"></a>01915 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01916"></a>01916 {
-<a name="l01917"></a>01917 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01918"></a>01918 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01919"></a>01919 <span class="keywordflow">try</span> {
-<a name="l01920"></a>01920 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(n1._data(), n2._data());
-<a name="l01921"></a>01921 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01922"></a>01922 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01923"></a>01923 }
-<a name="l01924"></a>01924 } <span class="keywordflow">else</span> {
-<a name="l01925"></a>01925 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(n1._data(), n2._data());
-<a name="l01926"></a>01926 }
-<a name="l01927"></a>01927 }
-<a name="l01929"></a>01929
-<a name="l01934"></a>01934
-<a name="l01935"></a>01935
-<a name="l01944"></a>01944 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01945"></a><a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915">01945</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01946"></a>01946 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01947"></a>01947 {
-<a name="l01948"></a>01948 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01949"></a>01949 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01950"></a>01950 <span class="keywordflow">try</span> {
-<a name="l01951"></a>01951 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() + n2._data());
-<a name="l01952"></a>01952 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01953"></a>01953 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01954"></a>01954 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01955"></a>01955 }
-<a name="l01956"></a>01956 } <span class="keywordflow">else</span> {
-<a name="l01957"></a>01957 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() + n2._data());
-<a name="l01958"></a>01958 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01863"></a>01863 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01864"></a><a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4">01864</a> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback = <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696" title="An empty callback_t, used as a default parameter for some functions.">no_callback</a>)
+<a name="l01865"></a>01865 {
+<a name="l01866"></a>01866 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01867"></a>01867 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> -2;
+<a name="l01868"></a>01868 <span class="keywordflow">try</span> {
+<a name="l01869"></a>01869 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
+<a name="l01870"></a>01870 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01871"></a>01871 <span class="keywordflow">return</span> -2;
+<a name="l01872"></a>01872 }
+<a name="l01873"></a>01873 } <span class="keywordflow">else</span> {
+<a name="l01874"></a>01874 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
+<a name="l01875"></a>01875 }
+<a name="l01876"></a>01876 }
+<a name="l01878"></a>01878
+<a name="l01886"></a>01886
+<a name="l01887"></a><a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">01887</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator<</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l01888"></a>01888 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l01889"></a>01889 {
+<a name="l01890"></a>01890 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01891"></a>01891 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01892"></a>01892 <span class="keywordflow">try</span> {
+<a name="l01893"></a>01893 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator<</a>(n1._data(), n2._data());
+<a name="l01894"></a>01894 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01895"></a>01895 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01896"></a>01896 }
+<a name="l01897"></a>01897 } <span class="keywordflow">else</span> {
+<a name="l01898"></a>01898 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator<</a>(n1._data(), n2._data());
+<a name="l01899"></a>01899 }
+<a name="l01900"></a>01900 }
+<a name="l01901"></a>01901
+<a name="l01902"></a><a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">01902</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator></a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l01903"></a>01903 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l01904"></a>01904 {
+<a name="l01905"></a>01905 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01906"></a>01906 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01907"></a>01907 <span class="keywordflow">try</span> {
+<a name="l01908"></a>01908 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator></a>(n1._data(), n2._data());
+<a name="l01909"></a>01909 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01910"></a>01910 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01911"></a>01911 }
+<a name="l01912"></a>01912 } <span class="keywordflow">else</span> {
+<a name="l01913"></a>01913 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator></a>(n1._data(), n2._data());
+<a name="l01914"></a>01914 }
+<a name="l01915"></a>01915 }
+<a name="l01916"></a>01916
+<a name="l01917"></a><a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">01917</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator<=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l01918"></a>01918 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l01919"></a>01919 {
+<a name="l01920"></a>01920 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01921"></a>01921 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01922"></a>01922 <span class="keywordflow">try</span> {
+<a name="l01923"></a>01923 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator<=</a>(n1._data(), n2._data());
+<a name="l01924"></a>01924 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01925"></a>01925 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01926"></a>01926 }
+<a name="l01927"></a>01927 } <span class="keywordflow">else</span> {
+<a name="l01928"></a>01928 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator<=</a>(n1._data(), n2._data());
+<a name="l01929"></a>01929 }
+<a name="l01930"></a>01930 }
+<a name="l01931"></a>01931
+<a name="l01932"></a><a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">01932</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator>=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l01933"></a>01933 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l01934"></a>01934 {
+<a name="l01935"></a>01935 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01936"></a>01936 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01937"></a>01937 <span class="keywordflow">try</span> {
+<a name="l01938"></a>01938 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator>=</a>(n1._data(), n2._data());
+<a name="l01939"></a>01939 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01940"></a>01940 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01941"></a>01941 }
+<a name="l01942"></a>01942 } <span class="keywordflow">else</span> {
+<a name="l01943"></a>01943 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator>=</a>(n1._data(), n2._data());
+<a name="l01944"></a>01944 }
+<a name="l01945"></a>01945 }
+<a name="l01946"></a>01946
+<a name="l01947"></a><a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">01947</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l01948"></a>01948 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l01949"></a>01949 {
+<a name="l01950"></a>01950 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01951"></a>01951 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01952"></a>01952 <span class="keywordflow">try</span> {
+<a name="l01953"></a>01953 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(n1._data(), n2._data());
+<a name="l01954"></a>01954 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01955"></a>01955 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01956"></a>01956 }
+<a name="l01957"></a>01957 } <span class="keywordflow">else</span> {
+<a name="l01958"></a>01958 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(n1._data(), n2._data());
<a name="l01959"></a>01959 }
<a name="l01960"></a>01960 }
<a name="l01961"></a>01961
-<a name="l01970"></a>01970 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01971"></a><a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27">01971</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">operator-</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01972"></a>01972 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01973"></a>01973 {
-<a name="l01974"></a>01974 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01975"></a>01975 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01976"></a>01976 <span class="keywordflow">try</span> {
-<a name="l01977"></a>01977 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() - n2._data());
-<a name="l01978"></a>01978 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01979"></a>01979 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l01980"></a>01980 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01981"></a>01981 }
-<a name="l01982"></a>01982 } <span class="keywordflow">else</span> {
-<a name="l01983"></a>01983 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() - n2._data());
-<a name="l01984"></a>01984 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01985"></a>01985 }
-<a name="l01986"></a>01986 }
-<a name="l01987"></a>01987
-<a name="l02000"></a>02000 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02001"></a><a class="code" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455">02001</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455" title="Calculate the product of two integers.">operator*</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02002"></a>02002 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02003"></a>02003 {
-<a name="l02004"></a>02004 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02005"></a>02005 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02006"></a>02006 <span class="keywordflow">try</span> {
-<a name="l02007"></a>02007 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() * n2._data());
-<a name="l02008"></a>02008 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02009"></a>02009 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02010"></a>02010 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02011"></a>02011 }
-<a name="l02012"></a>02012 } <span class="keywordflow">else</span> {
-<a name="l02013"></a>02013 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() * n2._data());
-<a name="l02014"></a>02014 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02015"></a>02015 }
-<a name="l02016"></a>02016 }
-<a name="l02017"></a>02017
-<a name="l02028"></a>02028 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02029"></a><a class="code" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21">02029</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21" title="Calculate how many dividends would fit into divisor.">operator/</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> dividend, <span class="keyword">const</span>
-<a name="l02030"></a>02030 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> divisor)
-<a name="l02031"></a>02031 {
-<a name="l02032"></a>02032 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02033"></a>02033 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span>
-<a name="l02034"></a>02034 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02035"></a>02035 <span class="keywordflow">try</span> {
-<a name="l02036"></a>02036 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(dividend._data() / divisor._data());
-<a name="l02037"></a>02037 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02038"></a>02038 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02039"></a>02039 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02040"></a>02040 }
-<a name="l02041"></a>02041 } <span class="keywordflow">else</span> {
-<a name="l02042"></a>02042 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(dividend._data() / divisor._data());
-<a name="l02043"></a>02043 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02044"></a>02044 }
-<a name="l02045"></a>02045 }
-<a name="l02046"></a>02046
-<a name="l02056"></a>02056 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02057"></a><a class="code" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67">02057</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67" title="Get the remainder after dividing a number by another.">operator%</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02058"></a>02058 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02059"></a>02059 {
-<a name="l02060"></a>02060 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02061"></a>02061 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02062"></a>02062 <span class="keywordflow">try</span> {
-<a name="l02063"></a>02063 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() % n2._data());
-<a name="l02064"></a>02064 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02065"></a>02065 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02066"></a>02066 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02067"></a>02067 }
-<a name="l02068"></a>02068 } <span class="keywordflow">else</span> {
-<a name="l02069"></a>02069 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() % n2._data());
-<a name="l02070"></a>02070 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02071"></a>02071 }
-<a name="l02072"></a>02072 }
-<a name="l02073"></a>02073
-<a name="l02083"></a>02083 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02084"></a><a class="code" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3">02084</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3" title="Combine two integers using a bitwise AND operation.">operator&</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02085"></a>02085 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02086"></a>02086 {
-<a name="l02087"></a>02087 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02088"></a>02088 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02089"></a>02089 <span class="keywordflow">try</span> {
-<a name="l02090"></a>02090 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() & n2._data());
-<a name="l02091"></a>02091 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02092"></a>02092 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02093"></a>02093 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02094"></a>02094 }
-<a name="l02095"></a>02095 } <span class="keywordflow">else</span> {
-<a name="l02096"></a>02096 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() & n2._data());
-<a name="l02097"></a>02097 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02098"></a>02098 }
-<a name="l02099"></a>02099 }
-<a name="l02100"></a>02100
-<a name="l02110"></a>02110 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02111"></a><a class="code" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075">02111</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075" title="Combine two integers using a bitwise OR operation.">operator|</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02112"></a>02112 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02113"></a>02113 {
-<a name="l02114"></a>02114 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02115"></a>02115 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02116"></a>02116 <span class="keywordflow">try</span> {
-<a name="l02117"></a>02117 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() | n2._data());
-<a name="l02118"></a>02118 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02119"></a>02119 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02120"></a>02120 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02121"></a>02121 }
-<a name="l02122"></a>02122 } <span class="keywordflow">else</span> {
-<a name="l02123"></a>02123 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() | n2._data());
-<a name="l02124"></a>02124 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02125"></a>02125 }
-<a name="l02126"></a>02126 }
-<a name="l02127"></a>02127
-<a name="l02137"></a>02137 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02138"></a><a class="code" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025">02138</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025" title="Combine two integers using a bitwise XOR operation.">operator^</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02139"></a>02139 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02140"></a>02140 {
-<a name="l02141"></a>02141 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02142"></a>02142 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02143"></a>02143 <span class="keywordflow">try</span> {
-<a name="l02144"></a>02144 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() ^ n2._data());
-<a name="l02145"></a>02145 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02146"></a>02146 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02147"></a>02147 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02148"></a>02148 }
-<a name="l02149"></a>02149 } <span class="keywordflow">else</span> {
-<a name="l02150"></a>02150 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() ^ n2._data());
-<a name="l02151"></a>02151 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02152"></a>02152 }
-<a name="l02153"></a>02153 }
-<a name="l02155"></a>02155
-<a name="l02158"></a>02158
-<a name="l02168"></a>02168 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02169"></a><a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e">02169</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num1, <span class="keyword">const</span>
-<a name="l02170"></a>02170 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num2)
-<a name="l02171"></a>02171 {
-<a name="l02172"></a>02172 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02173"></a>02173 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
-<a name="l02174"></a>02174 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02175"></a>02175 <span class="keywordflow">try</span> {
-<a name="l02176"></a>02176 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l02177"></a>02177 <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
-<a name="l02178"></a>02178 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02179"></a>02179 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02180"></a>02180 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02181"></a>02181 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02182"></a>02182 }
-<a name="l02183"></a>02183 } <span class="keywordflow">else</span> {
-<a name="l02184"></a>02184 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l02185"></a>02185 <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
-<a name="l02186"></a>02186 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02187"></a>02187 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02188"></a>02188 }
-<a name="l02189"></a>02189 }
-<a name="l02190"></a>02190
-<a name="l02201"></a>02201 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02202"></a><a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4">02202</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num1, <span class="keyword">const</span>
-<a name="l02203"></a>02203 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num2)
-<a name="l02204"></a>02204 {
-<a name="l02205"></a>02205 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02206"></a>02206 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
-<a name="l02207"></a>02207 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02208"></a>02208 <span class="keywordflow">try</span> {
-<a name="l02209"></a>02209 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l02210"></a>02210 <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
-<a name="l02211"></a>02211 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02212"></a>02212 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02213"></a>02213 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02214"></a>02214 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02215"></a>02215 }
-<a name="l02216"></a>02216 } <span class="keywordflow">else</span> {
-<a name="l02217"></a>02217 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l02218"></a>02218 <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
-<a name="l02219"></a>02219 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02220"></a>02220 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02221"></a>02221 }
-<a name="l02222"></a>02222 }
-<a name="l02223"></a>02223
-<a name="l02236"></a>02236 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02237"></a><a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0">02237</a> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2,
-<a name="l02238"></a>02238 <span class="keywordtype">bool</span> ignoresign = <span class="keyword">false</span>)
-<a name="l02239"></a>02239 {
-<a name="l02240"></a>02240 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02241"></a>02241 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> 2;
-<a name="l02242"></a>02242 <span class="keywordflow">try</span> {
-<a name="l02243"></a>02243 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
-<a name="l02244"></a>02244 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02245"></a>02245 <span class="keywordflow">return</span> 2;
-<a name="l02246"></a>02246 }
-<a name="l02247"></a>02247 } <span class="keywordflow">else</span> {
-<a name="l02248"></a>02248 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
-<a name="l02249"></a>02249 }
-<a name="l02250"></a>02250 }
-<a name="l02251"></a>02251
-<a name="l02268"></a>02268 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02269"></a><a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18">02269</a> <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l02270"></a>02270 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02271"></a>02271 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> 0;
-<a name="l02272"></a>02272 <span class="keywordflow">try</span> {
-<a name="l02273"></a>02273 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(n._data());
-<a name="l02274"></a>02274 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l02275"></a>02275 <span class="keywordflow">return</span> 0;
-<a name="l02276"></a>02276 }
-<a name="l02277"></a>02277 } <span class="keywordflow">else</span> {
-<a name="l02278"></a>02278 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(n._data());
-<a name="l02279"></a>02279 }
-<a name="l02280"></a>02280 }
-<a name="l02282"></a>02282
-<a name="l02284"></a><a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd">02284</a> <span class="preprocessor">#define BOOST_XINT_ANY_COMPARE(rtype, op) \</span>
-<a name="l02285"></a>02285 <span class="preprocessor"> template <class A0, class A1, class A2, class A3, class A4, typename N> \</span>
-<a name="l02286"></a>02286 <span class="preprocessor"> rtype op(const BOOST_XINT_INTEGER_TYPE n1, const N n2) { \</span>
-<a name="l02287"></a>02287 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
-<a name="l02288"></a>02288 <span class="preprocessor"> try { \</span>
-<a name="l02289"></a>02289 <span class="preprocessor"> return op(n1, BOOST_XINT_INTEGER_TYPE(n2)); \</span>
-<a name="l02290"></a>02290 <span class="preprocessor"> } catch (std::exception&) { \</span>
-<a name="l02291"></a>02291 <span class="preprocessor"> return rtype(0); \</span>
-<a name="l02292"></a>02292 <span class="preprocessor"> } \</span>
-<a name="l02293"></a>02293 <span class="preprocessor"> } else { \</span>
-<a name="l02294"></a>02294 <span class="preprocessor"> return op(n1, BOOST_XINT_INTEGER_TYPE(n2)); \</span>
-<a name="l02295"></a>02295 <span class="preprocessor"> } \</span>
-<a name="l02296"></a>02296 <span class="preprocessor"> } \</span>
-<a name="l02297"></a>02297 <span class="preprocessor"> \</span>
-<a name="l02298"></a>02298 <span class="preprocessor"> template <typename N, class A0, class A1, class A2, class A3, class A4> \</span>
-<a name="l02299"></a>02299 <span class="preprocessor"> rtype op(const N n1, const BOOST_XINT_INTEGER_TYPE n2) { \</span>
-<a name="l02300"></a>02300 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
-<a name="l02301"></a>02301 <span class="preprocessor"> try { \</span>
-<a name="l02302"></a>02302 <span class="preprocessor"> return op(BOOST_XINT_INTEGER_TYPE(n1), n2); \</span>
-<a name="l02303"></a>02303 <span class="preprocessor"> } catch (std::exception&) { \</span>
-<a name="l02304"></a>02304 <span class="preprocessor"> return rtype(0); \</span>
-<a name="l02305"></a>02305 <span class="preprocessor"> } \</span>
-<a name="l02306"></a>02306 <span class="preprocessor"> } else { \</span>
-<a name="l02307"></a>02307 <span class="preprocessor"> return op(BOOST_XINT_INTEGER_TYPE(n1), n2); \</span>
-<a name="l02308"></a>02308 <span class="preprocessor"> } \</span>
-<a name="l02309"></a>02309 <span class="preprocessor"> }</span>
-<a name="l02310"></a>02310 <span class="preprocessor"></span>
-<a name="l02311"></a>02311 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, <span class="keyword">operator</span><)
-<a name="l02312"></a>02312 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator>)
-<a name="l02313"></a>02313 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator<=)
-<a name="l02314"></a>02314 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator>=)
-<a name="l02315"></a>02315 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator==)
-<a name="l02316"></a>02316 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator!=)
-<a name="l02317"></a>02317 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">int</span>, <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>)
-<a name="l02318"></a>02318
-<a name="l02320"></a><a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090">02320</a> <span class="preprocessor">#define BOOST_XINT_ANY_MATH(op) \</span>
-<a name="l02321"></a>02321 <span class="preprocessor"> template <class A0, class A1, class A2, class A3, class A4, typename N> \</span>
-<a name="l02322"></a>02322 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE op(const BOOST_XINT_INTEGER_TYPE n1, const N n2) { \</span>
-<a name="l02323"></a>02323 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
-<a name="l02324"></a>02324 <span class="preprocessor"> try { \</span>
-<a name="l02325"></a>02325 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(n1, BOOST_XINT_INTEGER_TYPE(n2)));\</span>
-<a name="l02326"></a>02326 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
-<a name="l02327"></a>02327 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02328"></a>02328 <span class="preprocessor"> } catch (std::exception&) { \</span>
-<a name="l02329"></a>02329 <span class="preprocessor"> return BOOST_XINT_INTEGER_TYPE::nan(); \</span>
-<a name="l02330"></a>02330 <span class="preprocessor"> } \</span>
-<a name="l02331"></a>02331 <span class="preprocessor"> } else { \</span>
-<a name="l02332"></a>02332 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(n1, BOOST_XINT_INTEGER_TYPE(n2))); \</span>
-<a name="l02333"></a>02333 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
-<a name="l02334"></a>02334 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02335"></a>02335 <span class="preprocessor"> } \</span>
-<a name="l02336"></a>02336 <span class="preprocessor"> } \</span>
-<a name="l02337"></a>02337 <span class="preprocessor"> \</span>
-<a name="l02338"></a>02338 <span class="preprocessor"> template <typename N, class A0, class A1, class A2, class A3, class A4> \</span>
-<a name="l02339"></a>02339 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE op(const N n1, const BOOST_XINT_INTEGER_TYPE n2) { \</span>
-<a name="l02340"></a>02340 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
-<a name="l02341"></a>02341 <span class="preprocessor"> try { \</span>
-<a name="l02342"></a>02342 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(BOOST_XINT_INTEGER_TYPE(n1), n2));\</span>
-<a name="l02343"></a>02343 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
-<a name="l02344"></a>02344 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02345"></a>02345 <span class="preprocessor"> } catch (std::exception&) { \</span>
-<a name="l02346"></a>02346 <span class="preprocessor"> return BOOST_XINT_INTEGER_TYPE::nan(); \</span>
-<a name="l02347"></a>02347 <span class="preprocessor"> } \</span>
-<a name="l02348"></a>02348 <span class="preprocessor"> } else { \</span>
-<a name="l02349"></a>02349 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(BOOST_XINT_INTEGER_TYPE(n1), n2)); \</span>
-<a name="l02350"></a>02350 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
-<a name="l02351"></a>02351 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02352"></a>02352 <span class="preprocessor"> } \</span>
-<a name="l02353"></a>02353 <span class="preprocessor"> }</span>
-<a name="l02354"></a>02354 <span class="preprocessor"></span>
-<a name="l02355"></a>02355 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>)
-<a name="l02356"></a>02356 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>)
-<a name="l02357"></a>02357 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>)
-<a name="l02358"></a>02358 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>)
-<a name="l02359"></a>02359 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>)
-<a name="l02360"></a>02360 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator+)
-<a name="l02361"></a>02361 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator-)
-<a name="l02362"></a>02362 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator*)
-<a name="l02363"></a>02363 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator/)
-<a name="l02364"></a>02364 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator%)
-<a name="l02365"></a>02365 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator&)
-<a name="l02366"></a>02366 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator|)
-<a name="l02367"></a>02367 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator^)
-<a name="l02368"></a>02368 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>)
-<a name="l02369"></a>02369 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>)
-<a name="l02370"></a>02370
-<a name="l02373"></a>02373 template <typename charT, typename traits, class A0, class A1, class A2, class
-<a name="l02374"></a>02374 A3, class A4> inline std::basic_ostream<charT,traits>&
-<a name="l02375"></a><a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">02375</a> operator<<(std::basic_ostream<charT, traits>& out, const
-<a name="l02376"></a>02376 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
-<a name="l02377"></a>02377 {
-<a name="l02378"></a>02378 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow && n.is_nan()) <span class="keywordflow">return</span> <span class="keyword">operator</span><<(out,
-<a name="l02379"></a>02379 <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">nan_text</a>);
-<a name="l02380"></a>02380 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">operator<<</a>(out, n._data());
-<a name="l02381"></a>02381 }
-<a name="l02382"></a>02382
-<a name="l02383"></a>02383 <span class="keyword">template</span> <<span class="keyword">typename</span> charT, <span class="keyword">typename</span> traits, <span class="keyword">class </span>A0, <span class="keyword">class </span>A1, <span class="keyword">class </span>A2, <span class="keyword">class</span>
-<a name="l02384"></a>02384 A3, <span class="keyword">class </span>A4> <span class="keyword">inline</span> std::basic_istream<charT,traits>&
-<a name="l02385"></a><a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">02385</a> <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator>></a>(std::basic_istream<charT, traits>& in, <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&
-<a name="l02386"></a>02386 n)
-<a name="l02387"></a>02387 {
-<a name="l02388"></a>02388 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow && in.peek()==<span class="charliteral">'#'</span>) {
-<a name="l02389"></a>02389 <span class="comment">// Must be either #NaN# or an error</span>
-<a name="l02390"></a>02390 <span class="keywordtype">char</span> buffer[6];
-<a name="l02391"></a>02391
-<a name="l02392"></a>02392 <span class="comment">// These are efficient and safe, but MSVC complains about them anyway.</span>
-<a name="l02393"></a>02393 <span class="comment">//std::streamsize size = in.readsome(buffer, 5);</span>
-<a name="l02394"></a>02394 <span class="comment">//buffer[size]=0;</span>
-<a name="l02395"></a>02395
-<a name="l02396"></a>02396 <span class="comment">// Replacing them with these.</span>
-<a name="l02397"></a>02397 <span class="keywordtype">char</span> *p = buffer, *pe = p + 5;
-<a name="l02398"></a>02398 <span class="keywordflow">while</span> (p != pe) in >> *p++;
-<a name="l02399"></a>02399 *p = 0;
-<a name="l02400"></a>02400
-<a name="l02401"></a>02401 std::string str(buffer);
-<a name="l02402"></a>02402
-<a name="l02403"></a>02403 <span class="keywordflow">if</span> (str == <a class="code" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b" title="This is the string representation of the Not-a-Number value.">boost::xint::nan_text</a>) n = n.nan();
-<a name="l02404"></a>02404 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
-<a name="l02405"></a>02405 <span class="keywordflow">return</span> in;
-<a name="l02406"></a>02406 }
-<a name="l02407"></a>02407 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator>></a>(in, n._data());
-<a name="l02408"></a>02408 }
-<a name="l02410"></a>02410
-<a name="l02411"></a>02411 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02412"></a><a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">02412</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& left, <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& right)
-<a name="l02413"></a>02413 {
-<a name="l02414"></a>02414 left._swap(right);
-<a name="l02415"></a>02415 }
-<a name="l02416"></a>02416
-<a name="l02421"></a><a class="code" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">02421</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t<></a> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer</a>;
-<a name="l02422"></a>02422
-<a name="l02428"></a><a class="code" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4">02428</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t<options::nothrow<true></a> > <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">nothrow_integer</a>;
-<a name="l02429"></a>02429
-<a name="l02430"></a>02430 } <span class="comment">// namespace xint</span>
-<a name="l02431"></a>02431 } <span class="comment">// namespace boost</span>
-<a name="l02432"></a>02432
-<a name="l02433"></a>02433 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l02434"></a>02434 <span class="preprocessor"></span><span class="keyword">namespace </span>std {
-<a name="l02435"></a>02435
-<a name="l02436"></a>02436 <span class="preprocessor">#define BOOST_XINT_INTEGER_TYPENAME boost::xint::integer_t<A0, A1, A2, A3, A4></span>
-<a name="l02437"></a>02437 <span class="preprocessor"></span>
-<a name="l02438"></a>02438 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02439"></a>02439 <span class="keyword">class </span>numeric_limits<BOOST_XINT_INTEGER_TYPENAME> {
-<a name="l02440"></a>02440 <span class="keyword">public</span>:
-<a name="l02441"></a>02441 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_specialized;
+<a name="l01962"></a><a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">01962</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l01963"></a>01963 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l01964"></a>01964 {
+<a name="l01965"></a>01965 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01966"></a>01966 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01967"></a>01967 <span class="keywordflow">try</span> {
+<a name="l01968"></a>01968 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(n1._data(), n2._data());
+<a name="l01969"></a>01969 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l01970"></a>01970 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01971"></a>01971 }
+<a name="l01972"></a>01972 } <span class="keywordflow">else</span> {
+<a name="l01973"></a>01973 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(n1._data(), n2._data());
+<a name="l01974"></a>01974 }
+<a name="l01975"></a>01975 }
+<a name="l01977"></a>01977
+<a name="l01982"></a>01982
+<a name="l01983"></a>01983
+<a name="l01992"></a>01992 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l01993"></a><a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915">01993</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l01994"></a>01994 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l01995"></a>01995 {
+<a name="l01996"></a>01996 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l01997"></a>01997 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l01998"></a>01998 <span class="keywordflow">try</span> {
+<a name="l01999"></a>01999 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() + n2._data());
+<a name="l02000"></a>02000 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02001"></a>02001 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02002"></a>02002 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02003"></a>02003 }
+<a name="l02004"></a>02004 } <span class="keywordflow">else</span> {
+<a name="l02005"></a>02005 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() + n2._data());
+<a name="l02006"></a>02006 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02007"></a>02007 }
+<a name="l02008"></a>02008 }
+<a name="l02009"></a>02009
+<a name="l02018"></a>02018 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02019"></a><a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27">02019</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">operator-</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l02020"></a>02020 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l02021"></a>02021 {
+<a name="l02022"></a>02022 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02023"></a>02023 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02024"></a>02024 <span class="keywordflow">try</span> {
+<a name="l02025"></a>02025 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() - n2._data());
+<a name="l02026"></a>02026 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02027"></a>02027 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02028"></a>02028 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02029"></a>02029 }
+<a name="l02030"></a>02030 } <span class="keywordflow">else</span> {
+<a name="l02031"></a>02031 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() - n2._data());
+<a name="l02032"></a>02032 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02033"></a>02033 }
+<a name="l02034"></a>02034 }
+<a name="l02035"></a>02035
+<a name="l02048"></a>02048 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02049"></a><a class="code" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455">02049</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455" title="Calculate the product of two integers.">operator*</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l02050"></a>02050 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l02051"></a>02051 {
+<a name="l02052"></a>02052 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02053"></a>02053 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02054"></a>02054 <span class="keywordflow">try</span> {
+<a name="l02055"></a>02055 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() * n2._data());
+<a name="l02056"></a>02056 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02057"></a>02057 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02058"></a>02058 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02059"></a>02059 }
+<a name="l02060"></a>02060 } <span class="keywordflow">else</span> {
+<a name="l02061"></a>02061 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() * n2._data());
+<a name="l02062"></a>02062 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02063"></a>02063 }
+<a name="l02064"></a>02064 }
+<a name="l02065"></a>02065
+<a name="l02076"></a>02076 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02077"></a><a class="code" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21">02077</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21" title="Calculate how many dividends would fit into divisor.">operator/</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> dividend, <span class="keyword">const</span>
+<a name="l02078"></a>02078 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> divisor)
+<a name="l02079"></a>02079 {
+<a name="l02080"></a>02080 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02081"></a>02081 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span>
+<a name="l02082"></a>02082 BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02083"></a>02083 <span class="keywordflow">try</span> {
+<a name="l02084"></a>02084 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(dividend._data() / divisor._data());
+<a name="l02085"></a>02085 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02086"></a>02086 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02087"></a>02087 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02088"></a>02088 }
+<a name="l02089"></a>02089 } <span class="keywordflow">else</span> {
+<a name="l02090"></a>02090 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(dividend._data() / divisor._data());
+<a name="l02091"></a>02091 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02092"></a>02092 }
+<a name="l02093"></a>02093 }
+<a name="l02094"></a>02094
+<a name="l02104"></a>02104 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02105"></a><a class="code" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67">02105</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67" title="Get the remainder after dividing a number by another.">operator%</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l02106"></a>02106 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l02107"></a>02107 {
+<a name="l02108"></a>02108 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02109"></a>02109 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02110"></a>02110 <span class="keywordflow">try</span> {
+<a name="l02111"></a>02111 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() % n2._data());
+<a name="l02112"></a>02112 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02113"></a>02113 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02114"></a>02114 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02115"></a>02115 }
+<a name="l02116"></a>02116 } <span class="keywordflow">else</span> {
+<a name="l02117"></a>02117 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() % n2._data());
+<a name="l02118"></a>02118 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02119"></a>02119 }
+<a name="l02120"></a>02120 }
+<a name="l02121"></a>02121
+<a name="l02131"></a>02131 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02132"></a><a class="code" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3">02132</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3" title="Combine two integers using a bitwise AND operation.">operator&</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l02133"></a>02133 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l02134"></a>02134 {
+<a name="l02135"></a>02135 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02136"></a>02136 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02137"></a>02137 <span class="keywordflow">try</span> {
+<a name="l02138"></a>02138 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() & n2._data());
+<a name="l02139"></a>02139 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02140"></a>02140 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02141"></a>02141 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02142"></a>02142 }
+<a name="l02143"></a>02143 } <span class="keywordflow">else</span> {
+<a name="l02144"></a>02144 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() & n2._data());
+<a name="l02145"></a>02145 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02146"></a>02146 }
+<a name="l02147"></a>02147 }
+<a name="l02148"></a>02148
+<a name="l02158"></a>02158 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02159"></a><a class="code" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075">02159</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075" title="Combine two integers using a bitwise OR operation.">operator|</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l02160"></a>02160 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l02161"></a>02161 {
+<a name="l02162"></a>02162 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02163"></a>02163 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02164"></a>02164 <span class="keywordflow">try</span> {
+<a name="l02165"></a>02165 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() | n2._data());
+<a name="l02166"></a>02166 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02167"></a>02167 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02168"></a>02168 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02169"></a>02169 }
+<a name="l02170"></a>02170 } <span class="keywordflow">else</span> {
+<a name="l02171"></a>02171 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() | n2._data());
+<a name="l02172"></a>02172 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02173"></a>02173 }
+<a name="l02174"></a>02174 }
+<a name="l02175"></a>02175
+<a name="l02185"></a>02185 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02186"></a><a class="code" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025">02186</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025" title="Combine two integers using a bitwise XOR operation.">operator^</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
+<a name="l02187"></a>02187 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
+<a name="l02188"></a>02188 {
+<a name="l02189"></a>02189 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02190"></a>02190 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02191"></a>02191 <span class="keywordflow">try</span> {
+<a name="l02192"></a>02192 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() ^ n2._data());
+<a name="l02193"></a>02193 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02194"></a>02194 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02195"></a>02195 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02196"></a>02196 }
+<a name="l02197"></a>02197 } <span class="keywordflow">else</span> {
+<a name="l02198"></a>02198 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() ^ n2._data());
+<a name="l02199"></a>02199 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02200"></a>02200 }
+<a name="l02201"></a>02201 }
+<a name="l02203"></a>02203
+<a name="l02206"></a>02206
+<a name="l02216"></a>02216 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02217"></a><a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e">02217</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num1, <span class="keyword">const</span>
+<a name="l02218"></a>02218 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num2)
+<a name="l02219"></a>02219 {
+<a name="l02220"></a>02220 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02221"></a>02221 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
+<a name="l02222"></a>02222 BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02223"></a>02223 <span class="keywordflow">try</span> {
+<a name="l02224"></a>02224 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l02225"></a>02225 <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
+<a name="l02226"></a>02226 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l02227"></a>02227 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02228"></a>02228 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02229"></a>02229 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02230"></a>02230 }
+<a name="l02231"></a>02231 } <span class="keywordflow">else</span> {
+<a name="l02232"></a>02232 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l02233"></a>02233 <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
+<a name="l02234"></a>02234 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l02235"></a>02235 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02236"></a>02236 }
+<a name="l02237"></a>02237 }
+<a name="l02238"></a>02238
+<a name="l02249"></a>02249 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02250"></a><a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4">02250</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num1, <span class="keyword">const</span>
+<a name="l02251"></a>02251 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num2)
+<a name="l02252"></a>02252 {
+<a name="l02253"></a>02253 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02254"></a>02254 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
+<a name="l02255"></a>02255 BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02256"></a>02256 <span class="keywordflow">try</span> {
+<a name="l02257"></a>02257 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l02258"></a>02258 <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
+<a name="l02259"></a>02259 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l02260"></a>02260 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02261"></a>02261 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02262"></a>02262 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
+<a name="l02263"></a>02263 }
+<a name="l02264"></a>02264 } <span class="keywordflow">else</span> {
+<a name="l02265"></a>02265 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
+<a name="l02266"></a>02266 <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
+<a name="l02267"></a>02267 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l02268"></a>02268 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02269"></a>02269 }
+<a name="l02270"></a>02270 }
+<a name="l02271"></a>02271
+<a name="l02284"></a>02284 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02285"></a><a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0">02285</a> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2,
+<a name="l02286"></a>02286 <span class="keywordtype">bool</span> ignoresign = <span class="keyword">false</span>)
+<a name="l02287"></a>02287 {
+<a name="l02288"></a>02288 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02289"></a>02289 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> 2;
+<a name="l02290"></a>02290 <span class="keywordflow">try</span> {
+<a name="l02291"></a>02291 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
+<a name="l02292"></a>02292 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02293"></a>02293 <span class="keywordflow">return</span> 2;
+<a name="l02294"></a>02294 }
+<a name="l02295"></a>02295 } <span class="keywordflow">else</span> {
+<a name="l02296"></a>02296 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
+<a name="l02297"></a>02297 }
+<a name="l02298"></a>02298 }
+<a name="l02299"></a>02299
+<a name="l02316"></a>02316 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02317"></a><a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18">02317</a> <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
+<a name="l02318"></a>02318 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02319"></a>02319 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> 0;
+<a name="l02320"></a>02320 <span class="keywordflow">try</span> {
+<a name="l02321"></a>02321 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(n._data());
+<a name="l02322"></a>02322 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l02323"></a>02323 <span class="keywordflow">return</span> 0;
+<a name="l02324"></a>02324 }
+<a name="l02325"></a>02325 } <span class="keywordflow">else</span> {
+<a name="l02326"></a>02326 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(n._data());
+<a name="l02327"></a>02327 }
+<a name="l02328"></a>02328 }
+<a name="l02330"></a>02330
+<a name="l02332"></a><a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd">02332</a> <span class="preprocessor">#define BOOST_XINT_ANY_COMPARE(rtype, op) \</span>
+<a name="l02333"></a>02333 <span class="preprocessor"> template <class A0, class A1, class A2, class A3, class A4, typename N> \</span>
+<a name="l02334"></a>02334 <span class="preprocessor"> rtype op(const BOOST_XINT_INTEGER_TYPE n1, const N n2) { \</span>
+<a name="l02335"></a>02335 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
+<a name="l02336"></a>02336 <span class="preprocessor"> try { \</span>
+<a name="l02337"></a>02337 <span class="preprocessor"> return op(n1, BOOST_XINT_INTEGER_TYPE(n2)); \</span>
+<a name="l02338"></a>02338 <span class="preprocessor"> } catch (std::exception&) { \</span>
+<a name="l02339"></a>02339 <span class="preprocessor"> return rtype(0); \</span>
+<a name="l02340"></a>02340 <span class="preprocessor"> } \</span>
+<a name="l02341"></a>02341 <span class="preprocessor"> } else { \</span>
+<a name="l02342"></a>02342 <span class="preprocessor"> return op(n1, BOOST_XINT_INTEGER_TYPE(n2)); \</span>
+<a name="l02343"></a>02343 <span class="preprocessor"> } \</span>
+<a name="l02344"></a>02344 <span class="preprocessor"> } \</span>
+<a name="l02345"></a>02345 <span class="preprocessor"> \</span>
+<a name="l02346"></a>02346 <span class="preprocessor"> template <typename N, class A0, class A1, class A2, class A3, class A4> \</span>
+<a name="l02347"></a>02347 <span class="preprocessor"> rtype op(const N n1, const BOOST_XINT_INTEGER_TYPE n2) { \</span>
+<a name="l02348"></a>02348 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
+<a name="l02349"></a>02349 <span class="preprocessor"> try { \</span>
+<a name="l02350"></a>02350 <span class="preprocessor"> return op(BOOST_XINT_INTEGER_TYPE(n1), n2); \</span>
+<a name="l02351"></a>02351 <span class="preprocessor"> } catch (std::exception&) { \</span>
+<a name="l02352"></a>02352 <span class="preprocessor"> return rtype(0); \</span>
+<a name="l02353"></a>02353 <span class="preprocessor"> } \</span>
+<a name="l02354"></a>02354 <span class="preprocessor"> } else { \</span>
+<a name="l02355"></a>02355 <span class="preprocessor"> return op(BOOST_XINT_INTEGER_TYPE(n1), n2); \</span>
+<a name="l02356"></a>02356 <span class="preprocessor"> } \</span>
+<a name="l02357"></a>02357 <span class="preprocessor"> }</span>
+<a name="l02358"></a>02358 <span class="preprocessor"></span>
+<a name="l02359"></a>02359 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, <span class="keyword">operator</span><)
+<a name="l02360"></a>02360 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator>)
+<a name="l02361"></a>02361 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator<=)
+<a name="l02362"></a>02362 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator>=)
+<a name="l02363"></a>02363 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator==)
+<a name="l02364"></a>02364 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">bool</span>, operator!=)
+<a name="l02365"></a>02365 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">int</span>, <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>)
+<a name="l02366"></a>02366
+<a name="l02368"></a><a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090">02368</a> <span class="preprocessor">#define BOOST_XINT_ANY_MATH(op) \</span>
+<a name="l02369"></a>02369 <span class="preprocessor"> template <class A0, class A1, class A2, class A3, class A4, typename N> \</span>
+<a name="l02370"></a>02370 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE op(const BOOST_XINT_INTEGER_TYPE n1, const N n2) { \</span>
+<a name="l02371"></a>02371 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
+<a name="l02372"></a>02372 <span class="preprocessor"> try { \</span>
+<a name="l02373"></a>02373 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(n1, BOOST_XINT_INTEGER_TYPE(n2)));\</span>
+<a name="l02374"></a>02374 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
+<a name="l02375"></a>02375 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<a name="l02376"></a>02376 <span class="preprocessor"> } catch (std::exception&) { \</span>
+<a name="l02377"></a>02377 <span class="preprocessor"> return BOOST_XINT_INTEGER_TYPE::nan(); \</span>
+<a name="l02378"></a>02378 <span class="preprocessor"> } \</span>
+<a name="l02379"></a>02379 <span class="preprocessor"> } else { \</span>
+<a name="l02380"></a>02380 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(n1, BOOST_XINT_INTEGER_TYPE(n2))); \</span>
+<a name="l02381"></a>02381 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
+<a name="l02382"></a>02382 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<a name="l02383"></a>02383 <span class="preprocessor"> } \</span>
+<a name="l02384"></a>02384 <span class="preprocessor"> } \</span>
+<a name="l02385"></a>02385 <span class="preprocessor"> \</span>
+<a name="l02386"></a>02386 <span class="preprocessor"> template <typename N, class A0, class A1, class A2, class A3, class A4> \</span>
+<a name="l02387"></a>02387 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE op(const N n1, const BOOST_XINT_INTEGER_TYPE n2) { \</span>
+<a name="l02388"></a>02388 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
+<a name="l02389"></a>02389 <span class="preprocessor"> try { \</span>
+<a name="l02390"></a>02390 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(BOOST_XINT_INTEGER_TYPE(n1), n2));\</span>
+<a name="l02391"></a>02391 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
+<a name="l02392"></a>02392 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<a name="l02393"></a>02393 <span class="preprocessor"> } catch (std::exception&) { \</span>
+<a name="l02394"></a>02394 <span class="preprocessor"> return BOOST_XINT_INTEGER_TYPE::nan(); \</span>
+<a name="l02395"></a>02395 <span class="preprocessor"> } \</span>
+<a name="l02396"></a>02396 <span class="preprocessor"> } else { \</span>
+<a name="l02397"></a>02397 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(BOOST_XINT_INTEGER_TYPE(n1), n2)); \</span>
+<a name="l02398"></a>02398 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
+<a name="l02399"></a>02399 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<a name="l02400"></a>02400 <span class="preprocessor"> } \</span>
+<a name="l02401"></a>02401 <span class="preprocessor"> }</span>
+<a name="l02402"></a>02402 <span class="preprocessor"></span>
+<a name="l02403"></a>02403 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>)
+<a name="l02404"></a>02404 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>)
+<a name="l02405"></a>02405 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>)
+<a name="l02406"></a>02406 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>)
+<a name="l02407"></a>02407 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>)
+<a name="l02408"></a>02408 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator+)
+<a name="l02409"></a>02409 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator-)
+<a name="l02410"></a>02410 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator*)
+<a name="l02411"></a>02411 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator/)
+<a name="l02412"></a>02412 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator%)
+<a name="l02413"></a>02413 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator&)
+<a name="l02414"></a>02414 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator|)
+<a name="l02415"></a>02415 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator^)
+<a name="l02416"></a>02416 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>)
+<a name="l02417"></a>02417 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>)
+<a name="l02418"></a>02418
+<a name="l02421"></a>02421 template <typename charT, typename traits, class A0, class A1, class A2, class
+<a name="l02422"></a>02422 A3, class A4> inline std::basic_ostream<charT,traits>&
+<a name="l02423"></a><a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">02423</a> operator<<(std::basic_ostream<charT, traits>& out, const
+<a name="l02424"></a>02424 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
+<a name="l02425"></a>02425 {
+<a name="l02426"></a>02426 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow && n.is_nan()) <span class="keywordflow">return</span> <span class="keyword">operator</span><<(out,
+<a name="l02427"></a>02427 detail::nan_text<charT>());
+<a name="l02428"></a>02428 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">operator<<</a>(out, n._data());
+<a name="l02429"></a>02429 }
+<a name="l02430"></a>02430
+<a name="l02431"></a>02431 <span class="keyword">template</span> <<span class="keyword">typename</span> charT, <span class="keyword">typename</span> traits, <span class="keyword">class </span>A0, <span class="keyword">class </span>A1, <span class="keyword">class </span>A2, <span class="keyword">class</span>
+<a name="l02432"></a>02432 A3, <span class="keyword">class </span>A4> <span class="keyword">inline</span> std::basic_istream<charT,traits>&
+<a name="l02433"></a><a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">02433</a> <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator>></a>(std::basic_istream<charT, traits>& in, <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&
+<a name="l02434"></a>02434 n)
+<a name="l02435"></a>02435 {
+<a name="l02436"></a>02436 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+<a name="l02437"></a>02437 std::basic_string<charT> tnan = detail::nan_text<charT>();
+<a name="l02438"></a>02438 charT nextchar = charT(in.peek());
+<a name="l02439"></a>02439 <span class="keywordflow">if</span> (nextchar == tnan[0]) {
+<a name="l02440"></a>02440 <span class="comment">// Must be either #NaN# or an error</span>
+<a name="l02441"></a>02441 std::vector<charT> buffer;
<a name="l02442"></a>02442
-<a name="l02443"></a>02443 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME min BOOST_PREVENT_MACRO_SUBSTITUTION()
-<a name="l02444"></a>02444 <span class="keywordflow">throw</span>()
-<a name="l02445"></a>02445 {
-<a name="l02446"></a>02446 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPENAME::Bits)
-<a name="l02447"></a>02447 <span class="keywordflow">return</span> -~(BOOST_XINT_INTEGER_TYPENAME());
-<a name="l02448"></a>02448 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02449"></a>02449 }
-<a name="l02450"></a>02450 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME max BOOST_PREVENT_MACRO_SUBSTITUTION()
-<a name="l02451"></a>02451 throw()
-<a name="l02452"></a>02452 {
-<a name="l02453"></a>02453 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPENAME::Bits)
-<a name="l02454"></a>02454 <span class="keywordflow">return</span> ~(BOOST_XINT_INTEGER_TYPENAME());
-<a name="l02455"></a>02455 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02456"></a>02456 }
-<a name="l02457"></a>02457
-<a name="l02458"></a>02458 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits;
-<a name="l02459"></a>02459 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits10;
-<a name="l02460"></a>02460 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_signed;
-<a name="l02461"></a>02461 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_integer;
-<a name="l02462"></a>02462 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_exact;
-<a name="l02463"></a>02463 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> radix;
-<a name="l02464"></a>02464 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME epsilon() throw() { <span class="keywordflow">return</span> 0; }
-<a name="l02465"></a>02465 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME round_error() throw() { <span class="keywordflow">return</span> 0; }
-<a name="l02466"></a>02466
-<a name="l02467"></a>02467 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> min_exponent; <span class="comment">// N/A</span>
-<a name="l02468"></a>02468 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> min_exponent10; <span class="comment">// N/A</span>
-<a name="l02469"></a>02469 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> max_exponent; <span class="comment">// N/A</span>
-<a name="l02470"></a>02470 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> max_exponent10; <span class="comment">// N/A</span>
-<a name="l02471"></a>02471
-<a name="l02472"></a>02472 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_infinity; <span class="comment">// N/A</span>
-<a name="l02473"></a>02473 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_quiet_NaN;
-<a name="l02474"></a>02474 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_signaling_NaN; <span class="comment">// N/A</span>
-<a name="l02475"></a>02475 <span class="keyword">static</span> <span class="keyword">const</span> float_denorm_style has_denorm; <span class="comment">// N/A</span>
-<a name="l02476"></a>02476 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_denorm_loss; <span class="comment">// N/A</span>
-<a name="l02477"></a>02477
-<a name="l02478"></a>02478 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME infinity() throw() { <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02479"></a>02479 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME quiet_NaN() throw() {
-<a name="l02480"></a>02480 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPENAME::Nothrow)
-<a name="l02481"></a>02481 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPENAME::nan();
-<a name="l02482"></a>02482 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02483"></a>02483 }
-<a name="l02484"></a>02484 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME signaling_NaN() throw() { <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02485"></a>02485 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME denorm_min() throw() { <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02443"></a>02443 <span class="comment">// These are efficient and safe, but MSVC complains about them anyway.</span>
+<a name="l02444"></a>02444 <span class="comment">//std::streamsize size = in.readsome(buffer, 5);</span>
+<a name="l02445"></a>02445 <span class="comment">//buffer[size]=0;</span>
+<a name="l02446"></a>02446
+<a name="l02447"></a>02447 <span class="comment">// Replacing them with these.</span>
+<a name="l02448"></a>02448 charT p = 0;
+<a name="l02449"></a>02449 <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < tnan.length(); ++i) {
+<a name="l02450"></a>02450 in >> p;
+<a name="l02451"></a>02451 buffer.push_back(p);
+<a name="l02452"></a>02452 }
+<a name="l02453"></a>02453 buffer.push_back(0);
+<a name="l02454"></a>02454
+<a name="l02455"></a>02455 std::basic_string<charT> str(&buffer[0]);
+<a name="l02456"></a>02456 <span class="keywordflow">if</span> (str == tnan) n = n.nan();
+<a name="l02457"></a>02457 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
+<a name="l02458"></a>02458 <span class="keywordflow">return</span> in;
+<a name="l02459"></a>02459 }
+<a name="l02460"></a>02460 }
+<a name="l02461"></a>02461 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator>></a>(in, n._data());
+<a name="l02462"></a>02462 }
+<a name="l02464"></a>02464
+<a name="l02465"></a>02465 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02466"></a><a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">02466</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& left, <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>& right)
+<a name="l02467"></a>02467 {
+<a name="l02468"></a>02468 left._swap(right);
+<a name="l02469"></a>02469 }
+<a name="l02470"></a>02470
+<a name="l02475"></a><a class="code" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">02475</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t<></a> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer</a>;
+<a name="l02476"></a>02476
+<a name="l02482"></a><a class="code" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4">02482</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t<options::nothrow<true></a> > <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">nothrow_integer</a>;
+<a name="l02483"></a>02483
+<a name="l02484"></a>02484 } <span class="comment">// namespace xint</span>
+<a name="l02485"></a>02485 } <span class="comment">// namespace boost</span>
<a name="l02486"></a>02486
-<a name="l02487"></a>02487 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_iec559; <span class="comment">// N/A</span>
-<a name="l02488"></a>02488 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_bounded;
-<a name="l02489"></a>02489 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_modulo;
-<a name="l02490"></a>02490
-<a name="l02491"></a>02491 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> traps; <span class="comment">// I assume this means exceptions?</span>
-<a name="l02492"></a>02492 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> tinyness_before; <span class="comment">// N/A</span>
-<a name="l02493"></a>02493 <span class="keyword">static</span> <span class="keyword">const</span> float_round_style round_style; <span class="comment">// N/A</span>
-<a name="l02494"></a>02494 };
-<a name="l02495"></a>02495
-<a name="l02496"></a>02496 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02497"></a>02497 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_specialized = <span class="keyword">true</span>;
-<a name="l02498"></a>02498
-<a name="l02499"></a>02499 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02500"></a>02500 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::digits =
-<a name="l02501"></a>02501 <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(BOOST_XINT_INTEGER_TYPENAME::Bits);
-<a name="l02502"></a>02502
-<a name="l02503"></a>02503 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02504"></a>02504 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::digits10 =
-<a name="l02505"></a>02505 <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(boost::xint::detail::log10_bits(
-<a name="l02506"></a>02506 BOOST_XINT_INTEGER_TYPENAME::Bits));
-<a name="l02507"></a>02507
-<a name="l02508"></a>02508 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02509"></a>02509 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_signed = <span class="keyword">true</span>;
-<a name="l02510"></a>02510
-<a name="l02511"></a>02511 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02512"></a>02512 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_integer = <span class="keyword">true</span>;
-<a name="l02513"></a>02513
-<a name="l02514"></a>02514 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02515"></a>02515 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_exact = <span class="keyword">true</span>;
-<a name="l02516"></a>02516
-<a name="l02517"></a>02517 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02518"></a>02518 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::radix = 2;
-<a name="l02519"></a>02519
-<a name="l02520"></a>02520 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02521"></a>02521 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::min_exponent = 0;
-<a name="l02522"></a>02522
-<a name="l02523"></a>02523 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02524"></a>02524 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::min_exponent10 = 0;
+<a name="l02487"></a>02487 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l02488"></a>02488 <span class="preprocessor"></span><span class="keyword">namespace </span>std {
+<a name="l02489"></a>02489
+<a name="l02490"></a>02490 <span class="preprocessor">#define BOOST_XINT_INTEGER_TYPENAME boost::xint::integer_t<A0, A1, A2, A3, A4></span>
+<a name="l02491"></a>02491 <span class="preprocessor"></span>
+<a name="l02492"></a>02492 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02493"></a>02493 <span class="keyword">class </span>numeric_limits<BOOST_XINT_INTEGER_TYPENAME> {
+<a name="l02494"></a>02494 <span class="keyword">public</span>:
+<a name="l02495"></a>02495 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_specialized;
+<a name="l02496"></a>02496
+<a name="l02497"></a>02497 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME min BOOST_PREVENT_MACRO_SUBSTITUTION()
+<a name="l02498"></a>02498 <span class="keywordflow">throw</span>()
+<a name="l02499"></a>02499 {
+<a name="l02500"></a>02500 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPENAME::Bits)
+<a name="l02501"></a>02501 <span class="keywordflow">return</span> -~(BOOST_XINT_INTEGER_TYPENAME());
+<a name="l02502"></a>02502 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l02503"></a>02503 }
+<a name="l02504"></a>02504 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME max BOOST_PREVENT_MACRO_SUBSTITUTION()
+<a name="l02505"></a>02505 throw()
+<a name="l02506"></a>02506 {
+<a name="l02507"></a>02507 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPENAME::Bits)
+<a name="l02508"></a>02508 <span class="keywordflow">return</span> ~(BOOST_XINT_INTEGER_TYPENAME());
+<a name="l02509"></a>02509 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l02510"></a>02510 }
+<a name="l02511"></a>02511
+<a name="l02512"></a>02512 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits;
+<a name="l02513"></a>02513 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits10;
+<a name="l02514"></a>02514 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_signed;
+<a name="l02515"></a>02515 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_integer;
+<a name="l02516"></a>02516 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_exact;
+<a name="l02517"></a>02517 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> radix;
+<a name="l02518"></a>02518 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME epsilon() throw() { <span class="keywordflow">return</span> 0; }
+<a name="l02519"></a>02519 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME round_error() throw() { <span class="keywordflow">return</span> 0; }
+<a name="l02520"></a>02520
+<a name="l02521"></a>02521 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> min_exponent; <span class="comment">// N/A</span>
+<a name="l02522"></a>02522 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> min_exponent10; <span class="comment">// N/A</span>
+<a name="l02523"></a>02523 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> max_exponent; <span class="comment">// N/A</span>
+<a name="l02524"></a>02524 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> max_exponent10; <span class="comment">// N/A</span>
<a name="l02525"></a>02525
-<a name="l02526"></a>02526 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02527"></a>02527 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::max_exponent = 0;
-<a name="l02528"></a>02528
-<a name="l02529"></a>02529 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02530"></a>02530 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::max_exponent10 = 0;
+<a name="l02526"></a>02526 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_infinity; <span class="comment">// N/A</span>
+<a name="l02527"></a>02527 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_quiet_NaN;
+<a name="l02528"></a>02528 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_signaling_NaN; <span class="comment">// N/A</span>
+<a name="l02529"></a>02529 <span class="keyword">static</span> <span class="keyword">const</span> float_denorm_style has_denorm; <span class="comment">// N/A</span>
+<a name="l02530"></a>02530 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_denorm_loss; <span class="comment">// N/A</span>
<a name="l02531"></a>02531
-<a name="l02532"></a>02532 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02533"></a>02533 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_infinity = <span class="keyword">false</span>;
-<a name="l02534"></a>02534
-<a name="l02535"></a>02535 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02536"></a>02536 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_quiet_NaN =
-<a name="l02537"></a>02537 (BOOST_XINT_INTEGER_TYPENAME::Nothrow ? <span class="keyword">true</span> : <span class="keyword">false</span>);
-<a name="l02538"></a>02538
-<a name="l02539"></a>02539 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02540"></a>02540 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_signaling_NaN =
-<a name="l02541"></a>02541 <span class="keyword">false</span>;
-<a name="l02542"></a>02542
-<a name="l02543"></a>02543 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02544"></a>02544 <span class="keyword">const</span> float_denorm_style numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_denorm
-<a name="l02545"></a>02545 = denorm_absent;
-<a name="l02546"></a>02546
-<a name="l02547"></a>02547 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02548"></a>02548 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_denorm_loss = <span class="keyword">false</span>;
+<a name="l02532"></a>02532 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME infinity() throw() { <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02533"></a>02533 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME quiet_NaN() throw() {
+<a name="l02534"></a>02534 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPENAME::Nothrow)
+<a name="l02535"></a>02535 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPENAME::nan();
+<a name="l02536"></a>02536 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l02537"></a>02537 }
+<a name="l02538"></a>02538 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME signaling_NaN() throw() { <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02539"></a>02539 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME denorm_min() throw() { <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02540"></a>02540
+<a name="l02541"></a>02541 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_iec559; <span class="comment">// N/A</span>
+<a name="l02542"></a>02542 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_bounded;
+<a name="l02543"></a>02543 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_modulo;
+<a name="l02544"></a>02544
+<a name="l02545"></a>02545 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> traps; <span class="comment">// I assume this means exceptions?</span>
+<a name="l02546"></a>02546 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> tinyness_before; <span class="comment">// N/A</span>
+<a name="l02547"></a>02547 <span class="keyword">static</span> <span class="keyword">const</span> float_round_style round_style; <span class="comment">// N/A</span>
+<a name="l02548"></a>02548 };
<a name="l02549"></a>02549
<a name="l02550"></a>02550 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02551"></a>02551 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_iec559 = <span class="keyword">false</span>;
+<a name="l02551"></a>02551 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_specialized = <span class="keyword">true</span>;
<a name="l02552"></a>02552
<a name="l02553"></a>02553 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02554"></a>02554 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_bounded =
-<a name="l02555"></a>02555 (BOOST_XINT_INTEGER_TYPENAME::Bits == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>);
+<a name="l02554"></a>02554 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::digits =
+<a name="l02555"></a>02555 <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(BOOST_XINT_INTEGER_TYPENAME::Bits);
<a name="l02556"></a>02556
<a name="l02557"></a>02557 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02558"></a>02558 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_modulo =
-<a name="l02559"></a>02559 (BOOST_XINT_INTEGER_TYPENAME::Bits == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>);
-<a name="l02560"></a>02560
-<a name="l02561"></a>02561 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02562"></a>02562 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::traps =
-<a name="l02563"></a>02563 (BOOST_XINT_INTEGER_TYPENAME::Nothrow ? <span class="keyword">false</span> : <span class="keyword">true</span>);
+<a name="l02558"></a>02558 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::digits10 =
+<a name="l02559"></a>02559 <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(boost::xint::detail::log10_bits(
+<a name="l02560"></a>02560 BOOST_XINT_INTEGER_TYPENAME::Bits));
+<a name="l02561"></a>02561
+<a name="l02562"></a>02562 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02563"></a>02563 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_signed = <span class="keyword">true</span>;
<a name="l02564"></a>02564
<a name="l02565"></a>02565 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02566"></a>02566 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::tinyness_before = <span class="keyword">false</span>;
+<a name="l02566"></a>02566 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_integer = <span class="keyword">true</span>;
<a name="l02567"></a>02567
<a name="l02568"></a>02568 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02569"></a>02569 <span class="keyword">const</span> float_round_style numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::round_style
-<a name="l02570"></a>02570 = round_indeterminate;
-<a name="l02571"></a>02571
-<a name="l02572"></a>02572 } <span class="comment">// namespace std</span>
-<a name="l02573"></a>02573 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l02574"></a>02574 <span class="preprocessor"></span><span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_HPP</span>
+<a name="l02569"></a>02569 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_exact = <span class="keyword">true</span>;
+<a name="l02570"></a>02570
+<a name="l02571"></a>02571 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02572"></a>02572 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::radix = 2;
+<a name="l02573"></a>02573
+<a name="l02574"></a>02574 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02575"></a>02575 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::min_exponent = 0;
+<a name="l02576"></a>02576
+<a name="l02577"></a>02577 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02578"></a>02578 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::min_exponent10 = 0;
+<a name="l02579"></a>02579
+<a name="l02580"></a>02580 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02581"></a>02581 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::max_exponent = 0;
+<a name="l02582"></a>02582
+<a name="l02583"></a>02583 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02584"></a>02584 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::max_exponent10 = 0;
+<a name="l02585"></a>02585
+<a name="l02586"></a>02586 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02587"></a>02587 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_infinity = <span class="keyword">false</span>;
+<a name="l02588"></a>02588
+<a name="l02589"></a>02589 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02590"></a>02590 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_quiet_NaN =
+<a name="l02591"></a>02591 (BOOST_XINT_INTEGER_TYPENAME::Nothrow ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l02592"></a>02592
+<a name="l02593"></a>02593 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02594"></a>02594 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_signaling_NaN =
+<a name="l02595"></a>02595 <span class="keyword">false</span>;
+<a name="l02596"></a>02596
+<a name="l02597"></a>02597 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02598"></a>02598 <span class="keyword">const</span> float_denorm_style numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_denorm
+<a name="l02599"></a>02599 = denorm_absent;
+<a name="l02600"></a>02600
+<a name="l02601"></a>02601 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02602"></a>02602 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_denorm_loss = <span class="keyword">false</span>;
+<a name="l02603"></a>02603
+<a name="l02604"></a>02604 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02605"></a>02605 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_iec559 = <span class="keyword">false</span>;
+<a name="l02606"></a>02606
+<a name="l02607"></a>02607 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02608"></a>02608 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_bounded =
+<a name="l02609"></a>02609 (BOOST_XINT_INTEGER_TYPENAME::Bits == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>);
+<a name="l02610"></a>02610
+<a name="l02611"></a>02611 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02612"></a>02612 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_modulo =
+<a name="l02613"></a>02613 (BOOST_XINT_INTEGER_TYPENAME::Bits == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>);
+<a name="l02614"></a>02614
+<a name="l02615"></a>02615 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02616"></a>02616 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::traps =
+<a name="l02617"></a>02617 (BOOST_XINT_INTEGER_TYPENAME::Nothrow ? <span class="keyword">false</span> : <span class="keyword">true</span>);
+<a name="l02618"></a>02618
+<a name="l02619"></a>02619 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02620"></a>02620 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::tinyness_before = <span class="keyword">false</span>;
+<a name="l02621"></a>02621
+<a name="l02622"></a>02622 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
+<a name="l02623"></a>02623 <span class="keyword">const</span> float_round_style numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::round_style
+<a name="l02624"></a>02624 = round_indeterminate;
+<a name="l02625"></a>02625
+<a name="l02626"></a>02626 } <span class="comment">// namespace std</span>
+<a name="l02627"></a>02627 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l02628"></a>02628 <span class="preprocessor"></span><span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/internals_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/internals_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/internals_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<p>Definition in file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/internals_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/internals_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/internals_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -64,47 +64,64 @@
<a name="l00045"></a>00045 <span class="preprocessor">#include "<a class="code" href="divide_8hpp.html" title="Contains the definitions of the divide function, and its supporting functions.">divide.hpp</a>"</span>
<a name="l00046"></a>00046
<a name="l00047"></a>00047 <span class="preprocessor">#include "<a class="code" href="convert_8hpp.html" title="Contains the conversion functions.">convert.hpp</a>"</span>
-<a name="l00048"></a>00048
-<a name="l00049"></a>00049 <span class="preprocessor">#include "<a class="code" href="roots_8hpp.html" title="Contains the square-root function definition, and any future root-related ones.">roots.hpp</a>"</span>
-<a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="powers_8hpp.html" title="Contains functions related to powers of a number.">powers.hpp</a>"</span>
-<a name="l00051"></a>00051 <span class="preprocessor">#include "<a class="code" href="gcd_8hpp.html" title="Contains functions using the Greatest Common Denominator algorithm.">gcd.hpp</a>"</span>
-<a name="l00052"></a>00052 <span class="preprocessor">#include "<a class="code" href="monty_8hpp.html" title="Contains the Montgomery Reduction functions.">monty.hpp</a>"</span>
-<a name="l00053"></a>00053 <span class="preprocessor">#include "<a class="code" href="modular_8hpp.html" title="Contains the modular math functions.">modular.hpp</a>"</span>
-<a name="l00054"></a>00054 <span class="preprocessor">#include "<a class="code" href="prime_8hpp.html" title="Contains the function definitions for the prime number functions.">prime.hpp</a>"</span>
-<a name="l00055"></a>00055
-<a name="l00056"></a>00056 <span class="preprocessor">#include "<a class="code" href="options_8hpp.html" title="Declares the arbitrary-length integer type.">options.hpp</a>"</span>
-<a name="l00057"></a>00057
-<a name="l00060"></a>00060
-<a name="l00063"></a>00063
-<a name="l00064"></a>00064 <span class="keyword">namespace </span>boost {
-<a name="l00065"></a>00065 <span class="keyword">namespace </span>xint {
-<a name="l00066"></a>00066 <span class="keyword">namespace </span>detail {
-<a name="l00068"></a>00068
-<a name="l00069"></a>00069 <span class="keyword">inline</span> <span class="keywordtype">size_t</span> log10_bits(<span class="keywordtype">size_t</span> bits) {
-<a name="l00070"></a>00070 <span class="comment">// large_step and count_per_large_step are based on a minimum-32-bit integer</span>
-<a name="l00071"></a>00071 assert(std::numeric_limits<boost::intmax_t>::digits >= 32);
-<a name="l00072"></a>00072
-<a name="l00073"></a>00073 <span class="keyword">typedef</span> raw_integer_t<0, false, std::allocator<digit_t> > T;
-<a name="l00074"></a>00074 <span class="keyword">const</span> T large_step(1000000000), small_step(10);
-<a name="l00075"></a>00075 <span class="keyword">const</span> <span class="keywordtype">size_t</span> count_per_large_step = 9, count_per_small_step = 1;
-<a name="l00076"></a>00076
-<a name="l00077"></a>00077 T n;
-<a name="l00078"></a>00078 pow2(n, bits);
-<a name="l00079"></a>00079 --n;
-<a name="l00080"></a>00080
-<a name="l00081"></a>00081 <span class="keywordtype">size_t</span> r = 0;
-<a name="l00082"></a>00082 <span class="keywordflow">while</span> (n >= large_step) { n /= large_step; r += count_per_large_step; }
-<a name="l00083"></a>00083 <span class="keywordflow">while</span> (n >= small_step) { n /= small_step; r += count_per_small_step; }
-<a name="l00084"></a>00084 <span class="keywordflow">return</span> r;
-<a name="l00085"></a>00085 }
-<a name="l00086"></a>00086
-<a name="l00088"></a>00088 } <span class="comment">// namespace detail</span>
-<a name="l00089"></a>00089 } <span class="comment">// namespace xint</span>
-<a name="l00090"></a>00090 } <span class="comment">// namespace boost</span>
-<a name="l00091"></a>00091
-<a name="l00092"></a>00092 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include "<a class="code" href="streams_8hpp.html" title="Contains the stream input/output code for raw_integer types.">streams.hpp</a>"</span>
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="roots_8hpp.html" title="Contains the square-root function definition, and any future root-related ones.">roots.hpp</a>"</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#include "<a class="code" href="powers_8hpp.html" title="Contains functions related to powers of a number.">powers.hpp</a>"</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#include "<a class="code" href="gcd_8hpp.html" title="Contains functions using the Greatest Common Denominator algorithm.">gcd.hpp</a>"</span>
+<a name="l00053"></a>00053 <span class="preprocessor">#include "<a class="code" href="monty_8hpp.html" title="Contains the Montgomery Reduction functions.">monty.hpp</a>"</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#include "<a class="code" href="modular_8hpp.html" title="Contains the modular math functions.">modular.hpp</a>"</span>
+<a name="l00055"></a>00055 <span class="preprocessor">#include "<a class="code" href="prime_8hpp.html" title="Contains the function definitions for the prime number functions.">prime.hpp</a>"</span>
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 <span class="preprocessor">#include "<a class="code" href="options_8hpp.html" title="Declares the arbitrary-length integer type.">options.hpp</a>"</span>
+<a name="l00058"></a>00058
+<a name="l00061"></a>00061
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="keyword">namespace </span>boost {
+<a name="l00066"></a>00066 <span class="keyword">namespace </span>xint {
+<a name="l00067"></a>00067 <span class="keyword">namespace </span>detail {
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 <span class="keyword">inline</span> <span class="keywordtype">size_t</span> log10_bits(<span class="keywordtype">size_t</span> bits) {
+<a name="l00071"></a>00071 <span class="comment">// large_step and count_per_large_step are based on a minimum-32-bit integer</span>
+<a name="l00072"></a>00072 assert(std::numeric_limits<boost::intmax_t>::digits >= 32);
+<a name="l00073"></a>00073
+<a name="l00074"></a>00074 <span class="keyword">typedef</span> raw_integer_t<0, false, std::allocator<digit_t> > T;
+<a name="l00075"></a>00075 <span class="keyword">const</span> T large_step(1000000000), small_step(10);
+<a name="l00076"></a>00076 <span class="keyword">const</span> <span class="keywordtype">size_t</span> count_per_large_step = 9, count_per_small_step = 1;
+<a name="l00077"></a>00077
+<a name="l00078"></a>00078 T n;
+<a name="l00079"></a>00079 pow2(n, bits);
+<a name="l00080"></a>00080 --n;
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 <span class="keywordtype">size_t</span> r = 0;
+<a name="l00083"></a>00083 <span class="keywordflow">while</span> (n >= large_step) { n /= large_step; r += count_per_large_step; }
+<a name="l00084"></a>00084 <span class="keywordflow">while</span> (n >= small_step) { n /= small_step; r += count_per_small_step; }
+<a name="l00085"></a>00085 <span class="keywordflow">return</span> r;
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087
+<a name="l00088"></a>00088 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00089"></a>00089 std::basic_string<charT> nan_text() {
+<a name="l00090"></a>00090 <span class="keyword">static</span> std::basic_string<charT> r;
+<a name="l00091"></a>00091 <span class="keywordflow">if</span> (r.empty()) {
+<a name="l00092"></a>00092 std::basic_ostringstream<charT> out;
+<a name="l00093"></a>00093 out << <span class="stringliteral">"#NaN#"</span>;
+<a name="l00094"></a>00094 r = out.str();
+<a name="l00095"></a>00095 }
+<a name="l00096"></a>00096 <span class="keywordflow">return</span> r;
+<a name="l00097"></a>00097 }
+<a name="l00098"></a>00098
+<a name="l00099"></a>00099 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00100"></a>00100 <span class="keywordtype">bool</span> is_nan_text(<span class="keyword">const</span> std::basic_string<charT> str) {
+<a name="l00101"></a>00101 <span class="keywordflow">return</span> (str == nan_text<charT>());
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103
+<a name="l00105"></a>00105 } <span class="comment">// namespace detail</span>
+<a name="l00106"></a>00106 } <span class="comment">// namespace xint</span>
+<a name="l00107"></a>00107 } <span class="comment">// namespace boost</span>
+<a name="l00108"></a>00108
+<a name="l00109"></a>00109 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/log2_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/log2_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/log2_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<p>Definition in file <a class="el" href="log2_8hpp_source.html">log2.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/log2_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/log2_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/log2_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -88,7 +88,7 @@
<a name="l00071"></a>00071
<a name="l00072"></a>00072 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_LOG2_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/magnitude__manager_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/magnitude__manager_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/magnitude__manager_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<p>Definition in file <a class="el" href="magnitude__manager_8hpp_source.html">magnitude_manager.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/magnitude__manager_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/magnitude__manager_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/magnitude__manager_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -110,7 +110,7 @@
<a name="l00093"></a>00093
<a name="l00094"></a>00094 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MAGNITUDE_MANAGER_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/modular_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/modular_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/modular_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="modular_8hpp_source.html">modular.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/modular_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/modular_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/modular_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -101,7 +101,7 @@
<a name="l00084"></a>00084 <span class="comment"></span>
<a name="l00085"></a>00085 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MODULAR_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/monty_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/monty_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/monty_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="monty_8hpp_source.html">monty.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/monty_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/monty_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/monty_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -264,7 +264,7 @@
<a name="l00256"></a>00256 <span class="comment"></span>
<a name="l00257"></a>00257 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MONTY_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/multiply_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/multiply_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/multiply_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="multiply_8hpp_source.html">multiply.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/multiply_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/multiply_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/multiply_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -181,7 +181,7 @@
<a name="l00164"></a>00164 <span class="comment"></span>
<a name="l00165"></a>00165 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MULTIPLY_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespaceboost.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespaceboost.html (original)
+++ sandbox/xint/libs/xint/doc/namespaceboost.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -34,7 +34,7 @@
</p>
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespaceboost_1_1xint.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespaceboost_1_1xint.html (original)
+++ sandbox/xint/libs/xint/doc/namespaceboost_1_1xint.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -71,8 +71,6 @@
detail::strong_random_generator_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac38b0aafb375c80ff42b5488a52d9e8f">strong_random_generator</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">A convenience class for cryptographically-secure random numbers. <br/></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b">nan_text</a> ("#NaN#")</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">This is the string representation of the Not-a-Number value. <br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template<... > </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a> (<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &left, <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &right)</td></tr>
<tr><td colspan="2"><div class="groupHeader">Mathematical primitives</div></td></tr>
@@ -223,6 +221,9 @@
<tr><td class="memTemplParams" colspan="2">template<... > </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">std::string </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2">to_string</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, size_t base=10, bool uppercase=false)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a string representation of the specified integer. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template<... > </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::wstring </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab1c726c14c688957565bb5d2e8478c0b">to_wstring</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, size_t base=10, bool uppercase=false)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a wide-character string representation of the specified integer. <br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398">autobase</a> = (std::numeric_limits<size_t>::max)()</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">A value that can be used for the 'base' parameter of the string-to-integer constructor functions. <br/></td></tr>
@@ -297,7 +298,7 @@
<p>The default arbitrary-length integer type. </p>
<p>This uses the default parameters for the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> template. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02421">2421</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02475">2475</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -315,7 +316,7 @@
<p>The default arbitrary-length nothrow_integer type. </p>
<p>This uses the default parameters for the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> template, other than the <code>nothrow</code> one. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02428">2428</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02482">2482</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -372,7 +373,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>If <code>n</code> is zero or positive, returns <code>n</code>. Otherwise returns <code>-n</code>. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01218">1218</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01229">1229</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -416,7 +417,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Nothing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01549">1549</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01597">1597</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -466,7 +467,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if <code>n1</code> < <code>n2</code>; zero if <code>n1</code> == <code>n2</code>, or 1 if <code>n1</code> > <code>n2</code>. The nothrow<true> version returns 2 instead of throwing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02237">2237</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02285">2285</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -522,7 +523,7 @@
<dd>
<a class="el" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">integer_t::operator%=</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01254">1254</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01265">1265</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -565,7 +566,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The greatest common denominator of the two integers, which will always be a positive number. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02169">2169</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02217">2217</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -609,7 +610,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if the specified bit is set (has a value of one), <code>false</code> if it is clear. The nothrow<true> version returns <code>false</code> instead of throwing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01502">1502</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01550">1550</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -653,7 +654,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The zero-based index of the highest one-bit in the integer, or <code>return_if_zero</code> if the integer contains no set bits. The nothrow<true> version returns <code>return_if_zero</code> instead of throwing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01606">1606</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01654">1654</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -703,7 +704,7 @@
</dd>
</dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01763">1763</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01811">1811</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -755,7 +756,7 @@
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This function uses the Rabin-Miller probabilistic primality test. There is an infinitesimally small chance that it will think that a composite number is actually prime, but that is so small that it can be ignored for most practical purposes. If even that chance is too much, you can run this function over the number several times, it will use different randomly-selected "witness" numbers each time.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="primes.html">Generating Prime Numbers</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01816">1816</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01864">1864</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -798,7 +799,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The least common multiple of the two integers. If either integer is zero, then the return value will be zero, by convention; in all other cases, the return value will be a positive number. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02202">2202</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02250">2250</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -834,7 +835,7 @@
<dl class="remark"><dt><b>Remarks:</b></dt><dd>pow2(log2(n)-1) will give you an integer with the highest set bit of <code>n</code>, assuming that <code>n</code> is non-zero.</dd></dl>
<dl class="user"><dt><b></b></dt><dd>Similar to the <a class="el" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a> function. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02269">2269</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02317">2317</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -878,7 +879,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The zero-based index of the lowest one-bit in the integer, or <code>return_if_zero</code> if the integer contains no set bits. The nothrow<true> version returns <code>return_if_zero</code> instead of throwing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01577">1577</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01625">1625</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -929,27 +930,7 @@
<dl class="return"><dt><b>Returns:</b></dt><dd>The result of <code>n</code> * <code>by</code> % <code>modulus</code>.</dd></dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This is purely a convenience function, to make it easier to write self-documenting code. It does not provide any additional efficiency over writing out the calculation. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01647">1647</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ac80b017fceb4774cc3ff5a01a6d70d1b"></a><!-- doxytag: member="boost::xint::nan_text" ref="ac80b017fceb4774cc3ff5a01a6d70d1b" args="("#NaN#")" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">const std::string boost::xint::nan_text </td>
- <td>(</td>
- <td class="paramtype">"#NaN#" </td>
- <td class="paramname"></td>
- <td> ) </td>
- <td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>This is the string representation of the Not-a-Number value. </p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01695">1695</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -980,7 +961,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01914">1914</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01962">1962</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1024,7 +1005,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The remainder after dividing <code>n1</code> by <code>n2</code>. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02057">2057</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02105">2105</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1067,7 +1048,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A positive integer with all bits that are set in both parameters turned on. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02084">2084</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02132">2132</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1111,7 +1092,7 @@
<dl class="return"><dt><b>Returns:</b></dt><dd>The product of the parameters.</dd></dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>Automatically uses the more-efficient squaring algorithm if it can trivially detect that the two parameters are copies of the same number. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02001">2001</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02049">2049</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1154,7 +1135,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The sum of the parameters. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01945">1945</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01993">1993</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1197,7 +1178,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The difference between the parameters. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01971">1971</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02019">2019</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1246,7 +1227,7 @@
</dd>
</dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02029">2029</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02077">2077</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1277,7 +1258,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01839">1839</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01887">1887</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1308,7 +1289,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02375">2375</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02423">2423</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1339,7 +1320,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01869">1869</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01917">1917</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1370,7 +1351,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01899">1899</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01947">1947</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1401,7 +1382,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01854">1854</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01902">1902</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1432,7 +1413,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01884">1884</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01932">1932</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1463,7 +1444,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02385">2385</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02433">2433</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1506,7 +1487,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A positive integer with all bits that are set in either parameter, but not both, turned on. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02138">2138</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02186">2186</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1549,7 +1530,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A positive integer with all bits that are set in either parameter turned on. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02111">2111</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02159">2159</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1592,7 +1573,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>n</code> to the power of <code>e</code>. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01325">1325</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01336">1336</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1658,7 +1639,7 @@
<dl class="remark"><dt><b>Remarks:</b></dt><dd>Because this function keeps the intermediate results small, it is far faster and uses far less memory than a naive implementation.</dd></dl>
<dl class="user"><dt><b></b></dt><dd>In addition, this function will use the Montgomery Reduction internally, if the modulus is an odd number (and if <code>no_monty</code> isn't set), which is almost always faster than the non-Montgomery method. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01727">1727</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01775">1775</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1702,7 +1683,7 @@
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Nothing. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01525">1525</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01573">1573</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1747,7 +1728,7 @@
<dl class="return"><dt><b>Returns:</b></dt><dd>The result of <code>square(n)</code> % <code>modulus</code>.</dd></dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This is purely a convenience function, to make it easier to write self-documenting code. It does not provide any additional efficiency over writing out the calculation. </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01684">1684</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01732">1732</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1782,7 +1763,7 @@
<dl class="return"><dt><b>Returns:</b></dt><dd><code>n</code> times <code>n</code>.</dd></dl>
<p>The repetitive nature of the input (multiplying a number by itself) allows this function to use a more-efficient algorithm than standard multiplication. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01299">1299</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01310">1310</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1822,7 +1803,7 @@
</dd>
</dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01359">1359</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01370">1370</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1853,7 +1834,7 @@
</div>
<div class="memdoc">
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02412">2412</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02466">2466</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1897,7 +1878,7 @@
</dl>
<p>This function provides the most efficient means of converting to a built-in integral type. The nothrow<true> version returns T(0) instead of throwing. </p>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01397">1397</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01408">1408</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -1950,7 +1931,7 @@
<dl class="remark"><dt><b>Remarks:</b></dt><dd>A binary representation is sometimes desirable for persistent storage or transmission, as it is more space-efficient than a string representation.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classboost_1_1xint_1_1integer__t.html#a864a599e2de326e6e339ffc820fd849e" title="Converts a portable binary representation of a number into an integer.">integer_t::integer_t(xint::binary_t, bitsize_t bits)</a> </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01474">1474</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01522">1522</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -2008,7 +1989,65 @@
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This is the function that's called when you ask the library to write an integer to a stream, but it's more flexible because you can specify any base between 2 and 36. (Streams only allow base-8, base-10, or base-16.) </dd></dl>
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01431">1431</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01442">1442</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab1c726c14c688957565bb5d2e8478c0b"></a><!-- doxytag: member="boost::xint::to_wstring" ref="ab1c726c14c688957565bb5d2e8478c0b" args="(const integer_t n, size_t base=10, bool uppercase=false)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template<... > </div>
+ <table class="memname">
+ <tr>
+ <td class="memname">std::wstring boost::xint::to_wstring </td>
+ <td>(</td>
+ <td class="paramtype">const integer_t </td>
+ <td class="paramname"> <em>n</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t </td>
+ <td class="paramname"> <em>base</em> = <code>10</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">bool </td>
+ <td class="paramname"> <em>uppercase</em> = <code>false</code></td><td> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Creates a wide-character string representation of the specified integer. </p>
+<ul>
+<li>Complexity: O(n<sup>2</sup>)</li>
+</ul>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>n</em> </td><td>The integer to convert. </td></tr>
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>base</em> </td><td>The base, between 2 and 36 inclusive, to convert it to. Defaults to base 10. </td></tr>
+ <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>uppercase</em> </td><td>Whether to make alphabetic characters (for bases greater than ten) uppercase or not. Defaults to <code>false</code>.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The string value of <code>n</code>. The nothrow<true> version returns the string "#NaN#" if <code>n</code> is a Not-a-Number, and an empty string instead of throwing.</dd></dl>
+<dl><dt><b>Exceptions:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">exceptions::invalid_base</a></em> </td><td>if base is less than two or greater than 36.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="remark"><dt><b>Remarks:</b></dt><dd>This is the function that's called when you ask the library to write an integer to a stream, but it's more flexible because you can specify any base between 2 and 36. (Streams only allow base-8, base-10, or base-16.) </dd></dl>
+
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01479">1479</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
</div>
</div>
@@ -2048,7 +2087,7 @@
</div>
</div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1detail.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1detail.html (original)
+++ sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1detail.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -35,7 +35,7 @@
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The items within this namespace are meant for internal use only. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1exceptions.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1exceptions.html (original)
+++ sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1exceptions.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -46,7 +46,7 @@
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Every exception the library throws is from this namespace. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1options.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1options.html (original)
+++ sandbox/xint/libs/xint/doc/namespaceboost_1_1xint_1_1options.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -77,7 +77,7 @@
</div>
</div>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespacemembers.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespacemembers.html (original)
+++ sandbox/xint/libs/xint/doc/namespacemembers.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -147,9 +147,6 @@
<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
-<li>nan_text()
-: <a class="el" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b">boost::xint</a>
-</li>
<li>no_callback
: <a class="el" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">boost::xint</a>
</li>
@@ -253,9 +250,12 @@
<li>to_string()
: <a class="el" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2">boost::xint</a>
</li>
+<li>to_wstring()
+: <a class="el" href="namespaceboost_1_1xint.html#ab1c726c14c688957565bb5d2e8478c0b">boost::xint</a>
+</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespacemembers_func.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespacemembers_func.html (original)
+++ sandbox/xint/libs/xint/doc/namespacemembers_func.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -41,7 +41,6 @@
<li>i</li>
<li>l</li>
<li>m</li>
- <li>n</li>
<li>o</li>
<li>p</li>
<li>s</li>
@@ -123,13 +122,6 @@
</ul>
-<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
-<li>nan_text()
-: <a class="el" href="namespaceboost_1_1xint.html#ac80b017fceb4774cc3ff5a01a6d70d1b">boost::xint</a>
-</li>
-</ul>
-
-
<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
<li>operator!=()
: <a class="el" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">boost::xint</a>
@@ -221,9 +213,12 @@
<li>to_string()
: <a class="el" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2">boost::xint</a>
</li>
+<li>to_wstring()
+: <a class="el" href="namespaceboost_1_1xint.html#ab1c726c14c688957565bb5d2e8478c0b">boost::xint</a>
+</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespacemembers_type.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespacemembers_type.html (original)
+++ sandbox/xint/libs/xint/doc/namespacemembers_type.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -57,7 +57,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespacemembers_vars.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespacemembers_vars.html (original)
+++ sandbox/xint/libs/xint/doc/namespacemembers_vars.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -42,7 +42,7 @@
</li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/namespaces.html
==============================================================================
--- sandbox/xint/libs/xint/doc/namespaces.html (original)
+++ sandbox/xint/libs/xint/doc/namespaces.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -33,7 +33,7 @@
<tr><td class="indexkey"><a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a></td><td class="indexvalue">Options for the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> template are stored in this namespace </td></tr>
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/nan.html
==============================================================================
--- sandbox/xint/libs/xint/doc/nan.html (original)
+++ sandbox/xint/libs/xint/doc/nan.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
</ul>
<p>If you attempt to do anything else with it, you will get a special value indicating failure (which will be another Not-a-Number, if the function you're calling returns an <code>integer_t</code>). </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/nan_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/nan_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/nan_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/nan.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/options_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/options_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/options_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -75,7 +75,7 @@
<p>Definition in file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/options_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/options_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/options_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -83,7 +83,7 @@
<a name="l00063"></a>00063
<a name="l00064"></a>00064 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_OPTIONS_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/policies_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/policies_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/policies_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<p>Definition in file <a class="el" href="policies_8hpp_source.html">policies.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/policies_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/policies_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/policies_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -210,7 +210,7 @@
<a name="l00196"></a>00196
<a name="l00197"></a>00197 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_POLICY_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/powers_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/powers_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/powers_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<p>Definition in file <a class="el" href="powers_8hpp_source.html">powers.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/powers_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/powers_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/powers_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -103,7 +103,7 @@
<a name="l00086"></a>00086
<a name="l00087"></a>00087 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_POWERS_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/prime_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/prime_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/prime_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="prime_8hpp_source.html">prime.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/prime_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/prime_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/prime_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -166,7 +166,7 @@
<a name="l00149"></a>00149 <span class="comment"></span>
<a name="l00150"></a>00150 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_PRIME_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/primes.html
==============================================================================
--- sandbox/xint/libs/xint/doc/primes.html (original)
+++ sandbox/xint/libs/xint/doc/primes.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -65,7 +65,7 @@
}
</pre></div><p>(You can find it in the <code>examples</code> directory, by the name <code>genprime.cpp</code>.) </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/primes_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/primes_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/primes_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/primes.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__core.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__core.html (original)
+++ sandbox/xint/libs/xint/doc/r__core.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -31,7 +31,7 @@
<p>To deal with this, I separated the <code>xint::integer</code> and <code>xint::nothrow_integer</code> types. <code>xint::integer</code> functions now always throw exceptions on errors, and always hold valid numbers; <code>xint::nothrow_integer</code> functions (as implied by the name) never throw exceptions, instead returning the Not-a-Number value (which only <code>nothrow_integer</code> can hold).</p>
<p>This design ensures that the Not-a-Number value only needs to be checked for in the <code>nothrow_integer</code> code, and ensures that any speed penalty from it is only incurred by people who choose to use the <code>nothrow_integer</code> type. It also preserves the no-exceptions behavior, which is useful under some circumstances. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__core_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__core_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__core_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_core.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__cow.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__cow.html (original)
+++ sandbox/xint/libs/xint/doc/r__cow.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -27,7 +27,7 @@
<p>It <em>can</em> cause problems when you try to use the library from multiple threads at the same time, which is why it's only used in the (single-threaded) internal functions. By default, when you get a number back from the library, it has its own unique storage, so it can be safely used across multiple threads; if you don't need to use integer objects outside of the thread that they're created in, you can disable that by setting the <code>Threadsafe</code> template parameter to <code>false</code>.</p>
<p>Note that even with the <code>Threadsafe</code> option set to <code>true</code>, you still have to ensure that only one thread accesses a particular <code>integer</code> at a time. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__cow_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__cow_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__cow_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_cow.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__exception__blocking.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__exception__blocking.html (original)
+++ sandbox/xint/libs/xint/doc/r__exception__blocking.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -27,7 +27,7 @@
<p>There are also times when exception-handling can get in the way of writing code that is easily understandable by other people. Any software developer understands calling a function and checking the return value to see if there was an error; it's a standard idiom in essentially any programming language, and it's even widely used in the C++ Standard Template Library (see <code>std::string::find</code>, for just one example).</p>
<p>Writing code that is <em>human-readable</em> -- not just machine-readable -- is difficult, and there's little that anyone can do to change that. But giving the developer the choice to use either exceptions or error codes, depending on which is most readable, makes it easier to produce such code, and costs nothing to the people who choose not to use it. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__exception__blocking_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__exception__blocking_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__exception__blocking_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_exception_blocking.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__insecure__default.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__insecure__default.html (original)
+++ sandbox/xint/libs/xint/doc/r__insecure__default.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_insecure_default">But why have an insecure random number generator as the default? Why not default to the secure one? </a></h1><p>Because the secure one isn't available on all systems. If the library relied on <code>random_device</code> as a default, it wouldn't compile under those systems. If it used <code>xint::strong_random_generator</code>, it would compile, but would always fail on them. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__insecure__default_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__insecure__default_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__insecure__default_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_insecure_default.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__interface.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__interface.html (original)
+++ sandbox/xint/libs/xint/doc/r__interface.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<dd>
n1744: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1744.pdf </dd></dl>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__interface_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__interface_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__interface_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_interface.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__interface__design__only.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__interface__design__only.html (original)
+++ sandbox/xint/libs/xint/doc/r__interface__design__only.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -30,7 +30,7 @@
<li>It does not, at present, implement a multiplication scheme with better performance than the "basecase" mentioned in section 3.4 of n1692, primarily because I haven't had the time to research all of them yet. I suspect that most people using the library will usually be using numbers below the threshold where the more exotic algorithms are faster, but I plan to add at least one of them in the future, maybe several. </li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__interface__design__only_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__interface__design__only_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__interface__design__only_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_interface_design_only.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__nan.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__nan.html (original)
+++ sandbox/xint/libs/xint/doc/r__nan.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_nan">Why have a Not-a-Number value? </a></h1><p>Because it's the cleanest way I could find to return answers that don't represent a valid number, which is necessary for the <code>nothrow_integer</code> type. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__nan_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__nan_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__nan_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_nan.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__negzero.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__negzero.html (original)
+++ sandbox/xint/libs/xint/doc/r__negzero.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_negzero">Since you've got Not-a-Number, what about negative zero, and positive and negative infinity, like IEEE floating-point numbers? </a></h1><p>The library does have limited support for a <a class="el" href="zero.html">"negative zero"</a> value, to support an unlimited-precision floating point type that will be built on it later. But infinity is a concept, not a countable value, and as such it is not included in the library at present. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__negzero_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__negzero_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__negzero_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_negzero.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__no__floats.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__no__floats.html (original)
+++ sandbox/xint/libs/xint/doc/r__no__floats.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -26,7 +26,7 @@
<h1><a class="anchor" id="r_no_floats">Why didn't you provide conversions to and from float/double types? </a></h1><p>Although it might not be obvious, there is occasionally a need for such conversions. Unfortunately, unlike integers, there is no universal representation for floating-point values. Even IEEE 754, the most widely used floating-point specification, isn't completely nailed down -- it doesn't specify the endianness of the fields, making it difficult to provide code that would work on all systems. What's worse, the C/C++ <code>float</code> and <code>double</code> types don't have to be encoded in an IEEE 754 format at all.</p>
<p>I'd like to provide such conversions, and I'll keep looking for ways to do so. It may turn out to be possible to do them through a string format, for instance. But for now, the library only provides conversions to and from integral values. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__nofloats_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__nofloats_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__nofloats_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_nofloats.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__random.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__random.html (original)
+++ sandbox/xint/libs/xint/doc/r__random.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_random">Why did you implement your own random number generator? You should use Boost.Random instead. </a></h1><p>Boost.Random provides <code>boost::random_device</code> to tap into the operating system's strong random number generator, but at the time of this writing, the official released version only defines it for Linux and BSD systems. The current maintainer, Steven Watanabe, says that he has just added Windows compatibility to it, so the <code>xint::strong_random_generator</code> class will likely be reduced to a typedef for <code>boost::random_device</code>, or a thin shell around it, in the near future. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__random_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__random_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__random_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_random.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__shared__ptr.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__shared__ptr.html (original)
+++ sandbox/xint/libs/xint/doc/r__shared__ptr.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -25,7 +25,7 @@
<h1><a class="anchor" id="r_shared_ptr">Why are you using a roll-your-own system instead of <code>boost::shared_ptr</code> for the copy-on-write stuff? </a></h1><p>Because it's a lot faster. I tried <code>boost::shared_ptr</code>, and under Linux with GCC 4.4.1 on the same computer, running my test suite went from 1.6 seconds to 3.4 seconds. The home-grown shared pointer design may not be quite as easy to work with in an exception-safe manner, but that's completely internal to the <code>integer</code> classes, so only developers working <em>on</em> the library, rather than <em>with</em> it, have to deal with that. I'll accept that trade-off. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__shared__ptr_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__shared__ptr_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__shared__ptr_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_shared_ptr.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__too__big.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__too__big.html (original)
+++ sandbox/xint/libs/xint/doc/r__too__big.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
report a range error in internal computations." That didn't quite sound like what I was trying to convey with that exception, which is that the <code>integer_t</code> that the user is trying to convert won't fit into the type that he's trying to convert it to. It does inherit from std::range_error though, so you can use either for most things, and get more specific if desired.</p>
<p>In addition, it seemed discordant to me to have a library that <em>almost</em> always throws exceptions from a particular namespace. It was almost no additional work to make it <em>always</em> throw from a specific namespace, and it fit my sense of rightness. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__toobig_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__toobig_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__toobig_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_toobig.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__whynotx.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__whynotx.html (original)
+++ sandbox/xint/libs/xint/doc/r__whynotx.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -30,7 +30,7 @@
</ul>
<p>By all means, make suggestions. But don't be offended if I respond by referring you to this page. It only means that I feel that your suggestion isn't appropriate for this version, because it would delay it further, not that it isn't appropriate at all. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/r__whynotx_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/r__whynotx_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/r__whynotx_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/r_whynotx.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/random.html
==============================================================================
--- sandbox/xint/libs/xint/doc/random.html (original)
+++ sandbox/xint/libs/xint/doc/random.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -29,7 +29,7 @@
<p>If you have a different preferred generator, perhaps one that interfaces with dedicated hardware to produce randomness, you can plug that into the library's <code>random_by_size</code> and <code>random_prime</code> functions instead.</p>
<p>See the code at the top of <a class="el" href="primes.html">the Prime Numbers page</a> for an example of how to use these generators to produce secure prime numbers. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/random_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/random_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/random_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/random.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/random_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/random_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/random_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -56,7 +56,7 @@
<p>Definition in file <a class="el" href="random_8hpp_source.html">random.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/random_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/random_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/random_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -103,7 +103,7 @@
<a name="l00101"></a>00101
<a name="l00102"></a>00102 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOM_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/random__by__size_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/random__by__size_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/random__by__size_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<p>Definition in file <a class="el" href="random__by__size_8hpp_source.html">random_by_size.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/random__by__size_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/random__by__size_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/random__by__size_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -86,7 +86,7 @@
<a name="l00069"></a>00069
<a name="l00070"></a>00070 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOM_BY_SIZE_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/randomgen_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/randomgen_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/randomgen_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="randomgen_8hpp_source.html">randomgen.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/randomgen_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/randomgen_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/randomgen_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -158,7 +158,7 @@
<a name="l00142"></a>00142 <span class="comment"></span>
<a name="l00143"></a>00143 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOMGEN_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/rationale.html
==============================================================================
--- sandbox/xint/libs/xint/doc/rationale.html (original)
+++ sandbox/xint/libs/xint/doc/rationale.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -57,7 +57,7 @@
<li><a class="el" href="r__whynotx.html">I've got a great idea! Why don't you do <em>X</em>?</a> </li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/rationale_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/rationale_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/rationale_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/rationale.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/raw__integer_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/raw__integer_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/raw__integer_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<p>Definition in file <a class="el" href="raw__integer_8hpp_source.html">raw_integer.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/raw__integer_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/raw__integer_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/raw__integer_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -72,289 +72,208 @@
<a name="l00055"></a>00055 boost::is_integral<T> >::type* = 0): length(1), negative(false),
<a name="l00056"></a>00056 changed(false) { <span class="keywordflow">if</span> (std::numeric_limits<T>::is_signed) set_signed(n,
<a name="l00057"></a>00057 prealloc); <span class="keywordflow">else</span> set_unsigned(n, <span class="keyword">false</span>, prealloc); }
-<a name="l00058"></a>00058 raw_integer_t(<span class="keyword">const</span> <span class="keywordtype">char</span> *s, <span class="keywordtype">size_t</span> base = 10): length(1), negative(false),
-<a name="l00059"></a>00059 changed(false) { from_string(s, base); }
-<a name="l00060"></a>00060 raw_integer_t(<span class="keyword">const</span> std::string& s, <span class="keywordtype">size_t</span> base = 10): length(1),
-<a name="l00061"></a>00061 negative(false), changed(false) { from_string(s, base); }
-<a name="l00062"></a>00062 raw_integer_t(<span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <span class="keywordtype">size_t</span> bits = 0): length(1),
-<a name="l00063"></a>00063 negative(false), changed(false) { from_binary(b, bits); }
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 BOOST_XINT_RAWINT& operator=(<span class="keyword">const</span> BOOST_XINT_RAWINT& <span class="keyword">set</span>) { length =
-<a name="l00066"></a>00066 <span class="keyword">set</span>.length; negative = <span class="keyword">set</span>.negative; data = <span class="keyword">set</span>.data; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00067"></a>00067
-<a name="l00068"></a>00068 digit_t *digits(<span class="keywordtype">size_t</span> resize, realloc::strategy strategy = realloc::copy);
-<a name="l00069"></a>00069 <span class="keyword">const</span> digit_t *digits()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.digits(); }
-<a name="l00070"></a>00070
-<a name="l00071"></a>00071 digit_t get_digit(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (i < max_length() ? digits()[i] :
-<a name="l00072"></a>00072 0); }
-<a name="l00073"></a>00073 digit_t operator[](<span class="keywordtype">size_t</span> i) { <span class="keywordflow">return</span> digits()[i]; }
-<a name="l00074"></a>00074 digit_t operator[](<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> get_digit(i); }
-<a name="l00075"></a>00075 <span class="keywordtype">size_t</span> max_length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.max_length(); }
-<a name="l00076"></a>00076 <span class="keywordtype">bool</span> same_storage(<span class="keyword">const</span> BOOST_XINT_RAWINT n)<span class="keyword"> const </span>{ <span class="keywordflow">return</span>
-<a name="l00077"></a>00077 data.same_storage(n.data); }
-<a name="l00078"></a>00078
-<a name="l00079"></a>00079 <span class="keywordtype">int</span> sign()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> negative ? -1 : is_zero() ? 0 : 1; }
-<a name="l00080"></a>00080 <span class="keywordtype">int</span> sign(<span class="keywordtype">bool</span> allow_signed_zero)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (!allow_signed_zero &&
-<a name="l00081"></a>00081 is_zero() ? 0 : negative ? -1 : 1); }
-<a name="l00082"></a>00082 <span class="keywordtype">bool</span> is_zero()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (length == 1 && digits()[0] == 0); }
-<a name="l00083"></a>00083 <span class="keywordtype">bool</span> is_odd()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (digits()[0] & 0x01) != 0; }
-<a name="l00084"></a>00084 <span class="keywordtype">bool</span> is_even()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (digits()[0] & 0x01) == 0; }
-<a name="l00085"></a>00085 <span class="keywordtype">size_t</span> hex_digits()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(*<span class="keyword">this</span>) + 3) / 4; }
-<a name="l00086"></a>00086 raw_integer_t <a class="code" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523" title="Returns the absolute value of an integer.">abs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> raw_integer_t(*<span class="keyword">this</span>, <span class="keyword">false</span>); }
-<a name="l00087"></a>00087 raw_integer_t negate()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> raw_integer_t(*<span class="keyword">this</span>, !negative); }
-<a name="l00088"></a>00088
-<a name="l00089"></a>00089 <span class="keywordtype">void</span> <span class="keyword">set</span>(<span class="keywordtype">int</span> n) { set_signed(n); }
-<a name="l00090"></a>00090 <span class="keywordtype">void</span> set_signed(boost::intmax_t n, <span class="keywordtype">size_t</span> prealloc = 0);
-<a name="l00091"></a>00091 <span class="keywordtype">void</span> set_unsigned(boost::uintmax_t n, <span class="keywordtype">bool</span> neg = <span class="keyword">false</span>, <span class="keywordtype">size_t</span> prealloc =
-<a name="l00092"></a>00092 0);
-<a name="l00093"></a>00093
-<a name="l00094"></a>00094 <span class="keywordtype">bool</span> is_nan()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.is_nan(); }
-<a name="l00095"></a>00095 <span class="keywordtype">void</span> make_nan() { data.make_nan(); }
-<a name="l00096"></a>00096
-<a name="l00097"></a>00097 <span class="keywordtype">bool</span> is_unique()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.is_unique(); }
-<a name="l00098"></a>00098 <span class="keywordtype">void</span> make_unique() { <span class="keywordflow">if</span> (!is_unique()) data.resize_and_uniquify(length); }
-<a name="l00099"></a>00099
-<a name="l00100"></a>00100 <span class="keywordtype">void</span> trim(<span class="keywordtype">bool</span> allow_negative_zero = <span class="keyword">false</span>);
+<a name="l00058"></a>00058 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00059"></a>00059 raw_integer_t(<span class="keyword">const</span> charT *s, <span class="keywordtype">size_t</span> base = 10): length(1), negative(false),
+<a name="l00060"></a>00060 changed(false) { from_string(s, base); }
+<a name="l00061"></a>00061 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00062"></a>00062 raw_integer_t(<span class="keyword">const</span> std::basic_string<charT>& s, <span class="keywordtype">size_t</span> base = 10):
+<a name="l00063"></a>00063 length(1), negative(false), changed(false) { from_string(s, base); }
+<a name="l00064"></a>00064 raw_integer_t(<span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <span class="keywordtype">size_t</span> bits = 0): length(1),
+<a name="l00065"></a>00065 negative(false), changed(false) { from_binary(b, bits); }
+<a name="l00066"></a>00066
+<a name="l00067"></a>00067 BOOST_XINT_RAWINT& operator=(<span class="keyword">const</span> BOOST_XINT_RAWINT& <span class="keyword">set</span>) { length =
+<a name="l00068"></a>00068 <span class="keyword">set</span>.length; negative = <span class="keyword">set</span>.negative; data = <span class="keyword">set</span>.data; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00069"></a>00069
+<a name="l00070"></a>00070 digit_t *digits(<span class="keywordtype">size_t</span> resize, realloc::strategy strategy = realloc::copy);
+<a name="l00071"></a>00071 <span class="keyword">const</span> digit_t *digits()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.digits(); }
+<a name="l00072"></a>00072
+<a name="l00073"></a>00073 digit_t get_digit(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (i < max_length() ? digits()[i] :
+<a name="l00074"></a>00074 0); }
+<a name="l00075"></a>00075 digit_t operator[](<span class="keywordtype">size_t</span> i) { <span class="keywordflow">return</span> digits()[i]; }
+<a name="l00076"></a>00076 digit_t operator[](<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> get_digit(i); }
+<a name="l00077"></a>00077 <span class="keywordtype">size_t</span> max_length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.max_length(); }
+<a name="l00078"></a>00078 <span class="keywordtype">bool</span> same_storage(<span class="keyword">const</span> BOOST_XINT_RAWINT n)<span class="keyword"> const </span>{ <span class="keywordflow">return</span>
+<a name="l00079"></a>00079 data.same_storage(n.data); }
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 <span class="keywordtype">int</span> sign()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> negative ? -1 : is_zero() ? 0 : 1; }
+<a name="l00082"></a>00082 <span class="keywordtype">int</span> sign(<span class="keywordtype">bool</span> allow_signed_zero)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (!allow_signed_zero &&
+<a name="l00083"></a>00083 is_zero() ? 0 : negative ? -1 : 1); }
+<a name="l00084"></a>00084 <span class="keywordtype">bool</span> is_zero()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (length == 1 && digits()[0] == 0); }
+<a name="l00085"></a>00085 <span class="keywordtype">bool</span> is_odd()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (digits()[0] & 0x01) != 0; }
+<a name="l00086"></a>00086 <span class="keywordtype">bool</span> is_even()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (digits()[0] & 0x01) == 0; }
+<a name="l00087"></a>00087 <span class="keywordtype">size_t</span> hex_digits()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(*<span class="keyword">this</span>) + 3) / 4; }
+<a name="l00088"></a>00088 raw_integer_t <a class="code" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523" title="Returns the absolute value of an integer.">abs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> raw_integer_t(*<span class="keyword">this</span>, <span class="keyword">false</span>); }
+<a name="l00089"></a>00089 raw_integer_t negate()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> raw_integer_t(*<span class="keyword">this</span>, !negative); }
+<a name="l00090"></a>00090
+<a name="l00091"></a>00091 <span class="keywordtype">void</span> <span class="keyword">set</span>(<span class="keywordtype">int</span> n) { set_signed(n); }
+<a name="l00092"></a>00092 <span class="keywordtype">void</span> set_signed(boost::intmax_t n, <span class="keywordtype">size_t</span> prealloc = 0);
+<a name="l00093"></a>00093 <span class="keywordtype">void</span> set_unsigned(boost::uintmax_t n, <span class="keywordtype">bool</span> neg = <span class="keyword">false</span>, <span class="keywordtype">size_t</span> prealloc =
+<a name="l00094"></a>00094 0);
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096 <span class="keywordtype">bool</span> is_nan()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.is_nan(); }
+<a name="l00097"></a>00097 <span class="keywordtype">void</span> make_nan() { data.make_nan(); }
+<a name="l00098"></a>00098
+<a name="l00099"></a>00099 <span class="keywordtype">bool</span> is_unique()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.is_unique(); }
+<a name="l00100"></a>00100 <span class="keywordtype">void</span> make_unique() { <span class="keywordflow">if</span> (!is_unique()) data.resize_and_uniquify(length); }
<a name="l00101"></a>00101
-<a name="l00102"></a>00102 raw_integer_t& operator++(); <span class="comment">// Preincrement</span>
-<a name="l00103"></a>00103 raw_integer_t& operator--(); <span class="comment">// Predecrement</span>
-<a name="l00104"></a>00104 raw_integer_t operator++(<span class="keywordtype">int</span>); <span class="comment">// Postincrement</span>
-<a name="l00105"></a>00105 raw_integer_t operator--(<span class="keywordtype">int</span>); <span class="comment">// Postdecrement</span>
-<a name="l00106"></a>00106
-<a name="l00107"></a>00107 <span class="keywordtype">bool</span> operator!()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> is_zero(); }
-<a name="l00108"></a>00108 raw_integer_t <a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">operator-</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> BOOST_XINT_RAWINT(*<span class="keyword">this</span>,
-<a name="l00109"></a>00109 !negative, <span class="keyword">true</span>); }
-<a name="l00110"></a>00110 raw_integer_t& <a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>() { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00111"></a>00111 <span class="keyword">const</span> raw_integer_t& <a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00112"></a>00112 raw_integer_t operator~() <span class="keyword">const</span>; <span class="comment">// For fixed-size types only!</span>
-<a name="l00113"></a>00113
-<a name="l00114"></a>00114 raw_integer_t& operator+=(<span class="keyword">const</span> raw_integer_t b);
-<a name="l00115"></a>00115 raw_integer_t& operator-=(<span class="keyword">const</span> raw_integer_t b);
-<a name="l00116"></a>00116 raw_integer_t& operator*=(<span class="keyword">const</span> raw_integer_t b);
-<a name="l00117"></a>00117 raw_integer_t& operator/=(<span class="keyword">const</span> raw_integer_t b);
-<a name="l00118"></a>00118 raw_integer_t& operator%=(<span class="keyword">const</span> raw_integer_t b);
-<a name="l00119"></a>00119
-<a name="l00120"></a>00120 raw_integer_t& operator&=(<span class="keyword">const</span> raw_integer_t n);
-<a name="l00121"></a>00121 raw_integer_t& operator|=(<span class="keyword">const</span> raw_integer_t n);
-<a name="l00122"></a>00122 raw_integer_t& operator^=(<span class="keyword">const</span> raw_integer_t n);
-<a name="l00123"></a>00123 raw_integer_t& operator<<=(<span class="keywordtype">size_t</span> shift);
-<a name="l00124"></a>00124 raw_integer_t& operator>>=(<span class="keywordtype">size_t</span> shift);
-<a name="l00125"></a>00125
-<a name="l00126"></a>00126 <span class="keywordtype">void</span> from_string(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> base = 10);
-<a name="l00127"></a>00127 <span class="keywordtype">void</span> from_string(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <span class="keywordtype">char</span> **endptr, <span class="keywordtype">size_t</span> base = 10);
-<a name="l00128"></a>00128 <span class="keywordtype">void</span> from_string(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> base = 10);
-<a name="l00129"></a>00129 <span class="keywordtype">void</span> from_binary(<a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <span class="keywordtype">size_t</span> bits = 0);
-<a name="l00130"></a>00130
-<a name="l00131"></a>00131 <span class="keyword">template</span> <<span class="keyword">class</span> GenType>
-<a name="l00132"></a>00132 <span class="keyword">static</span> raw_integer_t random_by_size(GenType& gen, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits, <span class="keywordtype">bool</span>
-<a name="l00133"></a>00133 high_bit_on = <span class="keyword">false</span>, <span class="keywordtype">bool</span> low_bit_on = <span class="keyword">false</span>, <span class="keywordtype">bool</span> can_be_negative =
-<a name="l00134"></a>00134 <span class="keyword">false</span>);
+<a name="l00102"></a>00102 <span class="keywordtype">void</span> trim(<span class="keywordtype">bool</span> allow_negative_zero = <span class="keyword">false</span>);
+<a name="l00103"></a>00103
+<a name="l00104"></a>00104 raw_integer_t& operator++(); <span class="comment">// Preincrement</span>
+<a name="l00105"></a>00105 raw_integer_t& operator--(); <span class="comment">// Predecrement</span>
+<a name="l00106"></a>00106 raw_integer_t operator++(<span class="keywordtype">int</span>); <span class="comment">// Postincrement</span>
+<a name="l00107"></a>00107 raw_integer_t operator--(<span class="keywordtype">int</span>); <span class="comment">// Postdecrement</span>
+<a name="l00108"></a>00108
+<a name="l00109"></a>00109 <span class="keywordtype">bool</span> operator!()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> is_zero(); }
+<a name="l00110"></a>00110 raw_integer_t <a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">operator-</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> BOOST_XINT_RAWINT(*<span class="keyword">this</span>,
+<a name="l00111"></a>00111 !negative, <span class="keyword">true</span>); }
+<a name="l00112"></a>00112 raw_integer_t& <a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>() { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00113"></a>00113 <span class="keyword">const</span> raw_integer_t& <a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00114"></a>00114 raw_integer_t operator~() <span class="keyword">const</span>; <span class="comment">// For fixed-size types only!</span>
+<a name="l00115"></a>00115
+<a name="l00116"></a>00116 raw_integer_t& operator+=(<span class="keyword">const</span> raw_integer_t b);
+<a name="l00117"></a>00117 raw_integer_t& operator-=(<span class="keyword">const</span> raw_integer_t b);
+<a name="l00118"></a>00118 raw_integer_t& operator*=(<span class="keyword">const</span> raw_integer_t b);
+<a name="l00119"></a>00119 raw_integer_t& operator/=(<span class="keyword">const</span> raw_integer_t b);
+<a name="l00120"></a>00120 raw_integer_t& operator%=(<span class="keyword">const</span> raw_integer_t b);
+<a name="l00121"></a>00121
+<a name="l00122"></a>00122 raw_integer_t& operator&=(<span class="keyword">const</span> raw_integer_t n);
+<a name="l00123"></a>00123 raw_integer_t& operator|=(<span class="keyword">const</span> raw_integer_t n);
+<a name="l00124"></a>00124 raw_integer_t& operator^=(<span class="keyword">const</span> raw_integer_t n);
+<a name="l00125"></a>00125 raw_integer_t& operator<<=(<span class="keywordtype">size_t</span> shift);
+<a name="l00126"></a>00126 raw_integer_t& operator>>=(<span class="keywordtype">size_t</span> shift);
+<a name="l00127"></a>00127
+<a name="l00128"></a>00128 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00129"></a>00129 <span class="keywordtype">void</span> from_string(<span class="keyword">const</span> charT *str, <span class="keywordtype">size_t</span> base = 10);
+<a name="l00130"></a>00130 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00131"></a>00131 <span class="keywordtype">void</span> from_string(<span class="keyword">const</span> charT *str, <span class="keywordtype">char</span> **endptr, <span class="keywordtype">size_t</span> base = 10);
+<a name="l00132"></a>00132 <span class="keyword">template</span> <<span class="keyword">typename</span> <span class="keywordtype">char</span>T>
+<a name="l00133"></a>00133 <span class="keywordtype">void</span> from_string(<span class="keyword">const</span> std::basic_string<charT>& str, <span class="keywordtype">size_t</span> base = 10);
+<a name="l00134"></a>00134 <span class="keywordtype">void</span> from_binary(<a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <span class="keywordtype">size_t</span> bits = 0);
<a name="l00135"></a>00135
<a name="l00136"></a>00136 <span class="keyword">template</span> <<span class="keyword">class</span> GenType>
-<a name="l00137"></a>00137 <span class="keyword">static</span> raw_integer_t random_prime(GenType& gen, <span class="keywordtype">size_t</span> size_in_bits,
-<a name="l00138"></a>00138 <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback = <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696" title="An empty callback_t, used as a default parameter for some functions.">no_callback</a>);
-<a name="l00139"></a>00139
-<a name="l00140"></a>00140 <span class="keywordtype">void</span> _swap(BOOST_XINT_RAWINT& i2);
-<a name="l00141"></a>00141
-<a name="l00142"></a>00142 <span class="keyword">private</span>:
-<a name="l00143"></a>00143 <span class="keywordtype">bool</span> changed;
-<a name="l00144"></a>00144 datatype data;
-<a name="l00145"></a>00145
-<a name="l00146"></a>00146 <span class="keyword">template</span> <bit<span class="keywordtype">size_t</span> B, <span class="keywordtype">bool</span> S, <span class="keyword">class</span> A>
-<a name="l00147"></a>00147 <span class="keyword">friend</span> <span class="keyword">class </span>raw_integer_t;
-<a name="l00148"></a>00148 };
-<a name="l00149"></a>00149
-<a name="l00150"></a>00150 BOOST_XINT_RAWINT_TPL
-<a name="l00151"></a>00151 digit_t *BOOST_XINT_RAWINT::digits(<span class="keywordtype">size_t</span> resize, realloc::strategy strategy) {
-<a name="l00152"></a>00152 data.resize_and_uniquify(resize, strategy);
-<a name="l00153"></a>00153 <span class="keywordflow">if</span> (resize == 0 || resize > data.max_length()) resize = data.max_length();
-<a name="l00154"></a>00154 <span class="keywordflow">if</span> (strategy != realloc::copy) {
-<a name="l00155"></a>00155 <span class="keywordflow">if</span> (length < resize) {
-<a name="l00156"></a>00156 <span class="keywordflow">if</span> (strategy == realloc::extend) {
-<a name="l00157"></a>00157 digit_t *d = data.digits(), *p = d + length, *pe = d + resize;
-<a name="l00158"></a>00158 <span class="keywordflow">while</span> (p != pe) *p++ = 0;
-<a name="l00159"></a>00159 }
-<a name="l00160"></a>00160 length = resize;
-<a name="l00161"></a>00161 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (length > data.max_length()) length = data.max_length();
-<a name="l00162"></a>00162 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (length > data.max_length()) length = data.max_length();
-<a name="l00163"></a>00163 changed = <span class="keyword">true</span>;
-<a name="l00164"></a>00164 <span class="keywordflow">return</span> data.digits();
-<a name="l00165"></a>00165 }
-<a name="l00166"></a>00166
-<a name="l00167"></a>00167 BOOST_XINT_RAWINT_TPL
-<a name="l00168"></a>00168 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::set_signed(boost::intmax_t n, <span class="keywordtype">size_t</span> prealloc) {
-<a name="l00169"></a>00169 <span class="keywordflow">if</span> (n >= 0) {
-<a name="l00170"></a>00170 <span class="keywordflow">if</span> (n <= digit_mask) {
-<a name="l00171"></a>00171 length = 1;
-<a name="l00172"></a>00172 negative = <span class="keyword">false</span>;
-<a name="l00173"></a>00173 <span class="keywordflow">if</span> (prealloc != 0) {
-<a name="l00174"></a>00174 digits(prealloc, realloc::zero)[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
-<a name="l00175"></a>00175 } <span class="keywordflow">else</span> {
-<a name="l00176"></a>00176 digits(1, realloc::ignore)[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
-<a name="l00177"></a>00177 }
-<a name="l00178"></a>00178 trim();
-<a name="l00179"></a>00179 } <span class="keywordflow">else</span> set_unsigned(n, <span class="keyword">false</span>, prealloc);
-<a name="l00180"></a>00180 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == (std::numeric_limits<boost::intmax_t>::min)()) {
-<a name="l00181"></a>00181 <span class="comment">// Have to treat the minimum number carefully, because -n is not</span>
-<a name="l00182"></a>00182 <span class="comment">// what you'd think it is.</span>
-<a name="l00183"></a>00183 set_unsigned(-(n + 1), <span class="keyword">true</span>, prealloc);
-<a name="l00184"></a>00184 --*<span class="keyword">this</span>;
-<a name="l00185"></a>00185 } <span class="keywordflow">else</span> set_unsigned(-n, <span class="keyword">true</span>, prealloc);
-<a name="l00186"></a>00186 }
-<a name="l00187"></a>00187
-<a name="l00188"></a>00188 BOOST_XINT_RAWINT_TPL
-<a name="l00189"></a>00189 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::set_unsigned(boost::uintmax_t n, <span class="keywordtype">bool</span> neg, <span class="keywordtype">size_t</span>
-<a name="l00190"></a>00190 prealloc)
-<a name="l00191"></a>00191 {
-<a name="l00192"></a>00192 <span class="keywordflow">if</span> (n <= digit_mask) {
-<a name="l00193"></a>00193 length = 1;
-<a name="l00194"></a>00194 <span class="keywordflow">if</span> (prealloc != 0) {
-<a name="l00195"></a>00195 digits(prealloc, realloc::zero)[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
-<a name="l00196"></a>00196 } <span class="keywordflow">else</span> {
-<a name="l00197"></a>00197 digits(1, realloc::ignore)[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
-<a name="l00198"></a>00198 }
-<a name="l00199"></a>00199 } <span class="keywordflow">else</span> {
-<a name="l00200"></a>00200 digit_t *d = digits((std::max)(digits_in_uintmax, prealloc),
-<a name="l00201"></a>00201 realloc::ignore), *i = d, *ie = i + max_length();
-<a name="l00202"></a>00202 <span class="keywordflow">while</span> (n != 0 && i != ie) {
-<a name="l00203"></a>00203 *i++ = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
-<a name="l00204"></a>00204 n >>= bits_per_digit;
-<a name="l00205"></a>00205 }
-<a name="l00206"></a>00206 length = (i - d);
-<a name="l00207"></a>00207 }
-<a name="l00208"></a>00208 negative = neg;
-<a name="l00209"></a>00209 trim();
-<a name="l00210"></a>00210 }
-<a name="l00211"></a>00211
-<a name="l00212"></a>00212 BOOST_XINT_RAWINT_TPL
-<a name="l00213"></a>00213 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::trim(<span class="keywordtype">bool</span> allow_negative_zero) {
-<a name="l00214"></a>00214 assert(length <= max_length());
-<a name="l00215"></a>00215
-<a name="l00216"></a>00216 <span class="keywordtype">bool</span> zero = <span class="keyword">false</span>;
-<a name="l00217"></a>00217 <span class="keywordflow">if</span> (changed) {
-<a name="l00218"></a>00218 data.trim();
-<a name="l00219"></a>00219 <span class="keywordflow">if</span> (length > 1) {
-<a name="l00220"></a>00220 digit_t *d = data.digits(), *i = d + length - 1;
-<a name="l00221"></a>00221 <span class="keywordflow">if</span> (*i == 0) {
-<a name="l00222"></a>00222 <span class="keywordflow">do</span> { --i; } <span class="keywordflow">while</span> (i > d && *i == 0);
-<a name="l00223"></a>00223 length = size_t(i - d) + 1;
-<a name="l00224"></a>00224 <span class="keywordflow">if</span> (i == d && *i == 0) zero = <span class="keyword">true</span>;
-<a name="l00225"></a>00225 }
-<a name="l00226"></a>00226 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (data.digits()[0] == 0) zero = <span class="keyword">true</span>;
-<a name="l00227"></a>00227 changed = <span class="keyword">false</span>;
-<a name="l00228"></a>00228 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (length == 1 && data.digits()[0] == 0) zero = <span class="keyword">true</span>;
-<a name="l00229"></a>00229 <span class="keywordflow">if</span> (zero && !allow_negative_zero) negative = <span class="keyword">false</span>;
-<a name="l00230"></a>00230 }
-<a name="l00231"></a>00231
-<a name="l00232"></a>00232 BOOST_XINT_RAWINT_TPL
-<a name="l00233"></a>00233 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::_swap(BOOST_XINT_RAWINT& i2) {
-<a name="l00234"></a>00234 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
-<a name="l00235"></a>00235 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(length, i2.length);
-<a name="l00236"></a>00236 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(negative, i2.negative);
-<a name="l00237"></a>00237 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(changed, i2.changed);
-<a name="l00238"></a>00238 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(data, i2.data);
-<a name="l00239"></a>00239 }
-<a name="l00240"></a>00240
-<a name="l00242"></a>00242 <span class="comment">// Free functions</span>
-<a name="l00243"></a>00243
-<a name="l00244"></a>00244 BOOST_XINT_RAWINT_TPL
-<a name="l00245"></a>00245 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(BOOST_XINT_RAWINT& i1, BOOST_XINT_RAWINT& i2) {
-<a name="l00246"></a>00246 i1._swap(i2);
-<a name="l00247"></a>00247 }
+<a name="l00137"></a>00137 <span class="keyword">static</span> raw_integer_t random_by_size(GenType& gen, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits, <span class="keywordtype">bool</span>
+<a name="l00138"></a>00138 high_bit_on = <span class="keyword">false</span>, <span class="keywordtype">bool</span> low_bit_on = <span class="keyword">false</span>, <span class="keywordtype">bool</span> can_be_negative =
+<a name="l00139"></a>00139 <span class="keyword">false</span>);
+<a name="l00140"></a>00140
+<a name="l00141"></a>00141 <span class="keyword">template</span> <<span class="keyword">class</span> GenType>
+<a name="l00142"></a>00142 <span class="keyword">static</span> raw_integer_t random_prime(GenType& gen, <span class="keywordtype">size_t</span> size_in_bits,
+<a name="l00143"></a>00143 <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback = <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696" title="An empty callback_t, used as a default parameter for some functions.">no_callback</a>);
+<a name="l00144"></a>00144
+<a name="l00145"></a>00145 <span class="keywordtype">void</span> _swap(BOOST_XINT_RAWINT& i2);
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 <span class="keyword">private</span>:
+<a name="l00148"></a>00148 <span class="keywordtype">bool</span> changed;
+<a name="l00149"></a>00149 datatype data;
+<a name="l00150"></a>00150
+<a name="l00151"></a>00151 <span class="keyword">template</span> <bit<span class="keywordtype">size_t</span> B, <span class="keywordtype">bool</span> S, <span class="keyword">class</span> A>
+<a name="l00152"></a>00152 <span class="keyword">friend</span> <span class="keyword">class </span>raw_integer_t;
+<a name="l00153"></a>00153 };
+<a name="l00154"></a>00154
+<a name="l00155"></a>00155 BOOST_XINT_RAWINT_TPL
+<a name="l00156"></a>00156 digit_t *BOOST_XINT_RAWINT::digits(<span class="keywordtype">size_t</span> resize, realloc::strategy strategy) {
+<a name="l00157"></a>00157 data.resize_and_uniquify(resize, strategy);
+<a name="l00158"></a>00158 <span class="keywordflow">if</span> (resize == 0 || resize > data.max_length()) resize = data.max_length();
+<a name="l00159"></a>00159 <span class="keywordflow">if</span> (strategy != realloc::copy) {
+<a name="l00160"></a>00160 <span class="keywordflow">if</span> (length < resize) {
+<a name="l00161"></a>00161 <span class="keywordflow">if</span> (strategy == realloc::extend) {
+<a name="l00162"></a>00162 digit_t *d = data.digits(), *p = d + length, *pe = d + resize;
+<a name="l00163"></a>00163 <span class="keywordflow">while</span> (p != pe) *p++ = 0;
+<a name="l00164"></a>00164 }
+<a name="l00165"></a>00165 length = resize;
+<a name="l00166"></a>00166 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (length > data.max_length()) length = data.max_length();
+<a name="l00167"></a>00167 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (length > data.max_length()) length = data.max_length();
+<a name="l00168"></a>00168 changed = <span class="keyword">true</span>;
+<a name="l00169"></a>00169 <span class="keywordflow">return</span> data.digits();
+<a name="l00170"></a>00170 }
+<a name="l00171"></a>00171
+<a name="l00172"></a>00172 BOOST_XINT_RAWINT_TPL
+<a name="l00173"></a>00173 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::set_signed(boost::intmax_t n, <span class="keywordtype">size_t</span> prealloc) {
+<a name="l00174"></a>00174 <span class="keywordflow">if</span> (n >= 0) {
+<a name="l00175"></a>00175 <span class="keywordflow">if</span> (n <= digit_mask) {
+<a name="l00176"></a>00176 length = 1;
+<a name="l00177"></a>00177 negative = <span class="keyword">false</span>;
+<a name="l00178"></a>00178 <span class="keywordflow">if</span> (prealloc != 0) {
+<a name="l00179"></a>00179 digits(prealloc, realloc::zero)[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
+<a name="l00180"></a>00180 } <span class="keywordflow">else</span> {
+<a name="l00181"></a>00181 digits(1, realloc::ignore)[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
+<a name="l00182"></a>00182 }
+<a name="l00183"></a>00183 trim();
+<a name="l00184"></a>00184 } <span class="keywordflow">else</span> set_unsigned(n, <span class="keyword">false</span>, prealloc);
+<a name="l00185"></a>00185 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == (std::numeric_limits<boost::intmax_t>::min)()) {
+<a name="l00186"></a>00186 <span class="comment">// Have to treat the minimum number carefully, because -n is not</span>
+<a name="l00187"></a>00187 <span class="comment">// what you'd think it is.</span>
+<a name="l00188"></a>00188 set_unsigned(-(n + 1), <span class="keyword">true</span>, prealloc);
+<a name="l00189"></a>00189 --*<span class="keyword">this</span>;
+<a name="l00190"></a>00190 } <span class="keywordflow">else</span> set_unsigned(-n, <span class="keyword">true</span>, prealloc);
+<a name="l00191"></a>00191 }
+<a name="l00192"></a>00192
+<a name="l00193"></a>00193 BOOST_XINT_RAWINT_TPL
+<a name="l00194"></a>00194 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::set_unsigned(boost::uintmax_t n, <span class="keywordtype">bool</span> neg, <span class="keywordtype">size_t</span>
+<a name="l00195"></a>00195 prealloc)
+<a name="l00196"></a>00196 {
+<a name="l00197"></a>00197 <span class="keywordflow">if</span> (n <= digit_mask) {
+<a name="l00198"></a>00198 length = 1;
+<a name="l00199"></a>00199 <span class="keywordflow">if</span> (prealloc != 0) {
+<a name="l00200"></a>00200 digits(prealloc, realloc::zero)[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
+<a name="l00201"></a>00201 } <span class="keywordflow">else</span> {
+<a name="l00202"></a>00202 digits(1, realloc::ignore)[0] = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
+<a name="l00203"></a>00203 }
+<a name="l00204"></a>00204 } <span class="keywordflow">else</span> {
+<a name="l00205"></a>00205 digit_t *d = digits((std::max)(digits_in_uintmax, prealloc),
+<a name="l00206"></a>00206 realloc::ignore), *i = d, *ie = i + max_length();
+<a name="l00207"></a>00207 <span class="keywordflow">while</span> (n != 0 && i != ie) {
+<a name="l00208"></a>00208 *i++ = <span class="keyword">static_cast<</span>digit_t<span class="keyword">></span>(n);
+<a name="l00209"></a>00209 n >>= bits_per_digit;
+<a name="l00210"></a>00210 }
+<a name="l00211"></a>00211 length = (i - d);
+<a name="l00212"></a>00212 }
+<a name="l00213"></a>00213 negative = neg;
+<a name="l00214"></a>00214 trim();
+<a name="l00215"></a>00215 }
+<a name="l00216"></a>00216
+<a name="l00217"></a>00217 BOOST_XINT_RAWINT_TPL
+<a name="l00218"></a>00218 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::trim(<span class="keywordtype">bool</span> allow_negative_zero) {
+<a name="l00219"></a>00219 assert(length <= max_length());
+<a name="l00220"></a>00220
+<a name="l00221"></a>00221 <span class="keywordtype">bool</span> zero = <span class="keyword">false</span>;
+<a name="l00222"></a>00222 <span class="keywordflow">if</span> (changed) {
+<a name="l00223"></a>00223 data.trim();
+<a name="l00224"></a>00224 <span class="keywordflow">if</span> (length > 1) {
+<a name="l00225"></a>00225 digit_t *d = data.digits(), *i = d + length - 1;
+<a name="l00226"></a>00226 <span class="keywordflow">if</span> (*i == 0) {
+<a name="l00227"></a>00227 <span class="keywordflow">do</span> { --i; } <span class="keywordflow">while</span> (i > d && *i == 0);
+<a name="l00228"></a>00228 length = size_t(i - d) + 1;
+<a name="l00229"></a>00229 <span class="keywordflow">if</span> (i == d && *i == 0) zero = <span class="keyword">true</span>;
+<a name="l00230"></a>00230 }
+<a name="l00231"></a>00231 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (data.digits()[0] == 0) zero = <span class="keyword">true</span>;
+<a name="l00232"></a>00232 changed = <span class="keyword">false</span>;
+<a name="l00233"></a>00233 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (length == 1 && data.digits()[0] == 0) zero = <span class="keyword">true</span>;
+<a name="l00234"></a>00234 <span class="keywordflow">if</span> (zero && !allow_negative_zero) negative = <span class="keyword">false</span>;
+<a name="l00235"></a>00235 }
+<a name="l00236"></a>00236
+<a name="l00237"></a>00237 BOOST_XINT_RAWINT_TPL
+<a name="l00238"></a>00238 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::_swap(BOOST_XINT_RAWINT& i2) {
+<a name="l00239"></a>00239 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
+<a name="l00240"></a>00240 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(length, i2.length);
+<a name="l00241"></a>00241 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(negative, i2.negative);
+<a name="l00242"></a>00242 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(changed, i2.changed);
+<a name="l00243"></a>00243 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(data, i2.data);
+<a name="l00244"></a>00244 }
+<a name="l00245"></a>00245
+<a name="l00247"></a>00247 <span class="comment">// Free functions</span>
<a name="l00248"></a>00248
-<a name="l00249"></a>00249 <span class="keyword">template</span> <<span class="keyword">typename</span> charT, <span class="keyword">typename</span> traits, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class </span>\
-<a name="l00250"></a>00250 Alloc>
-<a name="l00251"></a>00251 <span class="keyword">inline</span> std::basic_ostream<charT,traits>& <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">operator<<</a>(std::basic_ostream<charT,
-<a name="l00252"></a>00252 traits>& out, <span class="keyword">const</span> BOOST_XINT_RAWINT n)
-<a name="l00253"></a>00253 {
-<a name="l00254"></a>00254 <span class="keywordtype">int</span> base=((out.flags() & std::ios::hex) ? 16
-<a name="l00255"></a>00255 : (out.flags() & std::ios::oct) ? 8
-<a name="l00256"></a>00256 : 10);
-<a name="l00257"></a>00257 <span class="keywordtype">bool</span> upperCase=(out.flags() & std::ios::uppercase ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l00249"></a>00249 BOOST_XINT_RAWINT_TPL
+<a name="l00250"></a>00250 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(BOOST_XINT_RAWINT& i1, BOOST_XINT_RAWINT& i2) {
+<a name="l00251"></a>00251 i1._swap(i2);
+<a name="l00252"></a>00252 }
+<a name="l00253"></a>00253
+<a name="l00255"></a>00255 } <span class="comment">// namespace detail</span>
+<a name="l00256"></a>00256 } <span class="comment">// namespace xint</span>
+<a name="l00257"></a>00257 } <span class="comment">// namespace boost</span>
<a name="l00258"></a>00258
-<a name="l00259"></a>00259 <span class="keywordtype">int</span> nsign = (n.is_zero() ? 0 : n.negative ? -1 : 1);
-<a name="l00260"></a>00260 <span class="keywordflow">if</span> ((out.flags() & std::ios::showpos) && nsign >= 0) out << <span class="stringliteral">"+"</span>;
-<a name="l00261"></a>00261
-<a name="l00262"></a>00262 <span class="keywordflow">if</span> (out.flags() & std::ios::showbase) {
-<a name="l00263"></a>00263 <span class="keywordflow">if</span> (nsign < 0) out << <span class="stringliteral">"-"</span>;
-<a name="l00264"></a>00264
-<a name="l00265"></a>00265 <span class="keywordflow">if</span> (base == 16 && upperCase) out << <span class="stringliteral">"0X"</span>;
-<a name="l00266"></a>00266 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base == 16) out << <span class="stringliteral">"0x"</span>;
-<a name="l00267"></a>00267 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base == 8) out << <span class="stringliteral">"0"</span>;
-<a name="l00268"></a>00268
-<a name="l00269"></a>00269 out << <a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2" title="Creates a string representation of the specified integer.">to_string</a>(n.abs(), base, upperCase);
-<a name="l00270"></a>00270 } <span class="keywordflow">else</span> {
-<a name="l00271"></a>00271 out << <a class="code" href="namespaceboost_1_1xint.html#a34f1da34b7c169828bf55154f3cbccf2" title="Creates a string representation of the specified integer.">to_string</a>(n, base, upperCase);
-<a name="l00272"></a>00272 }
-<a name="l00273"></a>00273 <span class="keywordflow">return</span> out;
-<a name="l00274"></a>00274 }
-<a name="l00275"></a>00275
-<a name="l00276"></a>00276 <span class="keyword">template</span> <<span class="keyword">typename</span> charT, <span class="keyword">typename</span> traits, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class </span>\
-<a name="l00277"></a>00277 Alloc>
-<a name="l00278"></a>00278 <span class="keyword">inline</span> std::basic_istream<charT,traits>& <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator>></a>(std::basic_istream<charT,
-<a name="l00279"></a>00279 traits>& in, BOOST_XINT_RAWINT& n)
-<a name="l00280"></a>00280 {
-<a name="l00281"></a>00281 <span class="keywordtype">int</span> hex=(in.flags() & std::ios::hex) ? 1 : 0;
-<a name="l00282"></a>00282 <span class="keywordtype">int</span> dec=(in.flags() & std::ios::dec) ? 1 : 0;
-<a name="l00283"></a>00283 <span class="keywordtype">int</span> oct=(in.flags() & std::ios::oct) ? 1 : 0;
-<a name="l00284"></a>00284 <span class="keywordtype">int</span> count=hex+dec+oct;
-<a name="l00285"></a>00285
-<a name="l00286"></a>00286 <span class="keywordtype">size_t</span> base=<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the &#39;base&#39; parameter of the string-to-integer...">autobase</a>;
-<a name="l00287"></a>00287 <span class="keywordflow">if</span> (count == 1) {
-<a name="l00288"></a>00288 <span class="keywordflow">if</span> (hex) base = 16;
-<a name="l00289"></a>00289 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (oct) base = 8;
-<a name="l00290"></a>00290 <span class="keywordflow">else</span> base = 10;
-<a name="l00291"></a>00291 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count > 1) base = 10;
-<a name="l00292"></a>00292 <span class="comment">// else auto-base</span>
-<a name="l00293"></a>00293
-<a name="l00294"></a>00294 std::string s;
-<a name="l00295"></a>00295 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'+'</span>) {
-<a name="l00296"></a>00296 in.ignore();
-<a name="l00297"></a>00297 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'-'</span>) {
-<a name="l00298"></a>00298 in.ignore();
-<a name="l00299"></a>00299 s.push_back(<span class="charliteral">'-'</span>);
-<a name="l00300"></a>00300 }
-<a name="l00301"></a>00301
-<a name="l00302"></a>00302 <span class="keywordflow">if</span> (base==<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the &#39;base&#39; parameter of the string-to-integer...">autobase</a>) {
-<a name="l00303"></a>00303 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'0'</span>) {
-<a name="l00304"></a>00304 in.ignore();
-<a name="l00305"></a>00305 <span class="keywordtype">int</span> c=in.peek();
-<a name="l00306"></a>00306 <span class="keywordflow">if</span> (c==<span class="charliteral">'x'</span> || c==<span class="charliteral">'X'</span>) {
-<a name="l00307"></a>00307 in.ignore();
-<a name="l00308"></a>00308 base=16;
-<a name="l00309"></a>00309 } <span class="keywordflow">else</span> base=8;
-<a name="l00310"></a>00310 } <span class="keywordflow">else</span> base=10;
-<a name="l00311"></a>00311 }
-<a name="l00312"></a>00312
-<a name="l00313"></a>00313 <span class="keywordflow">while</span> (in) {
-<a name="l00314"></a>00314 <span class="keywordtype">int</span> c=in.peek();
-<a name="l00315"></a>00315 <span class="keywordflow">if</span> ((base==8 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'7'</span>)) ||
-<a name="l00316"></a>00316 (base==10 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>)) ||
-<a name="l00317"></a>00317 (base==16 && ((c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>) || (c>=<span class="charliteral">'a'</span> && c<=<span class="charliteral">'f'</span>) ||
-<a name="l00318"></a>00318 (c>=<span class="charliteral">'A'</span> && c<=<span class="charliteral">'F'</span>))))
-<a name="l00319"></a>00319 {
-<a name="l00320"></a>00320 in.ignore();
-<a name="l00321"></a>00321 s.push_back(<span class="keywordtype">char</span>(c));
-<a name="l00322"></a>00322 } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
-<a name="l00323"></a>00323 }
-<a name="l00324"></a>00324
-<a name="l00325"></a>00325 <span class="keywordflow">try</span> {
-<a name="l00326"></a>00326 n.from_string(s, base);
-<a name="l00327"></a>00327 } <span class="keywordflow">catch</span> (std::exception&) {
-<a name="l00328"></a>00328 <span class="comment">// Catch invalid strings</span>
-<a name="l00329"></a>00329 in.setstate(std::ios::failbit);
-<a name="l00330"></a>00330 }
-<a name="l00331"></a>00331
-<a name="l00332"></a>00332 <span class="keywordflow">return</span> in;
-<a name="l00333"></a>00333 }
-<a name="l00334"></a>00334
-<a name="l00336"></a>00336 } <span class="comment">// namespace detail</span>
-<a name="l00337"></a>00337 } <span class="comment">// namespace xint</span>
-<a name="l00338"></a>00338 } <span class="comment">// namespace boost</span>
-<a name="l00339"></a>00339
-<a name="l00340"></a>00340 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RAW_INTEGER_HPP</span>
+<a name="l00259"></a>00259 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RAW_INTEGER_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/roots_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/roots_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/roots_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="roots_8hpp_source.html">roots.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/roots_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/roots_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/roots_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -78,7 +78,7 @@
<a name="l00062"></a>00062 <span class="comment"></span>
<a name="l00063"></a>00063 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_ROOTS_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/shift_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/shift_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/shift_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -38,7 +38,7 @@
<p>Definition in file <a class="el" href="shift_8hpp_source.html">shift.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/shift_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/shift_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/shift_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -126,7 +126,7 @@
<a name="l00109"></a>00109 <span class="comment"></span>
<a name="l00110"></a>00110 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_SHIFT_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Copied: sandbox/xint/libs/xint/doc/streams_8hpp.html (from r62853, /sandbox/xint/libs/xint/doc/policies_8hpp.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/policies_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/streams_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>The Extended Integer (XInt) Library: detail/policies.hpp File Reference</title>
+<title>The Extended Integer (XInt) Library: detail/streams.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
@@ -25,11 +25,11 @@
</div>
</div>
<div class="contents">
-<h1>detail/policies.hpp File Reference</h1>
-<p>Contains the policy classes.
+<h1>detail/streams.hpp File Reference</h1>
+<p>Contains the stream input/output code for raw_integer types.
<a href="#_details">More...</a></p>
-<p>Go to the source code of this file.</p>
+<p>Go to the source code of this file.</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
@@ -45,12 +45,12 @@
</p>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Contains the policy classes. </p>
+<p>Contains the stream input/output code for raw_integer types. </p>
<p>This file will be included by the library itself when needed. </p>
-<p>Definition in file <a class="el" href="policies_8hpp_source.html">policies.hpp</a>.</p>
+<p>Definition in file <a class="el" href="streams_8hpp_source.html">streams.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Added: sandbox/xint/libs/xint/doc/streams_8hpp_source.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/streams_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>The Extended Integer (XInt) Library: detail/streams.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.6.3 -->
+<div class="navigation" id="top">
+ <div class="tabs">
+ <ul>
+ <li>Main Page</li>
+ <li>Namespaces</li>
+ <li>Classes</li>
+ <li class="current">Files</li>
+ </ul>
+ </div>
+ <div class="tabs">
+ <ul>
+ <li>File List</li>
+ <li>File Members</li>
+ </ul>
+ </div>
+<h1>detail/streams.hpp</h1>Go to the documentation of this file.<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
+<a name="l00002"></a>00002 <span class="comment">/*</span>
+<a name="l00003"></a>00003 <span class="comment"> The Extended Integer (XInt) Library</span>
+<a name="l00004"></a>00004 <span class="comment"> A fast, portable C++ library for multi-precision integer math</span>
+<a name="l00005"></a>00005 <span class="comment"> Copyright 2010 by Chad Nelson</span>
+<a name="l00006"></a>00006 <span class="comment"></span>
+<a name="l00007"></a>00007 <span class="comment"> Distributed under the Boost Software License, Version 1.0.</span>
+<a name="l00008"></a>00008 <span class="comment"> See accompanying file LICENSE_1_0.txt or copy at</span>
+<a name="l00009"></a>00009 <span class="comment"> http://www.boost.org/LICENSE_1_0.txt>
+<a name="l00010"></a>00010 <span class="comment"></span>
+<a name="l00011"></a>00011 <span class="comment"> See http://www.boost.org/libs/xint for library home page.</span>
+<a name="l00012"></a>00012 <span class="comment">*/</span>
+<a name="l00013"></a>00013
+<a name="l00020"></a>00020 <span class="preprocessor">#ifndef BOOST_INCLUDED_XINT_RAW_STREAMS_HPP</span>
+<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_RAW_STREAMS_HPP</span>
+<a name="l00022"></a>00022 <span class="preprocessor"></span>
+<a name="l00023"></a>00023 <span class="keyword">namespace </span>boost {
+<a name="l00024"></a>00024 <span class="keyword">namespace </span>xint {
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>detail {
+<a name="l00027"></a>00027
+<a name="l00028"></a>00028 <span class="keyword">template</span> <<span class="keyword">typename</span> charT, <span class="keyword">typename</span> traits, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class </span>\
+<a name="l00029"></a>00029 Alloc>
+<a name="l00030"></a>00030 <span class="keyword">inline</span> std::basic_ostream<charT,traits>& <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">operator<<</a>(std::basic_ostream<charT,
+<a name="l00031"></a>00031 traits>& out, <span class="keyword">const</span> BOOST_XINT_RAWINT n)
+<a name="l00032"></a>00032 {
+<a name="l00033"></a>00033 <span class="keywordtype">int</span> base=((out.flags() & std::ios::hex) ? 16
+<a name="l00034"></a>00034 : (out.flags() & std::ios::oct) ? 8
+<a name="l00035"></a>00035 : 10);
+<a name="l00036"></a>00036 <span class="keywordtype">bool</span> upperCase=(out.flags() & std::ios::uppercase ? <span class="keyword">true</span> : <span class="keyword">false</span>);
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 <span class="keywordtype">int</span> nsign = (n.is_zero() ? 0 : n.negative ? -1 : 1);
+<a name="l00039"></a>00039 <span class="keywordflow">if</span> ((out.flags() & std::ios::showpos) && nsign >= 0) out << <span class="stringliteral">"+"</span>;
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="keywordflow">if</span> (out.flags() & std::ios::showbase) {
+<a name="l00042"></a>00042 <span class="keywordflow">if</span> (nsign < 0) out << <span class="stringliteral">"-"</span>;
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="keywordflow">if</span> (base == 16 && upperCase) out << <span class="stringliteral">"0X"</span>;
+<a name="l00045"></a>00045 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base == 16) out << <span class="stringliteral">"0x"</span>;
+<a name="l00046"></a>00046 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (base == 8) out << <span class="stringliteral">"0"</span>;
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 out << to_string<charT>(n.abs(), base, upperCase);
+<a name="l00049"></a>00049 } <span class="keywordflow">else</span> {
+<a name="l00050"></a>00050 out << to_string<charT>(n, base, upperCase);
+<a name="l00051"></a>00051 }
+<a name="l00052"></a>00052 <span class="keywordflow">return</span> out;
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="keyword">template</span> <<span class="keyword">typename</span> charT, <span class="keyword">typename</span> traits, <a class="code" href="namespaceboost_1_1xint.html#ab256530d9916860983abdb6f0c6fad63" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class </span>\
+<a name="l00056"></a>00056 Alloc>
+<a name="l00057"></a>00057 <span class="keyword">inline</span> std::basic_istream<charT,traits>& <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator>></a>(std::basic_istream<charT,
+<a name="l00058"></a>00058 traits>& in, BOOST_XINT_RAWINT& n)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060 <span class="keywordtype">int</span> hex=(in.flags() & std::ios::hex) ? 1 : 0;
+<a name="l00061"></a>00061 <span class="keywordtype">int</span> dec=(in.flags() & std::ios::dec) ? 1 : 0;
+<a name="l00062"></a>00062 <span class="keywordtype">int</span> oct=(in.flags() & std::ios::oct) ? 1 : 0;
+<a name="l00063"></a>00063 <span class="keywordtype">int</span> count=hex+dec+oct;
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="keywordtype">size_t</span> base=<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the &#39;base&#39; parameter of the string-to-integer...">autobase</a>;
+<a name="l00066"></a>00066 <span class="keywordflow">if</span> (count == 1) {
+<a name="l00067"></a>00067 <span class="keywordflow">if</span> (hex) base = 16;
+<a name="l00068"></a>00068 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (oct) base = 8;
+<a name="l00069"></a>00069 <span class="keywordflow">else</span> base = 10;
+<a name="l00070"></a>00070 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (count > 1) base = 10;
+<a name="l00071"></a>00071 <span class="comment">// else auto-base</span>
+<a name="l00072"></a>00072
+<a name="l00073"></a>00073 std::string s;
+<a name="l00074"></a>00074 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'+'</span>) {
+<a name="l00075"></a>00075 in.ignore();
+<a name="l00076"></a>00076 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'-'</span>) {
+<a name="l00077"></a>00077 in.ignore();
+<a name="l00078"></a>00078 s.push_back(<span class="charliteral">'-'</span>);
+<a name="l00079"></a>00079 }
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 <span class="keywordflow">if</span> (base==<a class="code" href="namespaceboost_1_1xint.html#a086ec65a0273dccedca0fbfbddb03398" title="A value that can be used for the &#39;base&#39; parameter of the string-to-integer...">autobase</a>) {
+<a name="l00082"></a>00082 <span class="keywordflow">if</span> (in.peek()==<span class="charliteral">'0'</span>) {
+<a name="l00083"></a>00083 in.ignore();
+<a name="l00084"></a>00084 <span class="keywordtype">int</span> c=in.peek();
+<a name="l00085"></a>00085 <span class="keywordflow">if</span> (c==<span class="charliteral">'x'</span> || c==<span class="charliteral">'X'</span>) {
+<a name="l00086"></a>00086 in.ignore();
+<a name="l00087"></a>00087 base=16;
+<a name="l00088"></a>00088 } <span class="keywordflow">else</span> base=8;
+<a name="l00089"></a>00089 } <span class="keywordflow">else</span> base=10;
+<a name="l00090"></a>00090 }
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 <span class="keywordflow">while</span> (in) {
+<a name="l00093"></a>00093 <span class="keywordtype">int</span> c=in.peek();
+<a name="l00094"></a>00094 <span class="keywordflow">if</span> ((base==8 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'7'</span>)) ||
+<a name="l00095"></a>00095 (base==10 && (c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>)) ||
+<a name="l00096"></a>00096 (base==16 && ((c>=<span class="charliteral">'0'</span> && c<=<span class="charliteral">'9'</span>) || (c>=<span class="charliteral">'a'</span> && c<=<span class="charliteral">'f'</span>) ||
+<a name="l00097"></a>00097 (c>=<span class="charliteral">'A'</span> && c<=<span class="charliteral">'F'</span>))))
+<a name="l00098"></a>00098 {
+<a name="l00099"></a>00099 in.ignore();
+<a name="l00100"></a>00100 s.push_back(<span class="keywordtype">char</span>(c));
+<a name="l00101"></a>00101 } <span class="keywordflow">else</span> <span class="keywordflow">break</span>;
+<a name="l00102"></a>00102 }
+<a name="l00103"></a>00103
+<a name="l00104"></a>00104 <span class="keywordflow">try</span> {
+<a name="l00105"></a>00105 n.from_string(s, base);
+<a name="l00106"></a>00106 } <span class="keywordflow">catch</span> (std::exception&) {
+<a name="l00107"></a>00107 <span class="comment">// Catch invalid strings</span>
+<a name="l00108"></a>00108 in.setstate(std::ios::failbit);
+<a name="l00109"></a>00109 }
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 <span class="keywordflow">return</span> in;
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113
+<a name="l00115"></a>00115 } <span class="comment">// namespace detail</span>
+<a name="l00116"></a>00116 } <span class="comment">// namespace xint</span>
+<a name="l00117"></a>00117 } <span class="comment">// namespace boost</span>
+<a name="l00118"></a>00118
+<a name="l00119"></a>00119 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RAW_STREAMS_HPP</span>
+</pre></div></div>
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
+</body>
+</html>
Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -47,7 +47,7 @@
<li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -47,7 +47,7 @@
<li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -47,7 +47,7 @@
<li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -50,7 +50,7 @@
<li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -47,7 +47,7 @@
<li>detail/<a class="el" href="options_8hpp_source.html">options.hpp</a></li>
</ul>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/testing.html
==============================================================================
--- sandbox/xint/libs/xint/doc/testing.html (original)
+++ sandbox/xint/libs/xint/doc/testing.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -26,7 +26,7 @@
<h1><a class="anchor" id="testing">The Self-Testing Program </a></h1><p>The library has a self-testing program that you can build and run to confirm that it is working properly. You can find the source code for it in the <code>libs/xint/test</code> directory. All of the major functions are thoroughly exercised, and many of the minor ones as well.</p>
<p>The source code for the testing program also demonstrates how to use many of the library's functions. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/testing_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/testing_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/testing_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/testing.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/threadsafe.html
==============================================================================
--- sandbox/xint/libs/xint/doc/threadsafe.html (original)
+++ sandbox/xint/libs/xint/doc/threadsafe.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -27,7 +27,7 @@
<p>That's a simplification though. The only problem multithreaded programs have with copy-on-write is that one thread might change an object while another is reading from it. Since the copy-on-write behavior is entirely internal to the class, no other code can tell when it's safe to make changes to an object. This is only a problem when more than one thread can access a specific object. So long as an integer object is only accessed from the thread that it's created in, there's no danger.</p>
<p>If you want the speed of copy-on-write (which can be noticeable if you're dealing with very large numbers), but need to use integer objects from multiple threads when one or more might alter them, you can use the <code>force_thread_safety</code> parameter on the object's copy constructor to make a duplicate of an object with its own unique storage, even if the <code>threadsafe</code> template parameter is <code>false</code>. You'll only need to do that when the integer object is crossing thread boundaries. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/threadsafe_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/threadsafe_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/threadsafe_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/threadsafe.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/xint_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/xint_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/xint_8hpp.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -37,7 +37,7 @@
<p>Definition in file <a class="el" href="xint_8hpp_source.html">xint.hpp</a>.</p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/xint_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/xint_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/xint_8hpp_source.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -45,7 +45,7 @@
<a name="l00024"></a>00024
<a name="l00025"></a>00025 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_HPP</span>
</pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/zero.html
==============================================================================
--- sandbox/xint/libs/xint/doc/zero.html (original)
+++ sandbox/xint/libs/xint/doc/zero.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -30,7 +30,7 @@
</pre></div><p>A negative zero will act exactly like a "normal" zero in all respects. The only way to detect a sign on it is by calling <a class="el" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3">the sign function</a> with the <code>signed_zero</code> parameter <code>true</code>. With that parameter, it will return -1 on any negative number, including zero.</p>
<p>Note that the unary minus operator is the only function that will ever return a negative zero. </p>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:08 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/doc/zero_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/zero_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/zero_8dox.html 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -28,7 +28,7 @@
<h1>/home/chad/projects/xint/libs/xint/doc/dox/zero.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
</table>
</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 11:43:07 2010 for The Extended Integer (XInt) Library by
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 00:01:46 2010 for The Extended Integer (XInt) Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
Modified: sandbox/xint/libs/xint/test/test_convert.cpp
==============================================================================
--- sandbox/xint/libs/xint/test/test_convert.cpp (original)
+++ sandbox/xint/libs/xint/test/test_convert.cpp 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -94,7 +94,7 @@
nothrow_integer test1 = nothrow_integer::nan();
std::ostringstream outstream;
outstream << test1;
- BOOST_CHECK_EQUAL(outstream.str(), nan_text);
+ BOOST_CHECK_EQUAL(outstream.str(), detail::nan_text<char>());
std::istringstream instream;
instream.str(outstream.str());
@@ -104,6 +104,19 @@
}
}
+BOOST_AUTO_TEST_CASE(test_wstring_conversions) {
+ std::wstring nStr(L"2345678900987654321");
+ integer n(nStr);
+ std::wstring nStr2 = to_wstring(n);
+ BOOST_CHECK(nStr == nStr2);
+
+ nothrow_integer nt = nothrow_integer::nan();
+ std::wstring ntStr = to_wstring(nt);
+ BOOST_CHECK(ntStr.length() > 0 && ntStr == detail::nan_text<wchar_t>());
+ nothrow_integer nt2(ntStr);
+ BOOST_CHECK(nt2.is_nan());
+}
+
BOOST_AUTO_TEST_CASE(test_binary_conversions) {
integer test(0x12345678);
binary_t testbin = to_binary(test, 4);
Modified: sandbox/xint/libs/xint/test/test_streams.cpp
==============================================================================
--- sandbox/xint/libs/xint/test/test_streams.cpp (original)
+++ sandbox/xint/libs/xint/test/test_streams.cpp 2010-06-13 00:06:08 EDT (Sun, 13 Jun 2010)
@@ -181,6 +181,27 @@
}
}
+BOOST_AUTO_TEST_CASE(test_wstreams) {
+ const std::wstring nStreamSrc10 = L"28772997619311";
+ std::basic_istringstream<wchar_t> in(nStreamSrc10);
+ integer n;
+ in >> n;
+ std::basic_ostringstream<wchar_t> out;
+ out << n;
+ BOOST_CHECK(out.str() == nStreamSrc10);
+
+ nothrow_integer nt;
+ {
+ std::basic_istringstream<wchar_t> in(detail::nan_text<wchar_t>());
+ in >> nt;
+ }
+
+ BOOST_CHECK(nt.is_nan());
+ out.str(std::wstring());
+ out << nt;
+ BOOST_CHECK(out.str() == detail::nan_text<wchar_t>());
+}
+
// The following is copyright Paul A. Bristow 2010
//! Compare stream output with expected.
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk