Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r63309 - in sandbox/xint: boost/xint boost/xint/detail dev libs/xint/doc libs/xint/doc/dox
From: chad.thecomfychair_at_[hidden]
Date: 2010-06-25 12:11:47


Author: chadnelson
Date: 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
New Revision: 63309
URL: http://svn.boost.org/trac/boost/changeset/63309

Log:
Added on_exception function, and support for GCC's -fno-exceptions.
Added:
   sandbox/xint/libs/xint/doc/dox/no_exceptions.dox (contents, props changed)
   sandbox/xint/libs/xint/doc/exception__handler.html (contents, props changed)
   sandbox/xint/libs/xint/doc/no__exceptions_8dox.html
      - copied, changed from r63090, /sandbox/xint/libs/xint/doc/complexity_8dox.html
Text files modified:
   sandbox/xint/boost/xint/detail/basic_types_and_includes.hpp | 34
   sandbox/xint/boost/xint/detail/bitfunctions.hpp | 5
   sandbox/xint/boost/xint/detail/convert.hpp | 42
   sandbox/xint/boost/xint/detail/divide.hpp | 3
   sandbox/xint/boost/xint/detail/gcd.hpp | 3
   sandbox/xint/boost/xint/detail/internals.hpp | 12
   sandbox/xint/boost/xint/detail/modular.hpp | 3
   sandbox/xint/boost/xint/detail/monty.hpp | 4
   sandbox/xint/boost/xint/detail/options.hpp | 9
   sandbox/xint/boost/xint/detail/policies.hpp | 14
   sandbox/xint/boost/xint/detail/prime.hpp | 10
   sandbox/xint/boost/xint/detail/randomgen.hpp | 13
   sandbox/xint/boost/xint/detail/roots.hpp | 5
   sandbox/xint/boost/xint/detail/streams.hpp | 4
   sandbox/xint/boost/xint/exceptions.hpp | 23
   sandbox/xint/boost/xint/integer.hpp | 291 +-
   sandbox/xint/dev/Docs.project | 2
   sandbox/xint/dev/Example-Exceptions.project | 2
   sandbox/xint/dev/Example-Fibonacci.project | 2
   sandbox/xint/dev/Example-GenPrime.project | 2
   sandbox/xint/dev/XInt.project | 94
   sandbox/xint/dev/XInt.workspace | 2
   sandbox/xint/libs/xint/doc/acknowledgements.html | 2
   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 | 6
   sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp_source.html | 176 +
   sandbox/xint/libs/xint/doc/bitfunctions_8hpp.html | 2
   sandbox/xint/libs/xint/doc/bitfunctions_8hpp_source.html | 41
   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 | 6
   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 | 6
   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 | 6
   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 | 6
   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 | 6
   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 | 6
   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 | 6
   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 | 9
   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 | 6
   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 | 6
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t-members.html | 2
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t.html | 58
   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 | 452 ++--
   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 | 155
   sandbox/xint/libs/xint/doc/dox/index.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 | 9
   sandbox/xint/libs/xint/doc/exceptions_8hpp_source.html | 147
   sandbox/xint/libs/xint/doc/files.html | 4
   sandbox/xint/libs/xint/doc/fixedlength_8dox.html | 2
   sandbox/xint/libs/xint/doc/fixedlength__type.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 | 65
   sandbox/xint/libs/xint/doc/globals.html | 14
   sandbox/xint/libs/xint/doc/globals_defs.html | 14
   sandbox/xint/libs/xint/doc/history.html | 2
   sandbox/xint/libs/xint/doc/history_8dox.html | 2
   sandbox/xint/libs/xint/doc/index.html | 3
   sandbox/xint/libs/xint/doc/index_8dox.html | 2
   sandbox/xint/libs/xint/doc/integer_8hpp.html | 14
   sandbox/xint/libs/xint/doc/integer_8hpp_source.html | 3159 ++++++++++++++++++++-------------------
   sandbox/xint/libs/xint/doc/internals_8hpp.html | 68
   sandbox/xint/libs/xint/doc/internals_8hpp_source.html | 190 +-
   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 | 81
   sandbox/xint/libs/xint/doc/monty_8hpp.html | 2
   sandbox/xint/libs/xint/doc/monty_8hpp_source.html | 6
   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 | 163 +
   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 | 5
   sandbox/xint/libs/xint/doc/namespacemembers_type.html | 5
   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/no__exceptions_8dox.html | 6
   sandbox/xint/libs/xint/doc/options_8hpp.html | 2
   sandbox/xint/libs/xint/doc/options_8hpp_source.html | 83
   sandbox/xint/libs/xint/doc/policies_8hpp.html | 2
   sandbox/xint/libs/xint/doc/policies_8hpp_source.html | 180 +-
   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 | 134
   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 | 181 +-
   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 | 2
   sandbox/xint/libs/xint/doc/roots_8hpp.html | 2
   sandbox/xint/libs/xint/doc/roots_8hpp_source.html | 65
   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 | 2
   sandbox/xint/libs/xint/doc/streams_8hpp_source.html | 6
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1copy__on__write.html | 2
   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_1negative__absolute.html | 2
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html | 2
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html | 2
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html | 2
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html | 2
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.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_1secure.html | 2
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe.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
   197 files changed, 3376 insertions(+), 3051 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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -72,6 +72,22 @@
 namespace boost {
 namespace xint {
 
+/*! \brief The function type for \ref boost::xint::on_exception "on_exception".
+
+\param file The source code file that the exception originated from, as reported
+by the __FILE__ macro.
+\param line The line (in that file) where the exception originated, as reported
+by the __LINE__ macro.
+\param e The exception that was thrown.
+
+\returns If this function returns, the exception will be thrown as normal, or
+(if BOOST_XINT_NO_EXCEPTIONS is used) \c abort() will be called.
+
+\see \ref exception_handler
+*/
+typedef boost::function<void (const char *file, std::size_t line, const
+ std::exception& e)> on_exception_t;
+
 //! \brief A callback function takes no parameters and returns a bool.
 typedef boost::function<bool ()> callback_t;
 
@@ -131,6 +147,24 @@
 typedef boost::uint_t<std::numeric_limits<doubledigit_t>::digits / 2>::fast
     digit_t;
 
+//! \brief Used to hold the optional user-defined exception function
+template <typename T = void>
+struct exception_handler {
+ template <typename E>
+ static void call(const char *file, std::size_t line, const E& e) {
+ #ifdef BOOST_XINT_NO_EXCEPTIONS
+ if (fn) fn(file, line, e);
+ abort();
+ #else
+ if (fn) fn(file, line, e);
+ throw e;
+ #endif
+ }
+
+ static on_exception_t fn;
+};
+template <typename T> on_exception_t exception_handler<T>::fn;
+
 //! \name Some constants used by the library.
 //!@{
 const std::size_t minimum_digits = 1;

Modified: sandbox/xint/boost/xint/detail/bitfunctions.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/bitfunctions.hpp (original)
+++ sandbox/xint/boost/xint/detail/bitfunctions.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -76,8 +76,9 @@
 BOOST_XINT_RAWINT_TPL
 BOOST_XINT_RAWINT BOOST_XINT_RAWINT::operator~() const {
     if (Bits == 0) {
- throw exceptions::too_big("operator~ on unlimited integers results in "
- "an infinitely long number.");
+ exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::too_big("operator~ on unlimited integers results in "
+ "an infinitely long number."));
     } else {
         BOOST_XINT_RAWINT r;
         const digit_t *s = digits(), *se = s + length;

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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -35,7 +35,8 @@
 std::basic_string<charT> to_string(const BOOST_XINT_RAWINT n, std::size_t base =
     10, bool uppercase = false)
 {
- if (base < 2 || base > 36) throw exceptions::invalid_base();
+ if (base < 2 || base > 36) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_base());
 
     std::basic_ostringstream<charT> out;
     if (n.is_zero()) {
@@ -120,8 +121,10 @@
         } else base = 10;
     }
 
- if (base < 2 || base > 36) throw exceptions::invalid_base();
- if (*c == 0) throw exceptions::invalid_digit("No valid digits");
+ if (base < 2 || base > 36) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_base());
+ if (*c == 0) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_digit("No valid digits"));
 
     std::basic_string<charT> tstr;
     if (negate) tstr.push_back('-');
@@ -160,8 +163,10 @@
         } else base = 10;
     }
 
- if (base < 2 || base > 36) throw exceptions::invalid_base();
- if (*c == 0) throw exceptions::invalid_digit("No valid digits");
+ if (base < 2 || base > 36) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_base());
+ if (*c == 0) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_digit("No valid digits"));
 
     // ATTN: for when there's nothing more pressing to do
     // This function could use the same efficiency improvements that to_string
@@ -176,12 +181,13 @@
         if (*c >= '0' && *c <= '9') digit.set(*c - '0');
         else if (*c >= 'A' && *c <= 'Z') digit.set(*c - 'A' + 10);
         else if (*c >= 'a' && *c <= 'z') digit.set(*c - 'a' + 10);
- else
- throw exceptions::invalid_digit("encountered non-alphanumeric "
- "character in string");
-
- if (digit >= shift) throw exceptions::invalid_digit("encountered digit "
- "greater than base allows");
+ else exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_digit("encountered non-alphanumeric character "
+ "in string"));
+
+ if (digit >= shift) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_digit("encountered digit greater than base "
+ "allows"));
 
         *this *= shift;
         *this += digit;
@@ -202,9 +208,10 @@
 
 BOOST_XINT_RAWINT_TPL
 xint::binary_t to_binary(const BOOST_XINT_RAWINT n, std::size_t bits = 0) {
- if (bits > std::size_t(std::numeric_limits<unsigned char>::digits)) throw
+ if (bits > std::size_t(std::numeric_limits<unsigned char>::digits))
+ exception_handler<>::call(__FILE__, __LINE__,
         exceptions::invalid_argument("can't fit that many bits into an "
- "unsigned character on this system");
+ "unsigned character on this system"));
     if (bits == 0) bits = std::numeric_limits<unsigned char>::digits;
 
     bitqueue_t bitqueue;
@@ -220,9 +227,10 @@
 
 BOOST_XINT_RAWINT_TPL
 void BOOST_XINT_RAWINT::from_binary(xint::binary_t b, std::size_t bits) {
- if (bits > std::size_t(std::numeric_limits<unsigned char>::digits)) throw
+ if (bits > std::size_t(std::numeric_limits<unsigned char>::digits))
+ exception_handler<>::call(__FILE__, __LINE__,
         exceptions::invalid_argument("can't fit that many bits into an "
- "unsigned character on this system");
+ "unsigned character on this system"));
     if (bits == 0) bits = std::numeric_limits<unsigned char>::digits;
 
     bitqueue_t bitqueue;
@@ -245,8 +253,8 @@
 
     static const BOOST_XINT_RAWINT tmin((numeric_limits<T>::min)());
     static const BOOST_XINT_RAWINT tmax((numeric_limits<T>::max)());
- if (n < tmin || n > tmax) throw exceptions::too_big("value out of range "
- "for requested conversion");
+ if (n < tmin || n > tmax) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::too_big("value out of range for requested conversion"));
 
     T rval = 0, shift = T(digit_overflowbit);
     for (std::size_t x = 0; x < n.length; ++x) {

Modified: sandbox/xint/boost/xint/detail/divide.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/divide.hpp (original)
+++ sandbox/xint/boost/xint/detail/divide.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -145,7 +145,8 @@
 {
     int sign1 = (d1.is_zero() ? 0 : d1.negative ? -1 : 1);
     int sign2 = (d2.is_zero() ? 0 : d2.negative ? -1 : 1);
- if (sign2 == 0) throw exceptions::divide_by_zero();
+ if (sign2 == 0) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::divide_by_zero());
 
     int comp = compare(d1, d2, true);
     if (comp < 0) {

Modified: sandbox/xint/boost/xint/detail/gcd.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/gcd.hpp (original)
+++ sandbox/xint/boost/xint/detail/gcd.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -109,7 +109,8 @@
 //! Defined as b, where n*b corresponds to 1 (mod m)
 BOOST_XINT_RAWINT_TPL
 BOOST_XINT_RAWINT invmod(const BOOST_XINT_RAWINT n, const BOOST_XINT_RAWINT m) {
- if (m.is_zero() || m.negative) throw exceptions::invalid_modulus();
+ if (m.is_zero() || m.negative) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_modulus());
 
     if (n.is_zero()) {
         return 0;

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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -23,6 +23,18 @@
 // Leave this commented out to use it as a header-only library.
 //#define BOOST_XINT_COMPILED_LIB
 
+#ifdef BOOST_XINT_NO_EXCEPTIONS
+ #define BOOST_XINT_TRY if (1)
+ #define BOOST_XINT_CATCH_BADALLOC else if (0)
+ #define BOOST_XINT_CATCH else
+ #define BOOST_XINT_CATCH_E else
+#else
+ #define BOOST_XINT_TRY try
+ #define BOOST_XINT_CATCH_BADALLOC catch (std::bad_alloc&)
+ #define BOOST_XINT_CATCH catch (std::exception&)
+ #define BOOST_XINT_CATCH_E catch (std::exception& e)
+#endif
+
 #include "../exceptions.hpp"
 #include "../random.hpp"
 

Modified: sandbox/xint/boost/xint/detail/modular.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/modular.hpp (original)
+++ sandbox/xint/boost/xint/detail/modular.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -43,7 +43,8 @@
 BOOST_XINT_RAWINT powmod(const BOOST_XINT_RAWINT n, const BOOST_XINT_RAWINT e,
     const BOOST_XINT_RAWINT m, bool no_montgomery = false)
 {
- if (m.is_zero() || m.negative) throw exceptions::invalid_modulus();
+ if (m.is_zero() || m.negative) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_modulus());
     if (e.is_zero()) return 1;
 
     bool neg = (n.negative && e.is_odd());

Modified: sandbox/xint/boost/xint/detail/monty.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/monty.hpp (original)
+++ sandbox/xint/boost/xint/detail/monty.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -191,8 +191,8 @@
     const TUTable<> &tuTable(TUTable<>::get());
 
     if (e.is_zero()) return 1;
- if (n.is_even()) throw exceptions::invalid_modulus("montgomeryPowerMod "
- "requires an odd modulus");
+ if (n.is_even()) exception_handler<>::call(__FILE__, __LINE__, exceptions::
+ invalid_modulus("montgomeryPowerMod requires an odd modulus"));
 
     // Precalculate some values
     const std::size_t k(mostEfficientK(e));

Modified: sandbox/xint/boost/xint/detail/options.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/options.hpp (original)
+++ sandbox/xint/boost/xint/detail/options.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -96,7 +96,7 @@
     boost::mpl::integral_c<bitsize_t, Bits> { };
 //!@}
 
-//! \name Miscellaneous Options
+//! \name Speed vs. Thread Safety
 //!@{
 /*! \brief Ensures that the integer_t objects can be safely used by multiple
            threads.
@@ -354,13 +354,13 @@
         if (Nothrow) {
             if (integer_t_data<BOOST_XINT_APARAMS>::data.is_nan())
                 return detail::get_nan<T>();
- try {
+ BOOST_XINT_TRY {
                 T r(~integer_t_data<BOOST_XINT_APARAMS>::data);
                 if (Threadsafe == true) r._make_unique();
                 if (!Signed) r.data.negative = false;
                 else r.data.negative = !r.data.negative;
                 return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 return detail::get_nan<T>();
             }
         } else {
@@ -428,7 +428,8 @@
         if (integer_t_data<BOOST_XINT_APARAMS>::NothrowType::value) {
             integer_t_data<BOOST_XINT_APARAMS>::_data().make_nan();
         } else {
- throw exceptions::cannot_represent("unsigned negative value");
+ exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::cannot_represent("unsigned negative value"));
         }
     }
 };

Modified: sandbox/xint/boost/xint/detail/policies.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/policies.hpp (original)
+++ sandbox/xint/boost/xint/detail/policies.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -102,19 +102,23 @@
     const std::size_t count = size - minimum_digits + magnitude_datasize;
 
     digit_t *storage = 0;
- try {
+ BOOST_XINT_TRY {
         storage = allocator.allocate(count);
         if (readonly) return new(storage) magnitude_t(size, readonly, 0);
         else return new(storage) magnitude_t(size, readonly);
- } catch (std::bad_alloc&) {
- throw exceptions::overflow_error("Out of memory allocating integer");
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH_BADALLOC {
+ exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::overflow_error("Out of memory allocating integer"));
+ } BOOST_XINT_CATCH_E {
         // To make it exception-safe, we've got to ensure that the allocated
         // data is properly disposed of if there's an exception, before passing
         // the exception on.
         if (storage) allocator.deallocate(storage, size);
- throw;
+ exception_handler<>::call(__FILE__, __LINE__, e);
     }
+
+ // It will never get here, but the compilers can't tell that.
+ return 0;
 }
 
 template <bitsize_t Bits, bool Secure, class Alloc>

Modified: sandbox/xint/boost/xint/detail/prime.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/prime.hpp (original)
+++ sandbox/xint/boost/xint/detail/prime.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -82,8 +82,9 @@
 BOOST_XINT_RAWINT_TPL
 int is_prime(const BOOST_XINT_RAWINT n, callback_t callback) {
     BOOST_XINT_RAWINT tmp(2);
- if (n < tmp) throw exceptions::invalid_argument("xint::is_prime cannot "
- "test numbers below 2");
+ if (n < tmp) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_argument("xint::is_prime cannot test numbers below "
+ "2"));
 
     // First we trial-divide it by the primes below 2000
     static const std::vector<int> low_primes(sieveOfEratosthenes(2000));
@@ -117,8 +118,9 @@
 BOOST_XINT_RAWINT BOOST_XINT_RAWINT::random_prime(GenType& gen, std::size_t
     size_in_bits, callback_t callback)
 {
- if (size_in_bits < 2) throw exceptions::invalid_argument("cannot create "
- "prime numbers smaller than two bits");
+ if (size_in_bits < 2) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::invalid_argument("cannot create prime numbers smaller than "
+ "two bits"));
 
     // Call the callback for the first time
     if (callback && !callback()) return 0;

Modified: sandbox/xint/boost/xint/detail/randomgen.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/randomgen.hpp (original)
+++ sandbox/xint/boost/xint/detail/randomgen.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -49,7 +49,8 @@
                 "SystemFunction036"));
             if (fn == 0) {
                 destroy();
- throw exceptions::no_strong_random();
+ exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::no_strong_random());
             }
         }
 
@@ -58,7 +59,8 @@
         result_type operator()() {
             result_type r=0;
             if (!fn(&r, sizeof(result_type)))
- throw exceptions::no_strong_random("RtlGenRandom failed");
+ exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::no_strong_random("RtlGenRandom failed"));
             return r;
         }
 
@@ -80,13 +82,14 @@
             // This should be supported under most non-Windows systems. Note
             // that we're using /dev/urandom, not /dev/random -- /dev/random is
             // more secure, but it can be VERY slow.
- if (!rng) throw exceptions::no_strong_random();
+ if (!rng) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::no_strong_random());
         }
 
         result_type operator()() {
             int r=rng.get();
- if (r==EOF) throw exceptions::no_strong_random("/dev/urandom "
- "returned EOF");
+ if (r==EOF) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::no_strong_random("/dev/urandom returned EOF"));
             return static_cast<result_type>(r);
         }
 

Modified: sandbox/xint/boost/xint/detail/roots.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/roots.hpp (original)
+++ sandbox/xint/boost/xint/detail/roots.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -29,8 +29,9 @@
 BOOST_XINT_RAWINT_TPL
 BOOST_XINT_RAWINT square_root(BOOST_XINT_RAWINT n) {
     if (n.is_zero()) return 0;
- if (n.negative) throw exceptions::cannot_represent("cannot represent "
- "imaginary values (tried to take square_root of negative number)");
+ if (n.negative) exception_handler<>::call(__FILE__, __LINE__,
+ exceptions::cannot_represent("cannot represent imaginary values (tried "
+ "to take square_root of negative number)"));
 
     // A naive implementation using pure integers can result in an endless loop,
     // cycling between two numbers that are approximately correct (try

Modified: sandbox/xint/boost/xint/detail/streams.hpp
==============================================================================
--- sandbox/xint/boost/xint/detail/streams.hpp (original)
+++ sandbox/xint/boost/xint/detail/streams.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -101,9 +101,9 @@
         } else break;
     }
 
- try {
+ BOOST_XINT_TRY {
         n.from_string(s, base);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
         // Catch invalid strings
         in.setstate(std::ios::failbit);
     }

Modified: sandbox/xint/boost/xint/exceptions.hpp
==============================================================================
--- sandbox/xint/boost/xint/exceptions.hpp (original)
+++ sandbox/xint/boost/xint/exceptions.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -12,17 +12,34 @@
 */
 
 /*! \file
- \brief The exception namespace.
+ \brief The exception namespace, and exception-related functions.
 */
 
 #ifndef BOOST_INCLUDED_XINT_EXCEPTIONS_HPP
 #define BOOST_INCLUDED_XINT_EXCEPTIONS_HPP
 
 #include <stdexcept>
+#include "detail/basic_types_and_includes.hpp"
 
 namespace boost {
 namespace xint {
 
+/*! \brief Sets or resets the global exception handler for the library.
+
+\param fn The function to set as the exception handler, of type \ref
+on_exception_t. If not specified, removes any previous exception handler.
+
+\note
+This function, and the underlying exception handler system, is \e not
+thread-safe. It is your responsibility to ensure that no other threads are using
+the library while calling this function.
+
+\see \ref exception_handler
+*/
+inline void on_exception(on_exception_t fn = on_exception_t()) {
+ detail::exception_handler<>::fn = fn;
+}
+
 //! \brief Every exception the library throws is from this namespace.
 namespace exceptions {
 
@@ -91,10 +108,6 @@
 
 /*!
     Derived from \c std::runtime_error.
-
- \remarks
- Most library functions will throw a not_a_number exception if you try to use
- a \ref nan "Not-a-Number value" in them.
 */
 class not_a_number: public std::runtime_error {
     public:

Modified: sandbox/xint/boost/xint/integer.hpp
==============================================================================
--- sandbox/xint/boost/xint/integer.hpp (original)
+++ sandbox/xint/boost/xint/integer.hpp 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -243,13 +243,13 @@
     bool force_thread_safety)
 {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             data = b.data;
             if (!data.is_nan()) {
                 if (force_thread_safety && Threadsafe == false)
                     data.make_unique();
             }
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             data.make_nan();
         }
     } else {
@@ -263,7 +263,7 @@
 template <typename charT>
 integer_t<BOOST_XINT_APARAMS>::integer_t(const charT *str, std::size_t base) {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             const std::basic_string<charT>& tnan = detail::nan_text<charT>();
             if (str[0] == tnan[0] && std::basic_string<charT>(str) == tnan) {
                 data.make_nan();
@@ -271,7 +271,7 @@
                 data.from_string(str, base);
                 if (!Signed && data.negative) _fix_negative_unsigned();
             }
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             data.make_nan();
         }
     } else {
@@ -314,7 +314,7 @@
     std::size_t base)
 {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             const std::basic_string<charT>& tnan = detail::nan_text<charT>();
             if (str[0] == tnan[0]) {
                 std::basic_string<charT> s(str);
@@ -326,7 +326,7 @@
             }
             data.from_string(str, endptr, base);
             if (!Signed && data.negative) _fix_negative_unsigned();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             data.make_nan();
         }
     } else {
@@ -365,13 +365,13 @@
     allocT>& str, std::size_t base)
 {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             if (str == detail::nan_text<charT>()) data.make_nan();
             else {
                 data.from_string(str, base);
                 if (!Signed && data.negative) _fix_negative_unsigned();
             }
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             data.make_nan();
         }
     } else {
@@ -405,9 +405,9 @@
 integer_t<BOOST_XINT_APARAMS>::integer_t(const xint::binary_t b, bitsize_t bits)
 {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             data.from_binary(b, bits);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             data.make_nan();
         }
     } else {
@@ -433,7 +433,7 @@
     bool force_thread_safety)
 {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             if (b.is_nan()) {
                 data.make_nan();
             } else {
@@ -444,11 +444,12 @@
                     if (!Signed && data.negative) _fix_negative_unsigned();
                 }
             }
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             data.make_nan();
         }
     } else {
- if (b._data().is_nan()) throw exceptions::not_a_number();
+ if (b._data().is_nan()) detail::exception_handler<>::call(__FILE__,
+ __LINE__, exceptions::not_a_number());
         data = b._data();
         if (force_thread_safety && Threadsafe == false) data.make_unique();
         if (!Signed && data.negative) _fix_negative_unsigned();
@@ -472,12 +473,12 @@
     typename boost::enable_if<boost::is_integral<Type> >::type*)
 {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             if (std::numeric_limits<Type>::is_signed) {
                 data.set_signed(n);
                 if (!Signed && data.negative) _fix_negative_unsigned();
             } else data.set_unsigned(n);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             data.make_nan();
         }
     } else {
@@ -495,10 +496,10 @@
     if (Nothrow) {
         if (c._data().is_nan()) data.make_nan();
         else {
- try {
+ BOOST_XINT_TRY {
                 data = c.data;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -523,8 +524,8 @@
 Also note that, although this changes the bit-pattern the same way as with the
 built-in types, the \e value will not be the same for signed numbers, because
 this library does not store negative numbers in twos complement format. In
-other words, if \c n is a built-in signed type and \c m is a signed integer_t,
-then <code>~n != ~m</code>.
+other words, if \c n is a built-in signed type and \c m is a signed integer_t
+with the same value, then <code>~n != ~m</code>.
 */
 template<BOOST_XINT_CLASS_APARAMS>
 integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::operator~() const;
@@ -540,13 +541,13 @@
 integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::operator-() const {
     if (Nothrow) {
         if (is_nan()) return *this;
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(*this);
             if (Threadsafe == true) r._make_unique();
             r.data = -r.data;
             if (!Signed && r.data.negative) r._fix_negative_unsigned();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -566,10 +567,10 @@
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data += b.data;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -588,11 +589,11 @@
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data -= b.data;
                 if (Threadsafe == true) data.make_unique();
                 if (!Signed && data.negative) _fix_negative_unsigned();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -612,10 +613,10 @@
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data *= b.data;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -634,10 +635,10 @@
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data /= b.data;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -656,10 +657,10 @@
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data %= b.data;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -678,10 +679,10 @@
 integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator++() {
     if (Nothrow) {
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 ++data;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -700,11 +701,11 @@
 integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator--() {
     if (Nothrow) {
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 --data;
                 if (Threadsafe == true) data.make_unique();
                 if (!Signed && data.negative) _fix_negative_unsigned();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -727,11 +728,11 @@
 integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::operator++(int) {
     if (Nothrow) {
         if (is_nan()) return *this;
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(data++);
             if (Threadsafe == true) { r._make_unique(); data.make_unique(); }
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             data.make_nan();
         }
     } else {
@@ -752,12 +753,12 @@
 integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::operator--(int) {
     if (Nothrow) {
         if (is_nan()) return *this;
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(data--);
             if (Threadsafe == true) { r._make_unique(); data.make_unique(); }
             if (!Signed && data.negative) _fix_negative_unsigned();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             data.make_nan();
         }
     } else {
@@ -776,10 +777,10 @@
     if (Nothrow) {
         if (n.is_nan()) data.make_nan();
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data &= n.data;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -798,10 +799,10 @@
     if (Nothrow) {
         if (n.is_nan()) data.make_nan();
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data |= n.data;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -820,10 +821,10 @@
     if (Nothrow) {
         if (n.is_nan()) data.make_nan();
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data ^= n.data;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -847,11 +848,11 @@
 integer_t<BOOST_XINT_APARAMS>::operator<<(bitsize_t shift) const {
     if (Nothrow) {
         if (is_nan()) return *this;
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(data << shift);
             if (Threadsafe == true) r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -874,11 +875,11 @@
 integer_t<BOOST_XINT_APARAMS>::operator>>(bitsize_t shift) const {
     if (Nothrow) {
         if (is_nan()) return *this;
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(data >> shift);
             if (Threadsafe == true) r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -894,10 +895,10 @@
 integer_t<BOOST_XINT_APARAMS>::operator<<=(bitsize_t shift) {
     if (Nothrow) {
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data <<= shift;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -914,10 +915,10 @@
 integer_t<BOOST_XINT_APARAMS>::operator>>=(bitsize_t shift) {
     if (Nothrow) {
         if (!is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 data >>= shift;
                 if (Threadsafe == true) data.make_unique();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 data.make_nan();
             }
         }
@@ -993,9 +994,9 @@
 int integer_t<BOOST_XINT_APARAMS>::sign(bool signed_zero) const {
     if (Nothrow) {
         if (is_nan()) return 0;
- try {
+ BOOST_XINT_TRY {
             return data.sign(signed_zero);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return 0;
         }
     } else {
@@ -1014,9 +1015,9 @@
 size_t integer_t<BOOST_XINT_APARAMS>::hex_digits() const {
     if (Nothrow) {
         if (is_nan()) return 0;
- try {
+ BOOST_XINT_TRY {
             return data.hex_digits();
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return 0;
         }
     } else {
@@ -1042,12 +1043,12 @@
     exponent)
 {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r;
             detail::pow2(r.data, exponent);
             if (Threadsafe == true) r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1075,12 +1076,12 @@
 integer_t<BOOST_XINT_APARAMS>
 integer_t<BOOST_XINT_APARAMS>::factorial(std::size_t n) {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r;
             detail::factorial(r.data, n);
             if (Threadsafe == true) r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1140,10 +1141,10 @@
 {
     if (!Signed) can_be_negative = false;
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             return integer_t<BOOST_XINT_APARAMS>(datatype::random_by_size(gen,
                 size_in_bits, high_bit_on, low_bit_on, can_be_negative));
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1185,10 +1186,10 @@
     gen, bitsize_t size_in_bits, callback_t callback)
 {
     if (Nothrow) {
- try {
+ BOOST_XINT_TRY {
             return integer_t<BOOST_XINT_APARAMS>(datatype::random_prime(gen,
                 size_in_bits, callback));
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1219,12 +1220,12 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan())
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(n._data().abs());
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1262,14 +1263,14 @@
             integer_t<BOOST_XINT_APARAMS>::divide_t(detail::get_nan<
                 integer_t<BOOST_XINT_APARAMS> >(), detail::get_nan<
                 integer_t<BOOST_XINT_APARAMS> >());
- try {
+ BOOST_XINT_TRY {
             typename integer_t<BOOST_XINT_APARAMS>::datatype::divide_t rr =
                 detail::divide(dividend._data(), divisor._data());
             typename integer_t<BOOST_XINT_APARAMS>::divide_t
                 r(integer_t<BOOST_XINT_APARAMS>(rr.quotient),
                 integer_t<BOOST_XINT_APARAMS>(rr.remainder));
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return typename integer_t<BOOST_XINT_APARAMS>::divide_t(
                 detail::get_nan<integer_t<BOOST_XINT_APARAMS> >(),
                 detail::get_nan<integer_t<BOOST_XINT_APARAMS> >());
@@ -1329,12 +1330,12 @@
 integer_t<BOOST_XINT_APARAMS> square(const integer_t<BOOST_XINT_APARAMS> n) {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return n;
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(detail::square(n._data()));
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1359,13 +1360,13 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan() || e.is_nan())
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r;
             pow(r._data(), n._data(), e._data());
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1393,12 +1394,12 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return n;
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(square_root(n._data()));
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1432,9 +1433,9 @@
 T to(const integer_t<BOOST_XINT_APARAMS> n) {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return T(0);
- try {
+ BOOST_XINT_TRY {
             return to<T>(n._data());
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return T(0);
         }
     } else {
@@ -1470,9 +1471,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return detail::nan_text<charT>();
- try {
+ BOOST_XINT_TRY {
             return detail::to_string<charT>(n._data(), base, uppercase);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return std::basic_string<charT>();
         }
     } else {
@@ -1533,9 +1534,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return xint::binary_t();
- try {
+ BOOST_XINT_TRY {
             return to_binary(n._data(), bits);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return xint::binary_t();
         }
     } else {
@@ -1561,9 +1562,9 @@
 bool getbit(const integer_t<BOOST_XINT_APARAMS> n, bitsize_t bit) {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return false;
- try {
+ BOOST_XINT_TRY {
             return getbit(n._data(), bit);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return false;
         }
     } else {
@@ -1584,9 +1585,9 @@
 void setbit(integer_t<BOOST_XINT_APARAMS>& n, bitsize_t bit) {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (!n.is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 setbit(n._data(), bit);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 // Do nothing.
             }
         }
@@ -1608,9 +1609,9 @@
 void clearbit(integer_t<BOOST_XINT_APARAMS>& n, bitsize_t bit) {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (!n.is_nan()) {
- try {
+ BOOST_XINT_TRY {
                 clearbit(n._data(), bit);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
                 // Do nothing.
             }
         }
@@ -1638,9 +1639,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return return_if_zero;
- try {
+ BOOST_XINT_TRY {
             return lowestbit(n._data(), return_if_zero);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return return_if_zero;
         }
     } else {
@@ -1667,9 +1668,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return return_if_zero;
- try {
+ BOOST_XINT_TRY {
             return highestbit(n._data(), return_if_zero);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return return_if_zero;
         }
     } else {
@@ -1710,13 +1711,13 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan() || by.is_nan() || modulus.is_nan()) return
             detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(mulmod(n._data(), by._data(),
                 modulus._data()));
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1747,13 +1748,13 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return n;
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r = sqrmod(n._data(),
                 modulus._data());
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1794,13 +1795,13 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan() || exponent.is_nan() || modulus.is_nan()) return
             detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(powmod(n._data(), exponent._data(),
                 modulus._data(), no_monty));
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1830,12 +1831,12 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan() || modulus.is_nan()) return
             detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(invmod(n._data(), modulus._data()));
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -1883,9 +1884,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return -2;
- try {
+ BOOST_XINT_TRY {
             return is_prime(n._data(), callback);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return -2;
         }
     } else {
@@ -1906,9 +1907,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
- try {
+ BOOST_XINT_TRY {
             return operator<(n1._data(), n2._data());
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return false;
         }
     } else {
@@ -1921,9 +1922,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
- try {
+ BOOST_XINT_TRY {
             return operator>(n1._data(), n2._data());
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return false;
         }
     } else {
@@ -1936,9 +1937,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
- try {
+ BOOST_XINT_TRY {
             return operator<=(n1._data(), n2._data());
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return false;
         }
     } else {
@@ -1951,9 +1952,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
- try {
+ BOOST_XINT_TRY {
             return operator>=(n1._data(), n2._data());
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return false;
         }
     } else {
@@ -1966,9 +1967,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
- try {
+ BOOST_XINT_TRY {
             return operator==(n1._data(), n2._data());
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return false;
         }
     } else {
@@ -1981,9 +1982,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
- try {
+ BOOST_XINT_TRY {
             return operator!=(n1._data(), n2._data());
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return false;
         }
     } else {
@@ -2013,10 +2014,10 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan())
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(n1._data() + n2._data());
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2040,12 +2041,12 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan())
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(n1._data() - n2._data());
             if (!integer_t<BOOST_XINT_APARAMS>::Signed && r._data().negative)
                 r._fix_negative_unsigned();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2075,10 +2076,10 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan())
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(n1._data() * n2._data());
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2104,10 +2105,10 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (dividend.is_nan() || divisor.is_nan()) return
             detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(dividend._data() / divisor._data());
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2132,10 +2133,10 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan())
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(n1._data() % n2._data());
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2160,10 +2161,10 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan())
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(n1._data() & n2._data());
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2188,10 +2189,10 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan())
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(n1._data() | n2._data());
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2216,10 +2217,10 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan())
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r(n1._data() ^ n2._data());
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2248,13 +2249,13 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (num1.is_nan() || num2.is_nan()) return
             detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r;
             gcd(r._data(), num1._data(), num2._data());
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2282,13 +2283,13 @@
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (num1.is_nan() || num2.is_nan()) return
             detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
- try {
+ BOOST_XINT_TRY {
             integer_t<BOOST_XINT_APARAMS> r;
             lcm(r._data(), num1._data(), num2._data());
             if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
                 r._make_unique();
             return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
@@ -2317,9 +2318,9 @@
 {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return 2;
- try {
+ BOOST_XINT_TRY {
             return compare(n1._data(), n2._data(), ignoresign);
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return 2;
         }
     } else {
@@ -2347,9 +2348,9 @@
 size_t log2(const integer_t<BOOST_XINT_APARAMS> n) {
     if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return 0;
- try {
+ BOOST_XINT_TRY {
             return log2(n._data());
- } catch (std::exception&) {
+ } BOOST_XINT_CATCH {
             return 0;
         }
     } else {
@@ -2363,9 +2364,9 @@
     template <BOOST_XINT_CLASS_APARAMS, typename N> \
     rtype op(const integer_t<BOOST_XINT_APARAMS> n1, const N n2) { \
         if (integer_t<BOOST_XINT_APARAMS>::Nothrow) { \
- try { \
+ BOOST_XINT_TRY { \
                 return op(n1, integer_t<BOOST_XINT_APARAMS>(n2)); \
- } catch (std::exception&) { \
+ } BOOST_XINT_CATCH { \
                 return rtype(0); \
             } \
         } else { \
@@ -2376,9 +2377,9 @@
     template <typename N, BOOST_XINT_CLASS_APARAMS> \
     rtype op(const N n1, const integer_t<BOOST_XINT_APARAMS> n2) { \
         if (integer_t<BOOST_XINT_APARAMS>::Nothrow) { \
- try { \
+ BOOST_XINT_TRY { \
                 return op(integer_t<BOOST_XINT_APARAMS>(n1), n2); \
- } catch (std::exception&) { \
+ } BOOST_XINT_CATCH { \
                 return rtype(0); \
             } \
         } else { \
@@ -2401,7 +2402,7 @@
         const N n2) \
     { \
         if (integer_t<BOOST_XINT_APARAMS>::Nothrow) { \
- try { \
+ BOOST_XINT_TRY { \
                 integer_t<BOOST_XINT_APARAMS> r(op(n1, \
                     integer_t<BOOST_XINT_APARAMS>(n2))); \
                 if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) \
@@ -2409,7 +2410,7 @@
                 if (!integer_t<BOOST_XINT_APARAMS>::Signed && \
                     r._data().negative) r._fix_negative_unsigned(); \
                 return BOOST_XINT_MOVE(r); \
- } catch (std::exception&) { \
+ } BOOST_XINT_CATCH { \
                 return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >(); \
             } \
         } else { \
@@ -2428,7 +2429,7 @@
         integer_t<BOOST_XINT_APARAMS> n2) \
     { \
         if (integer_t<BOOST_XINT_APARAMS>::Nothrow) { \
- try { \
+ BOOST_XINT_TRY { \
                 integer_t<BOOST_XINT_APARAMS> \
                     r(op(integer_t<BOOST_XINT_APARAMS>(n1), n2)); \
                 if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) \
@@ -2436,7 +2437,7 @@
                 if (!integer_t<BOOST_XINT_APARAMS>::Signed && \
                     r._data().negative) r._fix_negative_unsigned(); \
                 return BOOST_XINT_MOVE(r); \
- } catch (std::exception&) { \
+ } BOOST_XINT_CATCH { \
                 return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >(); \
             } \
         } else { \

Modified: sandbox/xint/dev/Docs.project
==============================================================================
--- sandbox/xint/dev/Docs.project (original)
+++ sandbox/xint/dev/Docs.project 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -38,6 +38,7 @@
     <File Name="../libs/xint/doc/dox/threadsafe.dox"/>
     <File Name="../libs/xint/doc/dox/fixedlength.dox"/>
     <File Name="../../../../xint/libs/xint/doc/dox/r_whynotx.dox"/>
+ <File Name="../libs/xint/doc/dox/no_exceptions.dox"/>
   </VirtualDirectory>
   <VirtualDirectory Name="Project">
     <File Name="../libs/xint/doc/dox/Doxyfile"/>
@@ -85,4 +86,5 @@
       <ResourceCompiler Options=""/>
     </GlobalSettings>
   </Settings>
+ <Dependencies Name="All"/>
 </CodeLite_Project>

Modified: sandbox/xint/dev/Example-Exceptions.project
==============================================================================
--- sandbox/xint/dev/Example-Exceptions.project (original)
+++ sandbox/xint/dev/Example-Exceptions.project 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -73,4 +73,6 @@
   <VirtualDirectory Name="src">
     <File Name="../libs/xint/example/exceptions.cpp"/>
   </VirtualDirectory>
+ <Dependencies Name="Debug"/>
+ <Dependencies Name="Release"/>
 </CodeLite_Project>

Modified: sandbox/xint/dev/Example-Fibonacci.project
==============================================================================
--- sandbox/xint/dev/Example-Fibonacci.project (original)
+++ sandbox/xint/dev/Example-Fibonacci.project 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -73,4 +73,6 @@
   <VirtualDirectory Name="src">
     <File Name="../libs/xint/example/fibonacci.cpp"/>
   </VirtualDirectory>
+ <Dependencies Name="Debug"/>
+ <Dependencies Name="Release"/>
 </CodeLite_Project>

Modified: sandbox/xint/dev/Example-GenPrime.project
==============================================================================
--- sandbox/xint/dev/Example-GenPrime.project (original)
+++ sandbox/xint/dev/Example-GenPrime.project 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -73,4 +73,6 @@
   <VirtualDirectory Name="src">
     <File Name="../libs/xint/example/genprime.cpp"/>
   </VirtualDirectory>
+ <Dependencies Name="Debug"/>
+ <Dependencies Name="Release"/>
 </CodeLite_Project>

Modified: sandbox/xint/dev/XInt.project
==============================================================================
--- sandbox/xint/dev/XInt.project (original)
+++ sandbox/xint/dev/XInt.project 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -7,67 +7,47 @@
   </Plugins>
   <Description/>
   <Dependencies/>
- <Dependencies Name="Debug"/>
- <Dependencies Name="Debug, Header Only"/>
- <Dependencies Name="Release"/>
- <Dependencies Name="Release, Header Only"/>
   <VirtualDirectory Name="other">
     <File Name="../.gitignore"/>
     <File Name="../README.TXT"/>
     <File Name="../libs/xint/test/Jamfile"/>
   </VirtualDirectory>
   <VirtualDirectory Name="include">
+ <File Name="../boost/xint/exceptions.hpp"/>
+ <File Name="../boost/xint/integer.hpp"/>
+ <File Name="../boost/xint/random.hpp"/>
+ <File Name="../boost/xint/xint.hpp"/>
     <VirtualDirectory Name="detail">
+ <File Name="../boost/xint/detail/addsubtract.hpp"/>
+ <File Name="../boost/xint/detail/andorxor.hpp"/>
       <File Name="../boost/xint/detail/basic_types_and_includes.hpp"/>
+ <File Name="../boost/xint/detail/bitfunctions.hpp"/>
+ <File Name="../boost/xint/detail/bitqueue.hpp"/>
+ <File Name="../boost/xint/detail/compare.hpp"/>
+ <File Name="../boost/xint/detail/convert.hpp"/>
+ <File Name="../boost/xint/detail/divide.hpp"/>
+ <File Name="../boost/xint/detail/gcd.hpp"/>
       <File Name="../boost/xint/detail/internals.hpp"/>
+ <File Name="../boost/xint/detail/log2.hpp"/>
       <File Name="../boost/xint/detail/magnitude_manager.hpp"/>
+ <File Name="../boost/xint/detail/modular.hpp"/>
+ <File Name="../boost/xint/detail/monty.hpp"/>
+ <File Name="../boost/xint/detail/multiply.hpp"/>
+ <File Name="../boost/xint/detail/options.hpp"/>
       <File Name="../boost/xint/detail/policies.hpp"/>
- <File Name="../boost/xint/detail/addsubtract.hpp"/>
- <File Name="../boost/xint/detail/compare.hpp"/>
- <File Name="../boost/xint/detail/raw_integer.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/bitqueue.hpp"/>
+ <File Name="../boost/xint/detail/powers.hpp"/>
+ <File Name="../boost/xint/detail/prime.hpp"/>
       <File Name="../boost/xint/detail/random_by_size.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/bitfunctions.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/multiply.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/divide.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/convert.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/shift.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/prime.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/powers.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/andorxor.hpp"/>
- <File Name="../boost/xint/detail/log2.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/gcd.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/modular.hpp"/>
- <File Name="../../../../xint/boost/xint/detail/roots.hpp"/>
- <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/randomgen.hpp"/>
+ <File Name="../boost/xint/detail/raw_integer.hpp"/>
+ <File Name="../boost/xint/detail/roots.hpp"/>
+ <File Name="../boost/xint/detail/shift.hpp"/>
       <File Name="../boost/xint/detail/streams.hpp"/>
     </VirtualDirectory>
- <File Name="../../../../xint/boost/xint/random.hpp"/>
- <File Name="../../../../xint/boost/xint/exceptions.hpp"/>
- <File Name="../../../../xint/boost/xint/integer.hpp"/>
- <File Name="../../../../xint/boost/xint/xint.hpp"/>
- </VirtualDirectory>
- <VirtualDirectory Name="test">
- <File Name="../libs/xint/test/test_main.cpp"/>
- <File Name="../libs/xint/test/test_add.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_multiply.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_convert.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_bit_manipulations.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_compare.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_divide.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_fixed.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_streams.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_misc.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_modular.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_powers.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_monty.cpp"/>
- <File Name="../../../../xint/libs/xint/test/test_nothrow.cpp"/>
   </VirtualDirectory>
   <Settings Type="Executable">
     <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
- <Compiler Options="-g;-Wall" Required="yes" PreCompiledHeader="/home/chad/Private/projects/xint/boost/xint/integer.hpp">
+ <Compiler Options="-g;-Wall" Required="yes" PreCompiledHeader="/home/chad/projects/xint/boost/xint/integer.hpp">
         <IncludePath Value="."/>
         <Preprocessor Value="BOOST_XINT_SINGLE_TEST_PROGRAM"/>
         <Preprocessor Value="BOOST_TEST_DYN_LINK"/>
@@ -98,7 +78,7 @@
       </AdditionalRules>
     </Configuration>
     <Configuration Name="Debug, Header Only" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
- <Compiler Options="-g;-Wall" Required="yes" PreCompiledHeader="/home/chad/Private/projects/xint/boost/xint/integer.hpp">
+ <Compiler Options="-g;-Wall" Required="yes" PreCompiledHeader="/home/chad/projects/xint/boost/xint/integer.hpp">
         <IncludePath Value="."/>
         <Preprocessor Value="BOOST_XINT_SINGLE_TEST_PROGRAM"/>
         <Preprocessor Value="BOOST_TEST_DYN_LINK"/>
@@ -128,7 +108,7 @@
       </AdditionalRules>
     </Configuration>
     <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
- <Compiler Options="-O2;-Wall" Required="yes" PreCompiledHeader="/home/chad/Private/projects/xint/boost/xint/integer.hpp">
+ <Compiler Options="-O2;-Wall" Required="yes" PreCompiledHeader="/home/chad/projects/xint/boost/xint/integer.hpp">
         <IncludePath Value="."/>
         <Preprocessor Value="BOOST_XINT_SINGLE_TEST_PROGRAM"/>
         <Preprocessor Value="BOOST_TEST_DYN_LINK"/>
@@ -159,7 +139,7 @@
       </AdditionalRules>
     </Configuration>
     <Configuration Name="Release, Header Only" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
- <Compiler Options="-O2;-Wall" Required="yes" PreCompiledHeader="/home/chad/Private/projects/xint/boost/xint/integer.hpp">
+ <Compiler Options="-O2;-Wall" Required="yes" PreCompiledHeader="/home/chad/projects/xint/boost/xint/integer.hpp">
         <IncludePath Value="."/>
         <Preprocessor Value="BOOST_XINT_SINGLE_TEST_PROGRAM"/>
         <Preprocessor Value="BOOST_TEST_DYN_LINK"/>
@@ -200,4 +180,24 @@
       <ResourceCompiler Options=""/>
     </GlobalSettings>
   </Settings>
+ <VirtualDirectory Name="test">
+ <File Name="../libs/xint/test/test_add.cpp"/>
+ <File Name="../libs/xint/test/test_bit_manipulations.cpp"/>
+ <File Name="../libs/xint/test/test_compare.cpp"/>
+ <File Name="../libs/xint/test/test_convert.cpp"/>
+ <File Name="../libs/xint/test/test_divide.cpp"/>
+ <File Name="../libs/xint/test/test_fixed.cpp"/>
+ <File Name="../libs/xint/test/test_main.cpp"/>
+ <File Name="../libs/xint/test/test_misc.cpp"/>
+ <File Name="../libs/xint/test/test_modular.cpp"/>
+ <File Name="../libs/xint/test/test_monty.cpp"/>
+ <File Name="../libs/xint/test/test_multiply.cpp"/>
+ <File Name="../libs/xint/test/test_nothrow.cpp"/>
+ <File Name="../libs/xint/test/test_powers.cpp"/>
+ <File Name="../libs/xint/test/test_streams.cpp"/>
+ </VirtualDirectory>
+ <Dependencies Name="Debug"/>
+ <Dependencies Name="Debug, Header Only"/>
+ <Dependencies Name="Release"/>
+ <Dependencies Name="Release, Header Only"/>
 </CodeLite_Project>

Modified: sandbox/xint/dev/XInt.workspace
==============================================================================
--- sandbox/xint/dev/XInt.workspace (original)
+++ sandbox/xint/dev/XInt.workspace 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -19,7 +19,7 @@
       <Project Name="Example-Fibonacci" ConfigName="Debug"/>
       <Project Name="Example-GenPrime" ConfigName="Debug"/>
     </WorkspaceConfiguration>
- <WorkspaceConfiguration Name="Release" Selected="no">
+ <WorkspaceConfiguration Name="Release" Selected="yes">
       <Project Name="XInt" ConfigName="Release"/>
       <Project Name="Docs" ConfigName="All"/>
       <Project Name="XInt" ConfigName="Release"/>

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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -71,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -53,7 +53,7 @@
   <tr><td class="indexkey"><a class="el" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref&lt; T &gt;</a></td><td class="indexvalue"></td></tr>
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -61,6 +61,10 @@
 <tr><td class="mdescLeft">&nbsp;</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&lt; bool()&gt;&nbsp;</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">&nbsp;</td><td class="mdescRight">A callback function takes no parameters and returns a bool. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::function&lt; void(const <br class="typebreak"/>
+char *file, std::size_t line, <br class="typebreak"/>
+const std::exception &amp;e)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c">boost::xint::on_exception_t</a> )</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The function type for <a class="el" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">on_exception</a>. <br/></td></tr>
 <tr><td colspan="2"><h2>Variables</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">const std::size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6e2c55f95b91dfcb7586599faca34cb2">boost::xint::autobase</a> = (std::numeric_limits&lt;size_t&gt;::max)()</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A value that can be used for the 'base' parameter of the string-to-integer constructor functions. <br/></td></tr>
@@ -179,7 +183,7 @@
 </div>
 </div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -91,88 +91,108 @@
 <a name="l00072"></a><a class="code" href="namespaceboost.html">00072</a> <span class="keyword">namespace </span>boost {
 <a name="l00073"></a><a class="code" href="namespaceboost_1_1xint.html">00073</a> <span class="keyword">namespace </span>xint {
 <a name="l00074"></a>00074
-<a name="l00076"></a><a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">00076</a> <span class="keyword">typedef</span> boost::function&lt;bool ()&gt; <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a>;
-<a name="l00077"></a>00077
-<a name="l00079"></a><a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">00079</a> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> <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="l00080"></a>00080
-<a name="l00082"></a><a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">00082</a> <span class="keyword">typedef</span> std::vector&lt;unsigned char&gt; <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">binary_t</a>;
-<a name="l00083"></a>00083
-<a name="l00086"></a><a class="code" href="namespaceboost_1_1xint.html#a6e2c55f95b91dfcb7586599faca34cb2">00086</a> <span class="keyword">const</span> std::size_t <a class="code" href="namespaceboost_1_1xint.html#a6e2c55f95b91dfcb7586599faca34cb2" title="A value that can be used for the &amp;#39;base&amp;#39; parameter of the string-to-integer...">autobase</a> = (std::numeric_limits&lt;size_t&gt;::max)();
-<a name="l00087"></a>00087
-<a name="l00089"></a><a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">00089</a> <span class="keyword">typedef</span> std::size_t <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a>;
+<a name="l00088"></a>00088 <span class="keyword">typedef</span> boost::function&lt;void (<span class="keyword">const</span> <span class="keywordtype">char</span> *file, std::size_t line, <span class="keyword">const</span>
+<a name="l00089"></a><a class="code" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c">00089</a> std::exception&amp; e)&gt; <a class="code" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c" title="The function type for on_exception.">on_exception_t</a>;
 <a name="l00090"></a>00090
-<a name="l00092"></a>00092 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;
-<a name="l00093"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html">00093</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="l00094"></a>00094 <span class="keyword">public</span>:
-<a name="l00095"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">00095</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>() { }
-<a name="l00096"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">00096</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">base_divide_t</a>(<span class="keyword">const</span> T&amp; q, <span class="keyword">const</span> T&amp; 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="l00097"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa9f43e464f328b0cc618f67e6e4d1d6f">00097</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&lt;T&gt;</a>&amp; 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>) { }
-<a name="l00099"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">00099</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="l00100"></a>00100 <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="l00101"></a>00101
-<a name="l00102"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">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>&amp; <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="l00103"></a>00103 { <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="l00104"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">00104</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>&amp; <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="l00105"></a>00105 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">std::swap</a>;
-<a name="l00106"></a>00106 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">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="l00107"></a>00107 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">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="l00108"></a>00108 <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00109"></a>00109
-<a name="l00110"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">00110</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="l00111"></a>00111
-<a name="l00112"></a>00112 <span class="keyword">private</span>:
-<a name="l00113"></a>00113 <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="l00114"></a>00114 };
-<a name="l00115"></a>00115
-<a name="l00116"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html">00116</a> <span class="keyword">namespace </span>detail {
-<a name="l00118"></a>00118
-<a name="l00124"></a>00124 <span class="keyword">typedef</span> boost::uintmax_t doubledigit_t;
+<a name="l00092"></a><a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">00092</a> <span class="keyword">typedef</span> boost::function&lt;bool ()&gt; <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a>;
+<a name="l00093"></a>00093
+<a name="l00095"></a><a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">00095</a> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> <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="l00096"></a>00096
+<a name="l00098"></a><a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">00098</a> <span class="keyword">typedef</span> std::vector&lt;unsigned char&gt; <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">binary_t</a>;
+<a name="l00099"></a>00099
+<a name="l00102"></a><a class="code" href="namespaceboost_1_1xint.html#a6e2c55f95b91dfcb7586599faca34cb2">00102</a> <span class="keyword">const</span> std::size_t <a class="code" href="namespaceboost_1_1xint.html#a6e2c55f95b91dfcb7586599faca34cb2" title="A value that can be used for the &amp;#39;base&amp;#39; parameter of the string-to-integer...">autobase</a> = (std::numeric_limits&lt;size_t&gt;::max)();
+<a name="l00103"></a>00103
+<a name="l00105"></a><a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">00105</a> <span class="keyword">typedef</span> std::size_t <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a>;
+<a name="l00106"></a>00106
+<a name="l00108"></a>00108 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;
+<a name="l00109"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html">00109</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="l00110"></a>00110 <span class="keyword">public</span>:
+<a name="l00111"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">00111</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>() { }
+<a name="l00112"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">00112</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">base_divide_t</a>(<span class="keyword">const</span> T&amp; q, <span class="keyword">const</span> T&amp; 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="l00113"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa9f43e464f328b0cc618f67e6e4d1d6f">00113</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&lt;T&gt;</a>&amp; copy):
+<a name="l00114"></a>00114 <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="l00115"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">00115</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="l00116"></a>00116 <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="l00117"></a>00117
+<a name="l00118"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">00118</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>&amp; <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="l00119"></a>00119 { <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="l00120"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">00120</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>&amp; <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="l00121"></a>00121 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">std::swap</a>;
+<a name="l00122"></a>00122 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">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="l00123"></a>00123 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">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="l00124"></a>00124 <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
 <a name="l00125"></a>00125
-<a name="l00131"></a>00131 <span class="keyword">typedef</span> boost::uint_t&lt;std::numeric_limits&lt;doubledigit_t&gt;::digits / 2&gt;::fast
-<a name="l00132"></a>00132 digit_t;
-<a name="l00133"></a>00133
-<a name="l00136"></a>00136 <span class="keyword">const</span> std::size_t minimum_digits = 1;
-<a name="l00137"></a>00137 <span class="keyword">const</span> std::size_t bits_per_digit =
-<a name="l00138"></a>00138 std::numeric_limits&lt;digit_t&gt;::digits;
-<a name="l00139"></a>00139 <span class="keyword">const</span> std::size_t digits_in_uintmax =
-<a name="l00140"></a>00140 (std::numeric_limits&lt;boost::uintmax_t&gt;::digits + bits_per_digit - 1) /
-<a name="l00141"></a>00141 bits_per_digit;
-<a name="l00142"></a>00142 <span class="keyword">const</span> digit_t digit_hibit = (digit_t(1) &lt;&lt; (bits_per_digit-1));
-<a name="l00143"></a>00143 <span class="keyword">const</span> doubledigit_t doubledigit_hibit = (doubledigit_t(1) &lt;&lt; (bits_per_digit*2-1));
-<a name="l00144"></a>00144 <span class="keyword">const</span> doubledigit_t digit_overflowbit = (doubledigit_t(1) &lt;&lt; bits_per_digit);
-<a name="l00145"></a>00145 <span class="keyword">const</span> digit_t digit_mask = digit_t(digit_overflowbit-1);
-<a name="l00147"></a>00147
+<a name="l00126"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">00126</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="l00127"></a>00127
+<a name="l00128"></a>00128 <span class="keyword">private</span>:
+<a name="l00129"></a>00129 <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="l00130"></a>00130 };
+<a name="l00131"></a>00131
+<a name="l00132"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html">00132</a> <span class="keyword">namespace </span>detail {
+<a name="l00134"></a>00134
+<a name="l00140"></a>00140 <span class="keyword">typedef</span> boost::uintmax_t doubledigit_t;
+<a name="l00141"></a>00141
+<a name="l00147"></a>00147 <span class="keyword">typedef</span> boost::uint_t&lt;std::numeric_limits&lt;doubledigit_t&gt;::digits / 2&gt;::fast
+<a name="l00148"></a>00148 digit_t;
 <a name="l00149"></a>00149
-<a name="l00152"></a>00152 <span class="keyword">struct </span>magnitude_t {
-<a name="l00153"></a>00153 <span class="keyword">private</span>:
-<a name="l00154"></a>00154 std::size_t copy_count;
-<a name="l00155"></a>00155
-<a name="l00156"></a>00156 <span class="keyword">public</span>:
-<a name="l00157"></a>00157 <span class="keyword">const</span> <span class="keywordtype">bool</span> readonly;
-<a name="l00158"></a>00158 <span class="keyword">const</span> std::size_t max_length;
-<a name="l00159"></a>00159 digit_t digits[minimum_digits]; <span class="comment">// Must be last data item, see &quot;struct hack&quot;</span>
-<a name="l00160"></a>00160
-<a name="l00161"></a>00161 magnitude_t(std::size_t max_len = minimum_digits, <span class="keywordtype">bool</span> ro = <span class="keyword">false</span>):
-<a name="l00162"></a>00162 copy_count(0), readonly(ro), max_length(max_len) { }
-<a name="l00163"></a>00163 magnitude_t(std::size_t max_len, <span class="keywordtype">bool</span> ro, digit_t init): copy_count(0),
-<a name="l00164"></a>00164 readonly(ro), max_length(max_len) { digits[0] = init; }
-<a name="l00165"></a>00165 std::size_t copies()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> copy_count; }
-<a name="l00166"></a>00166
-<a name="l00167"></a>00167 <span class="keywordtype">void</span> inc() { ++copy_count; }
-<a name="l00168"></a>00168 <span class="keywordtype">bool</span> dec() { <span class="keywordflow">return</span> (--copy_count == 0); }
-<a name="l00169"></a>00169 };
-<a name="l00170"></a>00170
-<a name="l00171"></a>00171 <span class="keyword">inline</span> std::size_t bits_to_digits(std::size_t bits) { <span class="keywordflow">return</span> (bits +
-<a name="l00172"></a>00172 bits_per_digit - 1) / bits_per_digit; }
-<a name="l00173"></a>00173
-<a name="l00175"></a>00175 } <span class="comment">// namespace detail</span>
-<a name="l00176"></a>00176 } <span class="comment">// namespace xint</span>
-<a name="l00177"></a>00177 } <span class="comment">// namespace boost</span>
-<a name="l00178"></a>00178
-<a name="l00179"></a>00179 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BASIC_TYPES_HPP</span>
+<a name="l00151"></a>00151 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T = <span class="keywordtype">void</span>&gt;
+<a name="l00152"></a>00152 <span class="keyword">struct </span>exception_handler {
+<a name="l00153"></a>00153 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> E&gt;
+<a name="l00154"></a>00154 <span class="keyword">static</span> <span class="keywordtype">void</span> call(<span class="keyword">const</span> <span class="keywordtype">char</span> *file, std::size_t line, <span class="keyword">const</span> E&amp; e) {
+<a name="l00155"></a>00155 <span class="preprocessor"> #ifdef BOOST_XINT_NO_EXCEPTIONS</span>
+<a name="l00156"></a>00156 <span class="preprocessor"></span> <span class="keywordflow">if</span> (fn) fn(file, line, e);
+<a name="l00157"></a>00157 abort();
+<a name="l00158"></a>00158 <span class="preprocessor"> #else</span>
+<a name="l00159"></a>00159 <span class="preprocessor"></span> <span class="keywordflow">if</span> (fn) fn(file, line, e);
+<a name="l00160"></a>00160 <span class="keywordflow">throw</span> e;
+<a name="l00161"></a>00161 <span class="preprocessor"> #endif</span>
+<a name="l00162"></a>00162 <span class="preprocessor"></span> }
+<a name="l00163"></a>00163
+<a name="l00164"></a>00164 <span class="keyword">static</span> <a class="code" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c" title="The function type for on_exception.">on_exception_t</a> fn;
+<a name="l00165"></a>00165 };
+<a name="l00166"></a>00166 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <a class="code" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c" title="The function type for on_exception.">on_exception_t</a> exception_handler&lt;T&gt;::fn;
+<a name="l00167"></a>00167
+<a name="l00170"></a>00170 <span class="keyword">const</span> std::size_t minimum_digits = 1;
+<a name="l00171"></a>00171 <span class="keyword">const</span> std::size_t bits_per_digit =
+<a name="l00172"></a>00172 std::numeric_limits&lt;digit_t&gt;::digits;
+<a name="l00173"></a>00173 <span class="keyword">const</span> std::size_t digits_in_uintmax =
+<a name="l00174"></a>00174 (std::numeric_limits&lt;boost::uintmax_t&gt;::digits + bits_per_digit - 1) /
+<a name="l00175"></a>00175 bits_per_digit;
+<a name="l00176"></a>00176 <span class="keyword">const</span> digit_t digit_hibit = (digit_t(1) &lt;&lt; (bits_per_digit-1));
+<a name="l00177"></a>00177 <span class="keyword">const</span> doubledigit_t doubledigit_hibit = (doubledigit_t(1) &lt;&lt; (bits_per_digit*2-1));
+<a name="l00178"></a>00178 <span class="keyword">const</span> doubledigit_t digit_overflowbit = (doubledigit_t(1) &lt;&lt; bits_per_digit);
+<a name="l00179"></a>00179 <span class="keyword">const</span> digit_t digit_mask = digit_t(digit_overflowbit-1);
+<a name="l00181"></a>00181
+<a name="l00183"></a>00183
+<a name="l00186"></a>00186 <span class="keyword">struct </span>magnitude_t {
+<a name="l00187"></a>00187 <span class="keyword">private</span>:
+<a name="l00188"></a>00188 std::size_t copy_count;
+<a name="l00189"></a>00189
+<a name="l00190"></a>00190 <span class="keyword">public</span>:
+<a name="l00191"></a>00191 <span class="keyword">const</span> <span class="keywordtype">bool</span> readonly;
+<a name="l00192"></a>00192 <span class="keyword">const</span> std::size_t max_length;
+<a name="l00193"></a>00193 digit_t digits[minimum_digits]; <span class="comment">// Must be last data item, see &quot;struct hack&quot;</span>
+<a name="l00194"></a>00194
+<a name="l00195"></a>00195 magnitude_t(std::size_t max_len = minimum_digits, <span class="keywordtype">bool</span> ro = <span class="keyword">false</span>):
+<a name="l00196"></a>00196 copy_count(0), readonly(ro), max_length(max_len) { }
+<a name="l00197"></a>00197 magnitude_t(std::size_t max_len, <span class="keywordtype">bool</span> ro, digit_t init): copy_count(0),
+<a name="l00198"></a>00198 readonly(ro), max_length(max_len) { digits[0] = init; }
+<a name="l00199"></a>00199 std::size_t copies()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> copy_count; }
+<a name="l00200"></a>00200
+<a name="l00201"></a>00201 <span class="keywordtype">void</span> inc() { ++copy_count; }
+<a name="l00202"></a>00202 <span class="keywordtype">bool</span> dec() { <span class="keywordflow">return</span> (--copy_count == 0); }
+<a name="l00203"></a>00203 };
+<a name="l00204"></a>00204
+<a name="l00205"></a>00205 <span class="keyword">inline</span> std::size_t bits_to_digits(std::size_t bits) { <span class="keywordflow">return</span> (bits +
+<a name="l00206"></a>00206 bits_per_digit - 1) / bits_per_digit; }
+<a name="l00207"></a>00207
+<a name="l00209"></a>00209 } <span class="comment">// namespace detail</span>
+<a name="l00210"></a>00210 } <span class="comment">// namespace xint</span>
+<a name="l00211"></a>00211 } <span class="comment">// namespace boost</span>
+<a name="l00212"></a>00212
+<a name="l00213"></a>00213 <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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -94,27 +94,28 @@
 <a name="l00076"></a>00076 BOOST_XINT_RAWINT_TPL
 <a name="l00077"></a>00077 BOOST_XINT_RAWINT BOOST_XINT_RAWINT::operator~()<span class="keyword"> const </span>{
 <a name="l00078"></a>00078 <span class="keywordflow">if</span> (Bits == 0) {
-<a name="l00079"></a>00079 <span class="keywordflow">throw</span> exceptions::too_big(<span class="stringliteral">&quot;operator~ on unlimited integers results in &quot;</span>
-<a name="l00080"></a>00080 <span class="stringliteral">&quot;an infinitely long number.&quot;</span>);
-<a name="l00081"></a>00081 } <span class="keywordflow">else</span> {
-<a name="l00082"></a>00082 BOOST_XINT_RAWINT r;
-<a name="l00083"></a>00083 <span class="keyword">const</span> digit_t *s = digits(), *se = s + length;
-<a name="l00084"></a>00084 digit_t *t = r.digits(r.max_length(), realloc::extend), *te = t +
-<a name="l00085"></a>00085 r.max_length();
-<a name="l00086"></a>00086 <span class="keywordflow">while</span> (s != se) *t++ = ~(*s++);
-<a name="l00087"></a>00087 <span class="keywordflow">while</span> (t != te) *t++ = ~0;
-<a name="l00088"></a>00088 r.trim();
-<a name="l00089"></a>00089 <span class="keywordflow">return</span> r;
-<a name="l00090"></a>00090 }
-<a name="l00091"></a>00091 }
-<a name="l00092"></a>00092
-<a name="l00093"></a>00093 } <span class="comment">// namespace detail</span>
-<a name="l00094"></a>00094 } <span class="comment">// namespace xint</span>
-<a name="l00095"></a>00095 } <span class="comment">// namespace boost</span>
-<a name="l00097"></a>00097 <span class="comment"></span>
-<a name="l00098"></a>00098 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BITFUNCTIONS_HPP</span>
+<a name="l00079"></a>00079 exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00080"></a>00080 exceptions::too_big(<span class="stringliteral">&quot;operator~ on unlimited integers results in &quot;</span>
+<a name="l00081"></a>00081 <span class="stringliteral">&quot;an infinitely long number.&quot;</span>));
+<a name="l00082"></a>00082 } <span class="keywordflow">else</span> {
+<a name="l00083"></a>00083 BOOST_XINT_RAWINT r;
+<a name="l00084"></a>00084 <span class="keyword">const</span> digit_t *s = digits(), *se = s + length;
+<a name="l00085"></a>00085 digit_t *t = r.digits(r.max_length(), realloc::extend), *te = t +
+<a name="l00086"></a>00086 r.max_length();
+<a name="l00087"></a>00087 <span class="keywordflow">while</span> (s != se) *t++ = ~(*s++);
+<a name="l00088"></a>00088 <span class="keywordflow">while</span> (t != te) *t++ = ~0;
+<a name="l00089"></a>00089 r.trim();
+<a name="l00090"></a>00090 <span class="keywordflow">return</span> r;
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092 }
+<a name="l00093"></a>00093
+<a name="l00094"></a>00094 } <span class="comment">// namespace detail</span>
+<a name="l00095"></a>00095 } <span class="comment">// namespace xint</span>
+<a name="l00096"></a>00096 } <span class="comment">// namespace boost</span>
+<a name="l00098"></a>00098 <span class="comment"></span>
+<a name="l00099"></a>00099 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BITFUNCTIONS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -106,7 +106,7 @@
 <a name="l00090"></a>00090 <span class="comment"></span>
 <a name="l00091"></a>00091 <span class="preprocessor">#endif // BOOST_XINT_INCLUDED_BITQUEUET_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -35,7 +35,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&lt; T &gt;</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&lt; T &gt;</a></td><td></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -50,7 +50,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#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#l00109">109</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 <hr/><h2>Constructor &amp; 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">
@@ -69,7 +69,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#l00111">111</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -100,7 +100,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00096">96</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#l00112">112</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -122,7 +122,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#l00113">113</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -144,7 +144,7 @@
 </div>
 <div class="memdoc">
 
-<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>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00115">115</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -167,7 +167,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00104">104</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#l00120">120</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -189,7 +189,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#l00118">118</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -207,7 +207,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00110">110</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#l00126">126</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -224,7 +224,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00110">110</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#l00126">126</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -232,7 +232,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -70,7 +70,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;cannot represent the requested value&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -38,7 +38,7 @@
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Derived from <code>std::invalid_argument</code>. </p>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00077">77</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00094">94</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="a0968d8ac61c24529816bcaf69d155b75"></a><!-- doxytag: member="boost::xint::exceptions::cannot_represent::cannot_represent" ref="a0968d8ac61c24529816bcaf69d155b75" args="(const std::string &amp;what=&quot;cannot represent the requested value&quot;)" -->
 <div class="memitem">
@@ -56,7 +56,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00079">79</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00096">96</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -64,7 +64,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;divide by zero error&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -38,7 +38,7 @@
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Derived from <code>std::invalid_argument</code>. </p>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00068">68</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00085">85</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="aaff4d720e4a134315acde919ff06e640"></a><!-- doxytag: member="boost::xint::exceptions::divide_by_zero::divide_by_zero" ref="aaff4d720e4a134315acde919ff06e640" args="(const std::string &amp;what=&quot;divide by zero error&quot;)" -->
 <div class="memitem">
@@ -56,7 +56,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00070">70</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00087">87</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -64,7 +64,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;invalid argument&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -38,7 +38,7 @@
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Derived from <code>std::invalid_argument</code>. </p>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00032">32</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00049">49</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="a8ba3e56172de34c772b287ce8e325f32"></a><!-- doxytag: member="boost::xint::exceptions::invalid_argument::invalid_argument" ref="a8ba3e56172de34c772b287ce8e325f32" args="(const std::string &amp;what=&quot;invalid argument&quot;)" -->
 <div class="memitem">
@@ -56,7 +56,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00034">34</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00051">51</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -64,7 +64,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;invalid base&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -38,7 +38,7 @@
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Derived from <code>std::invalid_argument</code>. </p>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00041">41</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00058">58</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="a4647071020547bd103ee885bec7edffa"></a><!-- doxytag: member="boost::xint::exceptions::invalid_base::invalid_base" ref="a4647071020547bd103ee885bec7edffa" args="(const std::string &amp;what=&quot;invalid base&quot;)" -->
 <div class="memitem">
@@ -56,7 +56,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00043">43</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00060">60</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -64,7 +64,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;invalid digit&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -38,7 +38,7 @@
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Derived from <code>std::range_error</code>. </p>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00050">50</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00067">67</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="abcdf43b30c3910dde89e406ca802eacc"></a><!-- doxytag: member="boost::xint::exceptions::invalid_digit::invalid_digit" ref="abcdf43b30c3910dde89e406ca802eacc" args="(const std::string &amp;what=&quot;invalid digit&quot;)" -->
 <div class="memitem">
@@ -56,7 +56,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00052">52</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00069">69</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -64,7 +64,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;invalid modulus&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -38,7 +38,7 @@
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Derived from <code>std::invalid_argument</code>. </p>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00059">59</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00076">76</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="a16c06e28a7f483b0ca2fb5906d53278d"></a><!-- doxytag: member="boost::xint::exceptions::invalid_modulus::invalid_modulus" ref="a16c06e28a7f483b0ca2fb5906d53278d" args="(const std::string &amp;what=&quot;invalid modulus&quot;)" -->
 <div class="memitem">
@@ -56,7 +56,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00061">61</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00078">78</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -64,7 +64,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;system does not have a strong random generator&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -39,7 +39,7 @@
 <p>Derived from <code>std::runtime_error</code>.</p>
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>Thrown by the <a class="el" href="namespaceboost_1_1xint.html#ac38b0aafb375c80ff42b5488a52d9e8f" title="A convenience class for cryptographically-secure random numbers.">xint::strong_random_generator</a> class's constructor, if the system does not provide a cryptographically-secure random generator. Also thrown if the generator fails when asked to provide a random value, though this should be vanishingly rare. </dd></dl>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00114">114</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00127">127</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="ab225c7d5d10a03eac6d5e9c784135675"></a><!-- doxytag: member="boost::xint::exceptions::no_strong_random::no_strong_random" ref="ab225c7d5d10a03eac6d5e9c784135675" args="(const std::string &amp;what=&quot;system does not have a strong random generator&quot;)" -->
 <div class="memitem">
@@ -57,7 +57,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00116">116</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00129">129</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;attempted to use a Not-a-Number&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -36,10 +36,9 @@
 <tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html#aa47b024550fd673bd497e0875443c67f">not_a_number</a> (const std::string &amp;what=&quot;attempted to use a Not-a-Number&quot;)</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Derived from <code>std::runtime_error</code>.</p>
-<dl class="remark"><dt><b>Remarks:</b></dt><dd>Most library functions will throw a <a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">not_a_number</a> exception if you try to use a <a class="el" href="nan.html">Not-a-Number value</a> in them. </dd></dl>
+<p>Derived from <code>std::runtime_error</code>. </p>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00099">99</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00112">112</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="aa47b024550fd673bd497e0875443c67f"></a><!-- doxytag: member="boost::xint::exceptions::not_a_number::not_a_number" ref="aa47b024550fd673bd497e0875443c67f" args="(const std::string &amp;what=&quot;attempted to use a Not&#45;a&#45;Number&quot;)" -->
 <div class="memitem">
@@ -57,7 +56,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00101">101</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00114">114</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -65,7 +64,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;overflow error: can't obtain enough memory to represent the requested number&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -39,7 +39,7 @@
 <p>Derived from <code>std::overflow_error</code>.</p>
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>Thrown when the library can't get enough memory to represent a number. </dd></dl>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00127">127</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00140">140</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="a767d8fbe5816d77fa0aadf9481d0bd5a"></a><!-- doxytag: member="boost::xint::exceptions::overflow_error::overflow_error" ref="a767d8fbe5816d77fa0aadf9481d0bd5a" args="(const std::string &amp;what=&quot;overflow error: can't obtain enough memory to represent the requested number&quot;)" -->
 <div class="memitem">
@@ -57,7 +57,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00129">129</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00142">142</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,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 &amp;what=&quot;value out of range for requested conversion&quot;)</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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -38,7 +38,7 @@
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Derived from <code>std::range_error</code>. </p>
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00086">86</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00103">103</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
 <a class="anchor" id="a111e2c1a759054d80afcd5fa4af2995c"></a><!-- doxytag: member="boost::xint::exceptions::too_big::too_big" ref="a111e2c1a759054d80afcd5fa4af2995c" args="(const std::string &amp;what=&quot;value out of range for requested conversion&quot;)" -->
 <div class="memitem">
@@ -56,7 +56,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00088">88</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00105">105</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -64,7 +64,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -72,7 +72,7 @@
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947">random_prime</a>(Type &amp;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&lt;&gt;</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&lt;&gt;</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -553,7 +553,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#l00468">468</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#l00469">469</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -589,7 +589,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#l01073">1073</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#l01074">1074</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -616,7 +616,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 version returns zero instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01011">1011</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#l01012">1012</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -643,7 +643,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 version returns false instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00953">953</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#l00954">954</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -697,7 +697,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 version returns false instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00936">936</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#l00937">937</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -789,7 +789,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#l00650">650</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#l00651">651</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -812,7 +812,7 @@
 <div class="memdoc">
 <dl class="see"><dt><b>See also:</b></dt><dd>operator&amp;(integer_t, integer_t) </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00770">770</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#l00771">771</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -835,7 +835,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#l00606">606</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#l00607">607</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -904,7 +904,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#l00724">724</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#l00725">725</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -929,7 +929,7 @@
 <li>Complexity: amortized O(1) </li>
 </ul>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00675">675</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#l00676">676</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -952,7 +952,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#l00560">560</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#l00561">561</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -979,7 +979,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#l00537">537</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#l00538">538</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1006,7 +1006,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#l00749">749</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#l00750">750</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1031,7 +1031,7 @@
 <li>Complexity: amortized O(1) </li>
 </ul>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00697">697</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#l00698">698</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1054,7 +1054,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#l00582">582</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#l00583">583</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1077,7 +1077,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#l00628">628</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#l00629">629</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1111,7 +1111,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#l00844">844</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#l00845">845</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1134,7 +1134,7 @@
 <div class="memdoc">
 <dl class="see"><dt><b>See also:</b></dt><dd>operator&lt;&lt;(integer_t, integer_t) </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00891">891</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#l00892">892</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1202,7 +1202,7 @@
 </div>
 <div class="memdoc">
 
-<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>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00491">491</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1236,7 +1236,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#l00871">871</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#l00872">872</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1259,7 +1259,7 @@
 <div class="memdoc">
 <dl class="see"><dt><b>See also:</b></dt><dd>operator&gt;&gt;(integer_t, integer_t) </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00911">911</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#l00912">912</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1282,7 +1282,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#l00814">814</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#l00815">815</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1305,7 +1305,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#l00792">792</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#l00793">793</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1331,7 +1331,7 @@
 <li>Complexity: O(n)</li>
 </ul>
 <dl class="note"><dt><b>Note:</b></dt><dd>This operator is only available with fixed-size integers. The result from a proper implementation for variable-sized integers would be an infinitely long number.</dd></dl>
-<dl class="user"><dt><b></b></dt><dd>Also note that, although this changes the bit-pattern the same way as with the built-in types, the <em>value</em> will not be the same for signed numbers, because this library does not store negative numbers in twos complement format. In other words, if <code>n</code> is a built-in signed type and <code>m</code> is a signed <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a>, then <code>~n != ~m</code>. </dd></dl>
+<dl class="user"><dt><b></b></dt><dd>Also note that, although this changes the bit-pattern the same way as with the built-in types, the <em>value</em> will not be the same for signed numbers, because this library does not store negative numbers in twos complement format. In other words, if <code>n</code> is a built-in signed type and <code>m</code> is a signed <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> with the same value, then <code>~n != ~m</code>. </dd></dl>
 
 </div>
 </div>
@@ -1366,7 +1366,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#l01038">1038</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#l01039">1039</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1434,7 +1434,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#l01134">1134</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#l01135">1135</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1496,7 +1496,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#l01181">1181</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#l01182">1182</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1530,7 +1530,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 version returns zero instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00990">990</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#l00991">991</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1538,7 +1538,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -37,7 +37,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -38,7 +38,7 @@
 </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>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1xint_1_1options_1_1negative__allowed.html">negative_allowed</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">nothrow</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</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>)&nbsp;&nbsp;&nbsp;</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>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1
xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1xint_1_1options_1_1negative__exception.html">negative_exception</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;O&nbsp;&nbsp;</div></td></tr></table>
 </td></tr></table><div class="qindex"><a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_C">C</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_D">D</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_F">F</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_I">I</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_N">N</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_O">O</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_S">S</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -53,235 +53,243 @@
 <a name="l00035"></a>00035 std::basic_string&lt;charT&gt; <a class="code" href="namespaceboost_1_1xint.html#a2fb5a8cfac3e97a1641d424aac04a71f" title="A shorthand function that calls to_stringtype&amp;lt;char&amp;gt;.">to_string</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, std::size_t base =
 <a name="l00036"></a>00036 10, <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 &lt; 2 || base &gt; 36) <span class="keywordflow">throw</span> exceptions::invalid_base();
-<a name="l00039"></a>00039
-<a name="l00040"></a>00040 std::basic_ostringstream&lt;charT&gt; out;
-<a name="l00041"></a>00041 <span class="keywordflow">if</span> (n.is_zero()) {
-<a name="l00042"></a>00042 out &lt;&lt; <span class="stringliteral">&quot;0&quot;</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 &lt;&lt; <span class="charliteral">&#39;-&#39;</span>;
-<a name="l00053"></a>00053
-<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 &gt; 1) { base = base &gt;&gt; 1; ++bits_per_base_b_digit; }
-<a name="l00056"></a>00056 <span class="keyword">const</span> digit_t mask = (doubledigit_t(1) &lt;&lt; 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 &gt;= 0 &amp;&amp; ((*d &gt;&gt; digitShift) &amp; 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 &gt;= 0) {
-<a name="l00066"></a>00066 out &lt;&lt; nToChar((*d &gt;&gt; digitShift) &amp; 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&#39;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&#39;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&#39;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#a9696321a0a8ddea617223472a62f2452" 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 &lt;&lt; nToChar(a.remainder[0], uppercase);
-<a name="l00089"></a>00089 a = <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" 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 &lt;&lt; nToChar(a.remainder[0], uppercase);
-<a name="l00092"></a>00092
-<a name="l00093"></a>00093 <span class="keywordflow">if</span> (n.negative) out &lt;&lt; <span class="charliteral">&#39;-&#39;</span>;
-<a name="l00094"></a>00094
-<a name="l00095"></a>00095 std::basic_string&lt;charT&gt; 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> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00103"></a>00103 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> charT *str, <span class="keyword">const</span> charT*&amp; endptr,
-<a name="l00104"></a>00104 std::size_t 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">&#39;+&#39;</span>) ++c;
-<a name="l00111"></a>00111 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;-&#39;</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#a6e2c55f95b91dfcb7586599faca34cb2" title="A value that can be used for the &amp;#39;base&amp;#39; parameter of the string-to-integer...">autobase</a>) {
-<a name="l00114"></a>00114 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;0&#39;</span>) {
-<a name="l00115"></a>00115 ++c;
-<a name="l00116"></a>00116 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;x&#39;</span> || *c == <span class="charliteral">&#39;X&#39;</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 &lt; 2 || base &gt; 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">&quot;No valid digits&quot;</span>);
-<a name="l00125"></a>00125
-<a name="l00126"></a>00126 std::basic_string&lt;charT&gt; tstr;
-<a name="l00127"></a>00127 <span class="keywordflow">if</span> (negate) tstr.push_back(<span class="charliteral">&#39;-&#39;</span>);
-<a name="l00128"></a>00128 <span class="keywordflow">if</span> (base &lt;= 10) {
-<a name="l00129"></a>00129 <span class="keyword">const</span> charT p = charT(<span class="charliteral">&#39;0&#39;</span> + base);
-<a name="l00130"></a>00130 <span class="keywordflow">while</span> (*c &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; *c &lt; 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">&#39;a&#39;</span> + base - 10), upper = charT(<span class="charliteral">&#39;A&#39;</span> + base -
-<a name="l00134"></a>00134 10);
-<a name="l00135"></a>00135 <span class="keywordflow">while</span> ((*c &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; *c &lt;= <span class="charliteral">&#39;9&#39;</span>)
-<a name="l00136"></a>00136 || (*c &gt;= <span class="charliteral">&#39;a&#39;</span> &amp;&amp; *c &lt; lower)
-<a name="l00137"></a>00137 || (*c &gt;= <span class="charliteral">&#39;A&#39;</span> &amp;&amp; *c &lt; upper))
-<a name="l00138"></a>00138 tstr.push_back(*c++);
-<a name="l00139"></a>00139 }
-<a name="l00140"></a>00140 endptr = c;
-<a name="l00141"></a>00141
-<a name="l00142"></a>00142 from_string(tstr, base);
-<a name="l00143"></a>00143 }
+<a name="l00038"></a>00038 <span class="keywordflow">if</span> (base &lt; 2 || base &gt; 36) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00039"></a>00039 exceptions::invalid_base());
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 std::basic_ostringstream&lt;charT&gt; out;
+<a name="l00042"></a>00042 <span class="keywordflow">if</span> (n.is_zero()) {
+<a name="l00043"></a>00043 out &lt;&lt; <span class="stringliteral">&quot;0&quot;</span>;
+<a name="l00044"></a>00044 <span class="keywordflow">return</span> out.str();
+<a name="l00045"></a>00045 }
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="keywordflow">if</span> (base == 2 || base == 4 || base == 16) {
+<a name="l00048"></a>00048 <span class="comment">// Fast no-division version, useful for debugging division and for cases</span>
+<a name="l00049"></a>00049 <span class="comment">// where maximum speed is necessary.</span>
+<a name="l00050"></a>00050 <span class="keyword">const</span> digit_t *firstDigit = n.digits(), *lastDigit = firstDigit +
+<a name="l00051"></a>00051 n.length - 1;
+<a name="l00052"></a>00052
+<a name="l00053"></a>00053 <span class="keywordflow">if</span> (n.negative) out &lt;&lt; <span class="charliteral">&#39;-&#39;</span>;
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="keywordtype">int</span> bits_per_base_b_digit = 0;
+<a name="l00056"></a>00056 <span class="keywordflow">while</span> (base &gt; 1) { base = base &gt;&gt; 1; ++bits_per_base_b_digit; }
+<a name="l00057"></a>00057 <span class="keyword">const</span> digit_t mask = (doubledigit_t(1) &lt;&lt; bits_per_base_b_digit) - 1;
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 <span class="comment">// Skip any leading zeros</span>
+<a name="l00060"></a>00060 <span class="keyword">const</span> digit_t *d = lastDigit;
+<a name="l00061"></a>00061 <span class="keywordtype">int</span> digitShift = (bits_per_digit - bits_per_base_b_digit);
+<a name="l00062"></a>00062 <span class="keywordflow">while</span> (digitShift &gt;= 0 &amp;&amp; ((*d &gt;&gt; digitShift) &amp; mask) == 0)
+<a name="l00063"></a>00063 digitShift -= bits_per_base_b_digit;
+<a name="l00064"></a>00064
+<a name="l00065"></a>00065 <span class="keywordflow">do</span> {
+<a name="l00066"></a>00066 <span class="keywordflow">while</span> (digitShift &gt;= 0) {
+<a name="l00067"></a>00067 out &lt;&lt; nToChar((*d &gt;&gt; digitShift) &amp; mask, uppercase);
+<a name="l00068"></a>00068 digitShift -= bits_per_base_b_digit;
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070
+<a name="l00071"></a>00071 digitShift = (bits_per_digit - bits_per_base_b_digit);
+<a name="l00072"></a>00072 } <span class="keywordflow">while</span> (d-- != firstDigit);
+<a name="l00073"></a>00073
+<a name="l00074"></a>00074 <span class="keywordflow">return</span> out.str();
+<a name="l00075"></a>00075 } <span class="keywordflow">else</span> {
+<a name="l00076"></a>00076 <span class="comment">// ATTN: for when there&#39;s nothing more pressing to do</span>
+<a name="l00077"></a>00077 <span class="comment">// This could be made a lot more efficient for very large numbers, by</span>
+<a name="l00078"></a>00078 <span class="comment">// dividing n by base raised to whatever number of digits will fit into</span>
+<a name="l00079"></a>00079 <span class="comment">// a doubledigit_t, then just doing single-digit divides for that many</span>
+<a name="l00080"></a>00080 <span class="comment">// digits before going back to n for another chunk. That would be</span>
+<a name="l00081"></a>00081 <span class="comment">// premature optimization though, so I&#39;m just making this note instead.</span>
+<a name="l00082"></a>00082 <span class="comment">// If someone can show me a use-case where more efficiency is needed in</span>
+<a name="l00083"></a>00083 <span class="comment">// this function, I&#39;ll add it later.</span>
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 BOOST_XINT_RAWINT shift;
+<a name="l00086"></a>00086 shift.set_unsigned(base);
+<a name="l00087"></a>00087 <span class="keyword">typename</span> BOOST_XINT_RAWINT::divide_t a(<a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(n.abs(), shift));
+<a name="l00088"></a>00088 <span class="keywordflow">do</span> {
+<a name="l00089"></a>00089 out &lt;&lt; nToChar(a.remainder[0], uppercase);
+<a name="l00090"></a>00090 a = <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(a.quotient, shift);
+<a name="l00091"></a>00091 } <span class="keywordflow">while</span> (!a.quotient.is_zero());
+<a name="l00092"></a>00092 <span class="keywordflow">if</span> (!a.remainder.is_zero()) out &lt;&lt; nToChar(a.remainder[0], uppercase);
+<a name="l00093"></a>00093
+<a name="l00094"></a>00094 <span class="keywordflow">if</span> (n.negative) out &lt;&lt; <span class="charliteral">&#39;-&#39;</span>;
+<a name="l00095"></a>00095
+<a name="l00096"></a>00096 std::basic_string&lt;charT&gt; rval = out.str();
+<a name="l00097"></a>00097 std::reverse(rval.begin(), rval.end());
+<a name="l00098"></a>00098 <span class="keywordflow">return</span> rval;
+<a name="l00099"></a>00099 }
+<a name="l00100"></a>00100 }
+<a name="l00101"></a>00101
+<a name="l00102"></a>00102 BOOST_XINT_RAWINT_TPL
+<a name="l00103"></a>00103 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
+<a name="l00104"></a>00104 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> charT *str, <span class="keyword">const</span> charT*&amp; endptr,
+<a name="l00105"></a>00105 std::size_t base)
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107 <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;
+<a name="l00108"></a>00108 <span class="keyword">const</span> charT *c = str;
+<a name="l00109"></a>00109 <span class="keywordflow">while</span> (isspace(*c)) ++c;
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;+&#39;</span>) ++c;
+<a name="l00112"></a>00112 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;-&#39;</span>) { negate = <span class="keyword">true</span>; ++c; }
+<a name="l00113"></a>00113
+<a name="l00114"></a>00114 <span class="keywordflow">if</span> (base == <a class="code" href="namespaceboost_1_1xint.html#a6e2c55f95b91dfcb7586599faca34cb2" title="A value that can be used for the &amp;#39;base&amp;#39; parameter of the string-to-integer...">autobase</a>) {
+<a name="l00115"></a>00115 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;0&#39;</span>) {
+<a name="l00116"></a>00116 ++c;
+<a name="l00117"></a>00117 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;x&#39;</span> || *c == <span class="charliteral">&#39;X&#39;</span>) {
+<a name="l00118"></a>00118 ++c;
+<a name="l00119"></a>00119 base = 16;
+<a name="l00120"></a>00120 } <span class="keywordflow">else</span> base = 8;
+<a name="l00121"></a>00121 } <span class="keywordflow">else</span> base = 10;
+<a name="l00122"></a>00122 }
+<a name="l00123"></a>00123
+<a name="l00124"></a>00124 <span class="keywordflow">if</span> (base &lt; 2 || base &gt; 36) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00125"></a>00125 exceptions::invalid_base());
+<a name="l00126"></a>00126 <span class="keywordflow">if</span> (*c == 0) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00127"></a>00127 exceptions::invalid_digit(<span class="stringliteral">&quot;No valid digits&quot;</span>));
+<a name="l00128"></a>00128
+<a name="l00129"></a>00129 std::basic_string&lt;charT&gt; tstr;
+<a name="l00130"></a>00130 <span class="keywordflow">if</span> (negate) tstr.push_back(<span class="charliteral">&#39;-&#39;</span>);
+<a name="l00131"></a>00131 <span class="keywordflow">if</span> (base &lt;= 10) {
+<a name="l00132"></a>00132 <span class="keyword">const</span> charT p = charT(<span class="charliteral">&#39;0&#39;</span> + base);
+<a name="l00133"></a>00133 <span class="keywordflow">while</span> (*c &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; *c &lt; p)
+<a name="l00134"></a>00134 tstr.push_back(*c++);
+<a name="l00135"></a>00135 } <span class="keywordflow">else</span> {
+<a name="l00136"></a>00136 <span class="keyword">const</span> charT lower = charT(<span class="charliteral">&#39;a&#39;</span> + base - 10), upper = charT(<span class="charliteral">&#39;A&#39;</span> + base -
+<a name="l00137"></a>00137 10);
+<a name="l00138"></a>00138 <span class="keywordflow">while</span> ((*c &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; *c &lt;= <span class="charliteral">&#39;9&#39;</span>)
+<a name="l00139"></a>00139 || (*c &gt;= <span class="charliteral">&#39;a&#39;</span> &amp;&amp; *c &lt; lower)
+<a name="l00140"></a>00140 || (*c &gt;= <span class="charliteral">&#39;A&#39;</span> &amp;&amp; *c &lt; upper))
+<a name="l00141"></a>00141 tstr.push_back(*c++);
+<a name="l00142"></a>00142 }
+<a name="l00143"></a>00143 endptr = c;
 <a name="l00144"></a>00144
-<a name="l00145"></a>00145 BOOST_XINT_RAWINT_TPL
-<a name="l00146"></a>00146 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00147"></a>00147 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> charT *str, std::size_t 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">&#39;+&#39;</span>) ++c;
-<a name="l00151"></a>00151 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;-&#39;</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#a6e2c55f95b91dfcb7586599faca34cb2" title="A value that can be used for the &amp;#39;base&amp;#39; parameter of the string-to-integer...">autobase</a>) {
-<a name="l00154"></a>00154 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;0&#39;</span>) {
-<a name="l00155"></a>00155 ++c;
-<a name="l00156"></a>00156 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;x&#39;</span> || *c == <span class="charliteral">&#39;X&#39;</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 <span class="keywordflow">if</span> (base &lt; 2 || base &gt; 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">&quot;No valid digits&quot;</span>);
+<a name="l00145"></a>00145 from_string(tstr, base);
+<a name="l00146"></a>00146 }
+<a name="l00147"></a>00147
+<a name="l00148"></a>00148 BOOST_XINT_RAWINT_TPL
+<a name="l00149"></a>00149 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
+<a name="l00150"></a>00150 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> charT *str, std::size_t base) {
+<a name="l00151"></a>00151 <span class="keywordtype">bool</span> negate = <span class="keyword">false</span>;
+<a name="l00152"></a>00152 <span class="keyword">const</span> charT *c = str;
+<a name="l00153"></a>00153 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;+&#39;</span>) ++c;
+<a name="l00154"></a>00154 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;-&#39;</span>) { negate = <span class="keyword">true</span>; ++c; }
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 <span class="keywordflow">if</span> (base == <a class="code" href="namespaceboost_1_1xint.html#a6e2c55f95b91dfcb7586599faca34cb2" title="A value that can be used for the &amp;#39;base&amp;#39; parameter of the string-to-integer...">autobase</a>) {
+<a name="l00157"></a>00157 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;0&#39;</span>) {
+<a name="l00158"></a>00158 ++c;
+<a name="l00159"></a>00159 <span class="keywordflow">if</span> (*c == <span class="charliteral">&#39;x&#39;</span> || *c == <span class="charliteral">&#39;X&#39;</span>) {
+<a name="l00160"></a>00160 ++c;
+<a name="l00161"></a>00161 base = 16;
+<a name="l00162"></a>00162 } <span class="keywordflow">else</span> base = 8;
+<a name="l00163"></a>00163 } <span class="keywordflow">else</span> base = 10;
+<a name="l00164"></a>00164 }
 <a name="l00165"></a>00165
-<a name="l00166"></a>00166 <span class="comment">// ATTN: for when there&#39;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&#39;s even less need for them here. Show me a use-case where</span>
-<a name="l00169"></a>00169 <span class="comment">// they&#39;re needed and I&#39;ll add them; until then, this will suffice.</span>
+<a name="l00166"></a>00166 <span class="keywordflow">if</span> (base &lt; 2 || base &gt; 36) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00167"></a>00167 exceptions::invalid_base());
+<a name="l00168"></a>00168 <span class="keywordflow">if</span> (*c == 0) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00169"></a>00169 exceptions::invalid_digit(<span class="stringliteral">&quot;No valid digits&quot;</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 &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; *c &lt;= <span class="charliteral">&#39;9&#39;</span>) digit.set(*c - <span class="charliteral">&#39;0&#39;</span>);
-<a name="l00177"></a>00177 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c &gt;= <span class="charliteral">&#39;A&#39;</span> &amp;&amp; *c &lt;= <span class="charliteral">&#39;Z&#39;</span>) digit.set(*c - <span class="charliteral">&#39;A&#39;</span> + 10);
-<a name="l00178"></a>00178 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c &gt;= <span class="charliteral">&#39;a&#39;</span> &amp;&amp; *c &lt;= <span class="charliteral">&#39;z&#39;</span>) digit.set(*c - <span class="charliteral">&#39;a&#39;</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">&quot;encountered non-alphanumeric &quot;</span>
-<a name="l00181"></a>00181 <span class="stringliteral">&quot;character in string&quot;</span>);
-<a name="l00182"></a>00182
-<a name="l00183"></a>00183 <span class="keywordflow">if</span> (digit &gt;= shift) <span class="keywordflow">throw</span> exceptions::invalid_digit(<span class="stringliteral">&quot;encountered digit &quot;</span>
-<a name="l00184"></a>00184 <span class="stringliteral">&quot;greater than base allows&quot;</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> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traitsT, <span class="keyword">typename</span> allocT&gt;
-<a name="l00197"></a>00197 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> std::basic_string&lt;charT, traitsT,
-<a name="l00198"></a>00198 allocT&gt;&amp; str, std::size_t 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 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#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, std::size_t bits = 0) {
-<a name="l00205"></a>00205 <span class="keywordflow">if</span> (bits &gt; std::size_t(std::numeric_limits&lt;unsigned char&gt;::digits)) <span class="keywordflow">throw</span>
-<a name="l00206"></a>00206 exceptions::invalid_argument(<span class="stringliteral">&quot;can&#39;t fit that many bits into an &quot;</span>
-<a name="l00207"></a>00207 <span class="stringliteral">&quot;unsigned character on this system&quot;</span>);
-<a name="l00208"></a>00208 <span class="keywordflow">if</span> (bits == 0) bits = std::numeric_limits&lt;unsigned char&gt;::digits;
-<a name="l00209"></a>00209
-<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&lt;unsigned char&gt;
-<a name="l00216"></a>00216 (bitqueue.pop(bits)));
-<a name="l00217"></a>00217 <span class="keywordflow">while</span> (!target.empty() &amp;&amp; target.back()==0) target.pop_back();
-<a name="l00218"></a>00218 <span class="keywordflow">return</span> target;
-<a name="l00219"></a>00219 }
+<a name="l00171"></a>00171 <span class="comment">// ATTN: for when there&#39;s nothing more pressing to do</span>
+<a name="l00172"></a>00172 <span class="comment">// This function could use the same efficiency improvements that to_string</span>
+<a name="l00173"></a>00173 <span class="comment">// uses, but there&#39;s even less need for them here. Show me a use-case where</span>
+<a name="l00174"></a>00174 <span class="comment">// they&#39;re needed and I&#39;ll add them; until then, this will suffice.</span>
+<a name="l00175"></a>00175
+<a name="l00176"></a>00176 BOOST_XINT_RAWINT shift, digit;
+<a name="l00177"></a>00177 shift.set_unsigned(base);
+<a name="l00178"></a>00178
+<a name="l00179"></a>00179 <span class="keyword">set</span>(0);
+<a name="l00180"></a>00180 <span class="keywordflow">while</span> (*c) {
+<a name="l00181"></a>00181 <span class="keywordflow">if</span> (*c &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; *c &lt;= <span class="charliteral">&#39;9&#39;</span>) digit.set(*c - <span class="charliteral">&#39;0&#39;</span>);
+<a name="l00182"></a>00182 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c &gt;= <span class="charliteral">&#39;A&#39;</span> &amp;&amp; *c &lt;= <span class="charliteral">&#39;Z&#39;</span>) digit.set(*c - <span class="charliteral">&#39;A&#39;</span> + 10);
+<a name="l00183"></a>00183 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*c &gt;= <span class="charliteral">&#39;a&#39;</span> &amp;&amp; *c &lt;= <span class="charliteral">&#39;z&#39;</span>) digit.set(*c - <span class="charliteral">&#39;a&#39;</span> + 10);
+<a name="l00184"></a>00184 <span class="keywordflow">else</span> exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00185"></a>00185 exceptions::invalid_digit(<span class="stringliteral">&quot;encountered non-alphanumeric character &quot;</span>
+<a name="l00186"></a>00186 <span class="stringliteral">&quot;in string&quot;</span>));
+<a name="l00187"></a>00187
+<a name="l00188"></a>00188 <span class="keywordflow">if</span> (digit &gt;= shift) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00189"></a>00189 exceptions::invalid_digit(<span class="stringliteral">&quot;encountered digit greater than base &quot;</span>
+<a name="l00190"></a>00190 <span class="stringliteral">&quot;allows&quot;</span>));
+<a name="l00191"></a>00191
+<a name="l00192"></a>00192 *<span class="keyword">this</span> *= shift;
+<a name="l00193"></a>00193 *<span class="keyword">this</span> += digit;
+<a name="l00194"></a>00194 ++c;
+<a name="l00195"></a>00195 }
+<a name="l00196"></a>00196
+<a name="l00197"></a>00197 negative = negate;
+<a name="l00198"></a>00198 trim();
+<a name="l00199"></a>00199 }
+<a name="l00200"></a>00200
+<a name="l00201"></a>00201 BOOST_XINT_RAWINT_TPL
+<a name="l00202"></a>00202 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traitsT, <span class="keyword">typename</span> allocT&gt;
+<a name="l00203"></a>00203 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::from_string(<span class="keyword">const</span> std::basic_string&lt;charT, traitsT,
+<a name="l00204"></a>00204 allocT&gt;&amp; str, std::size_t base)
+<a name="l00205"></a>00205 {
+<a name="l00206"></a>00206 from_string(str.c_str(), base);
+<a name="l00207"></a>00207 }
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209 BOOST_XINT_RAWINT_TPL
+<a name="l00210"></a>00210 <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#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, std::size_t bits = 0) {
+<a name="l00211"></a>00211 <span class="keywordflow">if</span> (bits &gt; std::size_t(std::numeric_limits&lt;unsigned char&gt;::digits))
+<a name="l00212"></a>00212 exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00213"></a>00213 exceptions::invalid_argument(<span class="stringliteral">&quot;can&#39;t fit that many bits into an &quot;</span>
+<a name="l00214"></a>00214 <span class="stringliteral">&quot;unsigned character on this system&quot;</span>));
+<a name="l00215"></a>00215 <span class="keywordflow">if</span> (bits == 0) bits = std::numeric_limits&lt;unsigned char&gt;::digits;
+<a name="l00216"></a>00216
+<a name="l00217"></a>00217 bitqueue_t bitqueue;
+<a name="l00218"></a>00218 <span class="keyword">const</span> digit_t *s = n.digits(), *se = s + n.length;
+<a name="l00219"></a>00219 <span class="keywordflow">while</span> (s != se) bitqueue.push(*s++, bits_per_digit);
 <a name="l00220"></a>00220
-<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, std::size_t bits) {
-<a name="l00223"></a>00223 <span class="keywordflow">if</span> (bits &gt; std::size_t(std::numeric_limits&lt;unsigned char&gt;::digits)) <span class="keywordflow">throw</span>
-<a name="l00224"></a>00224 exceptions::invalid_argument(<span class="stringliteral">&quot;can&#39;t fit that many bits into an &quot;</span>
-<a name="l00225"></a>00225 <span class="stringliteral">&quot;unsigned character on this system&quot;</span>);
-<a name="l00226"></a>00226 <span class="keywordflow">if</span> (bits == 0) bits = std::numeric_limits&lt;unsigned char&gt;::digits;
+<a name="l00221"></a>00221 <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="l00222"></a>00222 <span class="keywordflow">while</span> (!bitqueue.empty()) target.push_back(static_cast&lt;unsigned char&gt;
+<a name="l00223"></a>00223 (bitqueue.pop(bits)));
+<a name="l00224"></a>00224 <span class="keywordflow">while</span> (!target.empty() &amp;&amp; target.back()==0) target.pop_back();
+<a name="l00225"></a>00225 <span class="keywordflow">return</span> target;
+<a name="l00226"></a>00226 }
 <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 &amp;&amp; !bitqueue.empty())
-<a name="l00235"></a>00235 *t++ = static_cast&lt;digit_t&gt;(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="l00228"></a>00228 BOOST_XINT_RAWINT_TPL
+<a name="l00229"></a>00229 <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, std::size_t bits) {
+<a name="l00230"></a>00230 <span class="keywordflow">if</span> (bits &gt; std::size_t(std::numeric_limits&lt;unsigned char&gt;::digits))
+<a name="l00231"></a>00231 exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00232"></a>00232 exceptions::invalid_argument(<span class="stringliteral">&quot;can&#39;t fit that many bits into an &quot;</span>
+<a name="l00233"></a>00233 <span class="stringliteral">&quot;unsigned character on this system&quot;</span>));
+<a name="l00234"></a>00234 <span class="keywordflow">if</span> (bits == 0) bits = std::numeric_limits&lt;unsigned char&gt;::digits;
+<a name="l00235"></a>00235
+<a name="l00236"></a>00236 bitqueue_t bitqueue;
+<a name="l00237"></a>00237 <span class="keywordflow">for</span> (xint::binary_t::const_iterator s = b.begin(), se = b.end(); s != se;
+<a name="l00238"></a>00238 ++s) bitqueue.push(*s, bits);
 <a name="l00239"></a>00239
-<a name="l00240"></a>00240 <span class="keyword">template</span> &lt;<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&gt;
-<a name="l00241"></a>00241 T <a class="code" href="namespaceboost_1_1xint.html#a9aa52eb4533b04c27329b3f6b7aa842b" 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&lt;boost::is_integral&lt;T&gt;
-<a name="l00242"></a>00242 &gt;::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&lt;T&gt;::min)());
-<a name="l00247"></a>00247 <span class="keyword">static</span> <span class="keyword">const</span> BOOST_XINT_RAWINT tmax((numeric_limits&lt;T&gt;::max)());
-<a name="l00248"></a>00248 <span class="keywordflow">if</span> (n &lt; tmin || n &gt; tmax) <span class="keywordflow">throw</span> exceptions::too_big(<span class="stringliteral">&quot;value out of range &quot;</span>
-<a name="l00249"></a>00249 <span class="stringliteral">&quot;for requested conversion&quot;</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> (std::size_t x = 0; x &lt; n.length; ++x) {
-<a name="l00253"></a>00253 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) &gt; <span class="keyword">sizeof</span>(digit_t)) rval *= shift;
-<a name="l00254"></a>00254 rval += <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</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>
+<a name="l00240"></a>00240 digit_t *d = digits(bits_to_digits(b.size() * bits), realloc::ignore), *t =
+<a name="l00241"></a>00241 d, *te = t + max_length();
+<a name="l00242"></a>00242 <span class="keywordflow">while</span> (t != te &amp;&amp; !bitqueue.empty())
+<a name="l00243"></a>00243 *t++ = static_cast&lt;digit_t&gt;(bitqueue.pop(bits_per_digit));
+<a name="l00244"></a>00244 length = (t - d);
+<a name="l00245"></a>00245 trim();
+<a name="l00246"></a>00246 }
+<a name="l00247"></a>00247
+<a name="l00248"></a>00248 <span class="keyword">template</span> &lt;<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&gt;
+<a name="l00249"></a>00249 T <a class="code" href="namespaceboost_1_1xint.html#a9aa52eb4533b04c27329b3f6b7aa842b" 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&lt;boost::is_integral&lt;T&gt;
+<a name="l00250"></a>00250 &gt;::type* = 0)
+<a name="l00251"></a>00251 {
+<a name="l00252"></a>00252 <span class="keyword">using</span> std::numeric_limits;
+<a name="l00253"></a>00253
+<a name="l00254"></a>00254 <span class="keyword">static</span> <span class="keyword">const</span> BOOST_XINT_RAWINT tmin((numeric_limits&lt;T&gt;::min)());
+<a name="l00255"></a>00255 <span class="keyword">static</span> <span class="keyword">const</span> BOOST_XINT_RAWINT tmax((numeric_limits&lt;T&gt;::max)());
+<a name="l00256"></a>00256 <span class="keywordflow">if</span> (n &lt; tmin || n &gt; tmax) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00257"></a>00257 exceptions::too_big(<span class="stringliteral">&quot;value out of range for requested conversion&quot;</span>));
+<a name="l00258"></a>00258
+<a name="l00259"></a>00259 T rval = 0, shift = T(digit_overflowbit);
+<a name="l00260"></a>00260 <span class="keywordflow">for</span> (std::size_t x = 0; x &lt; n.length; ++x) {
+<a name="l00261"></a>00261 <span class="keywordflow">if</span> (<span class="keyword">sizeof</span>(T) &gt; <span class="keyword">sizeof</span>(digit_t)) rval *= shift;
+<a name="l00262"></a>00262 rval += <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(n[n.length - x - 1]);
+<a name="l00263"></a>00263 }
+<a name="l00264"></a>00264 <span class="keywordflow">if</span> (n.negative) rval *= -1;
+<a name="l00265"></a>00265 <span class="keywordflow">return</span> rval;
+<a name="l00266"></a>00266 }
+<a name="l00267"></a>00267
+<a name="l00268"></a>00268 } <span class="comment">// namespace detail</span>
+<a name="l00269"></a>00269 } <span class="comment">// namespace xint</span>
+<a name="l00270"></a>00270 } <span class="comment">// namespace boost</span>
+<a name="l00272"></a>00272 <span class="comment"></span>
+<a name="l00273"></a>00273 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_CONVERT_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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>options::copy_on_write</code> option on the <code>integer_t</code> class template. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -157,84 +157,85 @@
 <a name="l00145"></a>00145 {
 <a name="l00146"></a>00146 <span class="keywordtype">int</span> sign1 = (d1.is_zero() ? 0 : d1.negative ? -1 : 1);
 <a name="l00147"></a>00147 <span class="keywordtype">int</span> sign2 = (d2.is_zero() ? 0 : d2.negative ? -1 : 1);
-<a name="l00148"></a>00148 <span class="keywordflow">if</span> (sign2 == 0) <span class="keywordflow">throw</span> exceptions::divide_by_zero();
-<a name="l00149"></a>00149
-<a name="l00150"></a>00150 <span class="keywordtype">int</span> comp = <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(d1, d2, <span class="keyword">true</span>);
-<a name="l00151"></a>00151 <span class="keywordflow">if</span> (comp &lt; 0) {
-<a name="l00152"></a>00152 qtarget.set(0);
-<a name="l00153"></a>00153 rtarget = d1;
-<a name="l00154"></a>00154 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (comp == 0) {
-<a name="l00155"></a>00155 qtarget.set(sign1 != sign2 ? -1 : 1);
-<a name="l00156"></a>00156 rtarget.set(0);
-<a name="l00157"></a>00157 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 &lt; 0 &amp;&amp; sign2 &lt; 0) {
-<a name="l00158"></a>00158 sub_divide(qtarget, rtarget, d1.negate(), d2.negate());
-<a name="l00159"></a>00159 qtarget.negative = <span class="keyword">false</span>;
-<a name="l00160"></a>00160 rtarget.negative = <span class="keyword">true</span>;
-<a name="l00161"></a>00161 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 &lt; 0) {
-<a name="l00162"></a>00162 sub_divide(qtarget, rtarget, d1.negate(), d2);
-<a name="l00163"></a>00163 qtarget.negative = rtarget.negative = <span class="keyword">true</span>;
-<a name="l00164"></a>00164 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 &lt; 0) {
-<a name="l00165"></a>00165 sub_divide(qtarget, rtarget, d1, d2.negate());
-<a name="l00166"></a>00166 qtarget.negative = <span class="keyword">true</span>;
-<a name="l00167"></a>00167 rtarget.negative = <span class="keyword">false</span>;
-<a name="l00168"></a>00168 } <span class="keywordflow">else</span> {
-<a name="l00169"></a>00169 sub_divide(qtarget, rtarget, d1, d2);
-<a name="l00170"></a>00170 qtarget.negative = rtarget.negative = <span class="keyword">false</span>;
-<a name="l00171"></a>00171 }
-<a name="l00172"></a>00172 rtarget.trim();
-<a name="l00173"></a>00173 qtarget.trim();
-<a name="l00174"></a>00174 }
-<a name="l00175"></a>00175
-<a name="l00176"></a>00176 BOOST_XINT_RAWINT_TPL
-<a name="l00177"></a>00177 <span class="keyword">typename</span> BOOST_XINT_RAWINT::divide_t <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT d1, <span class="keyword">const</span>
-<a name="l00178"></a>00178 BOOST_XINT_RAWINT d2)
-<a name="l00179"></a>00179 {
-<a name="l00180"></a>00180 BOOST_XINT_RAWINT q, r;
-<a name="l00181"></a>00181 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(q, r, d1, d2);
-<a name="l00182"></a>00182 <span class="keywordflow">return</span> <span class="keyword">typename</span> BOOST_XINT_RAWINT::divide_t(q, r);
-<a name="l00183"></a>00183 }
-<a name="l00184"></a>00184
-<a name="l00185"></a>00185 BOOST_XINT_RAWINT_TPL
-<a name="l00186"></a>00186 BOOST_XINT_RAWINT&amp; BOOST_XINT_RAWINT::operator/=(<span class="keyword">const</span> BOOST_XINT_RAWINT b) {
-<a name="l00187"></a>00187 BOOST_XINT_RAWINT remainder;
-<a name="l00188"></a>00188 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(*<span class="keyword">this</span>, remainder, *<span class="keyword">this</span>, b);
-<a name="l00189"></a>00189 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00190"></a>00190 }
-<a name="l00191"></a>00191
-<a name="l00192"></a>00192 BOOST_XINT_RAWINT_TPL
-<a name="l00193"></a>00193 BOOST_XINT_RAWINT&amp; BOOST_XINT_RAWINT::operator%=(<span class="keyword">const</span> BOOST_XINT_RAWINT b) {
-<a name="l00194"></a>00194 BOOST_XINT_RAWINT quotient;
-<a name="l00195"></a>00195 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(quotient, *<span class="keyword">this</span>, *<span class="keyword">this</span>, b);
-<a name="l00196"></a>00196 <span class="keywordflow">if</span> (negative) *<span class="keyword">this</span> += b.abs();
-<a name="l00197"></a>00197 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00198"></a>00198 }
-<a name="l00199"></a>00199
-<a name="l00200"></a>00200 BOOST_XINT_RAWINT_TPL
-<a name="l00201"></a>00201 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a806df63b92124039591a4ca09a8538e0" title="Calculate how many dividends would fit into divisor.">operator/</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
-<a name="l00202"></a>00202 n2)
-<a name="l00203"></a>00203 {
-<a name="l00204"></a>00204 BOOST_XINT_RAWINT quotient, remainder;
-<a name="l00205"></a>00205 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(quotient, remainder, n1, n2);
-<a name="l00206"></a>00206 <span class="keywordflow">return</span> quotient;
-<a name="l00207"></a>00207 }
-<a name="l00208"></a>00208
-<a name="l00209"></a>00209 BOOST_XINT_RAWINT_TPL
-<a name="l00210"></a>00210 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a0ac4116f3a9285a7f2f10d0104b870f7" title="Get the remainder after dividing a number by another.">operator%</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
-<a name="l00211"></a>00211 n2)
-<a name="l00212"></a>00212 {
-<a name="l00213"></a>00213 BOOST_XINT_RAWINT quotient, remainder;
-<a name="l00214"></a>00214 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(quotient, remainder, n1, n2);
-<a name="l00215"></a>00215 <span class="keywordflow">if</span> (remainder.negative) remainder += n2.abs();
-<a name="l00216"></a>00216 <span class="keywordflow">return</span> remainder;
-<a name="l00217"></a>00217 }
-<a name="l00218"></a>00218
-<a name="l00219"></a>00219 } <span class="comment">// namespace detail</span>
-<a name="l00220"></a>00220 } <span class="comment">// namespace xint</span>
-<a name="l00221"></a>00221 } <span class="comment">// namespace boost</span>
-<a name="l00223"></a>00223 <span class="comment"></span>
-<a name="l00224"></a>00224 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_DIVIDE_HPP</span>
+<a name="l00148"></a>00148 <span class="keywordflow">if</span> (sign2 == 0) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00149"></a>00149 exceptions::divide_by_zero());
+<a name="l00150"></a>00150
+<a name="l00151"></a>00151 <span class="keywordtype">int</span> comp = <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(d1, d2, <span class="keyword">true</span>);
+<a name="l00152"></a>00152 <span class="keywordflow">if</span> (comp &lt; 0) {
+<a name="l00153"></a>00153 qtarget.set(0);
+<a name="l00154"></a>00154 rtarget = d1;
+<a name="l00155"></a>00155 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (comp == 0) {
+<a name="l00156"></a>00156 qtarget.set(sign1 != sign2 ? -1 : 1);
+<a name="l00157"></a>00157 rtarget.set(0);
+<a name="l00158"></a>00158 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 &lt; 0 &amp;&amp; sign2 &lt; 0) {
+<a name="l00159"></a>00159 sub_divide(qtarget, rtarget, d1.negate(), d2.negate());
+<a name="l00160"></a>00160 qtarget.negative = <span class="keyword">false</span>;
+<a name="l00161"></a>00161 rtarget.negative = <span class="keyword">true</span>;
+<a name="l00162"></a>00162 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign1 &lt; 0) {
+<a name="l00163"></a>00163 sub_divide(qtarget, rtarget, d1.negate(), d2);
+<a name="l00164"></a>00164 qtarget.negative = rtarget.negative = <span class="keyword">true</span>;
+<a name="l00165"></a>00165 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (sign2 &lt; 0) {
+<a name="l00166"></a>00166 sub_divide(qtarget, rtarget, d1, d2.negate());
+<a name="l00167"></a>00167 qtarget.negative = <span class="keyword">true</span>;
+<a name="l00168"></a>00168 rtarget.negative = <span class="keyword">false</span>;
+<a name="l00169"></a>00169 } <span class="keywordflow">else</span> {
+<a name="l00170"></a>00170 sub_divide(qtarget, rtarget, d1, d2);
+<a name="l00171"></a>00171 qtarget.negative = rtarget.negative = <span class="keyword">false</span>;
+<a name="l00172"></a>00172 }
+<a name="l00173"></a>00173 rtarget.trim();
+<a name="l00174"></a>00174 qtarget.trim();
+<a name="l00175"></a>00175 }
+<a name="l00176"></a>00176
+<a name="l00177"></a>00177 BOOST_XINT_RAWINT_TPL
+<a name="l00178"></a>00178 <span class="keyword">typename</span> BOOST_XINT_RAWINT::divide_t <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT d1, <span class="keyword">const</span>
+<a name="l00179"></a>00179 BOOST_XINT_RAWINT d2)
+<a name="l00180"></a>00180 {
+<a name="l00181"></a>00181 BOOST_XINT_RAWINT q, r;
+<a name="l00182"></a>00182 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(q, r, d1, d2);
+<a name="l00183"></a>00183 <span class="keywordflow">return</span> <span class="keyword">typename</span> BOOST_XINT_RAWINT::divide_t(q, r);
+<a name="l00184"></a>00184 }
+<a name="l00185"></a>00185
+<a name="l00186"></a>00186 BOOST_XINT_RAWINT_TPL
+<a name="l00187"></a>00187 BOOST_XINT_RAWINT&amp; BOOST_XINT_RAWINT::operator/=(<span class="keyword">const</span> BOOST_XINT_RAWINT b) {
+<a name="l00188"></a>00188 BOOST_XINT_RAWINT remainder;
+<a name="l00189"></a>00189 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(*<span class="keyword">this</span>, remainder, *<span class="keyword">this</span>, b);
+<a name="l00190"></a>00190 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00191"></a>00191 }
+<a name="l00192"></a>00192
+<a name="l00193"></a>00193 BOOST_XINT_RAWINT_TPL
+<a name="l00194"></a>00194 BOOST_XINT_RAWINT&amp; BOOST_XINT_RAWINT::operator%=(<span class="keyword">const</span> BOOST_XINT_RAWINT b) {
+<a name="l00195"></a>00195 BOOST_XINT_RAWINT quotient;
+<a name="l00196"></a>00196 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(quotient, *<span class="keyword">this</span>, *<span class="keyword">this</span>, b);
+<a name="l00197"></a>00197 <span class="keywordflow">if</span> (negative) *<span class="keyword">this</span> += b.abs();
+<a name="l00198"></a>00198 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00199"></a>00199 }
+<a name="l00200"></a>00200
+<a name="l00201"></a>00201 BOOST_XINT_RAWINT_TPL
+<a name="l00202"></a>00202 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a806df63b92124039591a4ca09a8538e0" title="Calculate how many dividends would fit into divisor.">operator/</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
+<a name="l00203"></a>00203 n2)
+<a name="l00204"></a>00204 {
+<a name="l00205"></a>00205 BOOST_XINT_RAWINT quotient, remainder;
+<a name="l00206"></a>00206 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(quotient, remainder, n1, n2);
+<a name="l00207"></a>00207 <span class="keywordflow">return</span> quotient;
+<a name="l00208"></a>00208 }
+<a name="l00209"></a>00209
+<a name="l00210"></a>00210 BOOST_XINT_RAWINT_TPL
+<a name="l00211"></a>00211 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a0ac4116f3a9285a7f2f10d0104b870f7" title="Get the remainder after dividing a number by another.">operator%</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
+<a name="l00212"></a>00212 n2)
+<a name="l00213"></a>00213 {
+<a name="l00214"></a>00214 BOOST_XINT_RAWINT quotient, remainder;
+<a name="l00215"></a>00215 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(quotient, remainder, n1, n2);
+<a name="l00216"></a>00216 <span class="keywordflow">if</span> (remainder.negative) remainder += n2.abs();
+<a name="l00217"></a>00217 <span class="keywordflow">return</span> remainder;
+<a name="l00218"></a>00218 }
+<a name="l00219"></a>00219
+<a name="l00220"></a>00220 } <span class="comment">// namespace detail</span>
+<a name="l00221"></a>00221 } <span class="comment">// namespace xint</span>
+<a name="l00222"></a>00222 } <span class="comment">// namespace boost</span>
+<a name="l00224"></a>00224 <span class="comment"></span>
+<a name="l00225"></a>00225 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_DIVIDE_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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/index.dox
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/index.dox (original)
+++ sandbox/xint/libs/xint/doc/dox/index.dox 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -60,6 +60,7 @@
 - \subpage zero
 - \subpage primes (with example code)
 - \subpage exceptions (with example code)
+- \subpage exception_handler
 - \subpage random
 - \subpage threadsafe
 

Added: sandbox/xint/libs/xint/doc/dox/no_exceptions.dox
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/dox/no_exceptions.dox 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -0,0 +1,20 @@
+/*! \page exception_handler The \c on_exception Function And \c -fno-exceptions Support
+
+This library includes support for GCC's \c -fno-exceptions option. When a
+program is compiled with \c -fno-exceptions, it cannot use \c try, \c throw, or
+\c catch statements, and any error will result in a call to \c abort() unless
+otherwise dealt with. To activate this support, define the preprocessor macro \c
+BOOST_XINT_NO_EXCEPTIONS before including any Boost.XInt header.
+
+To give your program a chance to at least record any error, and optionally
+recover from it using the \c setjmp/longjmp functions, the library includes an
+\ref boost::xint::on_exception "on_exception" function. You call this function,
+passing in a function that you want called whenever there is a problem. The
+library will call that function and (if it returns) throw the exception as
+normal. (If BOOST_XINT_NO_EXCEPTIONS is used, it will call \c abort() after
+calling your function instead.)
+
+Note that while \c setjmp/longjmp may allow you to recover from errors, it will
+often result in memory leaks since no destructors or other cleanup code is
+allowed to run.
+*/

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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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/exception__handler.html
==============================================================================
--- (empty file)
+++ sandbox/xint/libs/xint/doc/exception__handler.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -0,0 +1,34 @@
+<!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: The \c on_exception Function And \c -fno-exceptions Support</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>Files</li>
+ </ul>
+ </div>
+ <div class="navpath"><a class="el" href="index.html">The Extended Integer (XInt) Library</a>
+ </div>
+</div>
+<div class="contents">
+
+
+<h1><a class="anchor" id="exception_handler">The <code>on_exception</code> Function And <code>-fno-exceptions</code> Support </a></h1><p>This library includes support for GCC's <code>-fno-exceptions</code> option. When a program is compiled with <code>-fno-exceptions</code>, it cannot use <code>try</code>, <code>throw</code>, or <code>catch</code> statements, and any error will result in a call to <code>abort()</code> unless otherwise dealt with. To activate this support, define the preprocessor macro <code>BOOST_XINT_NO_EXCEPTIONS</code> before including any Boost.XInt header.</p>
+<p>To give your program a chance to at least record any error, and optionally recover from it using the <code>setjmp/longjmp</code> functions, the library includes an <a class="el" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">on_exception</a> function. You call this function, passing in a function that you want called whenever there is a problem. The library will call that function and (if it returns) throw the exception as normal. (If BOOST_XINT_NO_EXCEPTIONS is used, it will call <code>abort()</code> after calling your function instead.)</p>
+<p>Note that while <code>setjmp/longjmp</code> may allow you to recover from errors, it will often result in memory leaks since no destructors or other cleanup code is allowed to run. </p>
+</div>
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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/exceptions.html
==============================================================================
--- sandbox/xint/libs/xint/doc/exceptions.html (original)
+++ sandbox/xint/libs/xint/doc/exceptions.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -62,7 +62,7 @@
     }
 }
 </pre></div> </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -26,7 +26,7 @@
 </div>
 <div class="contents">
 <h1>exceptions.hpp File Reference</h1>
-<p>The exception namespace.
+<p>The exception namespace, and exception-related functions.
 <a href="#_details">More...</a></p>
 
 <p>Go to the source code of this file.</p>
@@ -54,13 +54,16 @@
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Every exception the library throws is from this namespace. </p>
 <br/></td></tr>
 </p>
+<tr><td colspan="2"><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">boost::xint::on_exception</a> (on_exception_t fn=on_exception_t())</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or resets the global exception handler for the library. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>The exception namespace. </p>
+<p>The exception namespace, and exception-related functions. </p>
 
 <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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -40,81 +40,86 @@
 <a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_INCLUDED_XINT_EXCEPTIONS_HPP</span>
 <a name="l00020"></a>00020 <span class="preprocessor"></span>
 <a name="l00021"></a>00021 <span class="preprocessor">#include &lt;stdexcept&gt;</span>
-<a name="l00022"></a>00022
-<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
-<a name="l00027"></a><a class="code" href="namespaceboost_1_1xint_1_1exceptions.html">00027</a> <span class="keyword">namespace </span>exceptions {
-<a name="l00028"></a>00028
-<a name="l00032"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">00032</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
-<a name="l00033"></a>00033 <span class="keyword">public</span>:
-<a name="l00034"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html#a8ba3e56172de34c772b287ce8e325f32">00034</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html#a8ba3e56172de34c772b287ce8e325f32">invalid_argument</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid argument&quot;</span>):
-<a name="l00035"></a>00035 std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what) { }
-<a name="l00036"></a>00036 };
-<a name="l00037"></a>00037
-<a name="l00041"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">00041</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">invalid_base</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
-<a name="l00042"></a>00042 <span class="keyword">public</span>:
-<a name="l00043"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html#a4647071020547bd103ee885bec7edffa">00043</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html#a4647071020547bd103ee885bec7edffa">invalid_base</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid base&quot;</span>): <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what)
-<a name="l00044"></a>00044 { }
-<a name="l00045"></a>00045 };
-<a name="l00046"></a>00046
-<a name="l00050"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">00050</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">invalid_digit</a>: <span class="keyword">public</span> std::range_error {
-<a name="l00051"></a>00051 <span class="keyword">public</span>:
-<a name="l00052"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html#abcdf43b30c3910dde89e406ca802eacc">00052</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html#abcdf43b30c3910dde89e406ca802eacc">invalid_digit</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid digit&quot;</span>): range_error(what)
-<a name="l00053"></a>00053 { }
-<a name="l00054"></a>00054 };
-<a name="l00055"></a>00055
-<a name="l00059"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">00059</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">invalid_modulus</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
-<a name="l00060"></a>00060 <span class="keyword">public</span>:
-<a name="l00061"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html#a16c06e28a7f483b0ca2fb5906d53278d">00061</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html#a16c06e28a7f483b0ca2fb5906d53278d">invalid_modulus</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid modulus&quot;</span>):
-<a name="l00062"></a>00062 <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what) { }
-<a name="l00063"></a>00063 };
-<a name="l00064"></a>00064
-<a name="l00068"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">00068</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">divide_by_zero</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
-<a name="l00069"></a>00069 <span class="keyword">public</span>:
-<a name="l00070"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html#aaff4d720e4a134315acde919ff06e640">00070</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html#aaff4d720e4a134315acde919ff06e640">divide_by_zero</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;divide by zero error&quot;</span>):
-<a name="l00071"></a>00071 <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what) { }
-<a name="l00072"></a>00072 };
-<a name="l00073"></a>00073
-<a name="l00077"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">00077</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">cannot_represent</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
-<a name="l00078"></a>00078 <span class="keyword">public</span>:
-<a name="l00079"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html#a0968d8ac61c24529816bcaf69d155b75">00079</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html#a0968d8ac61c24529816bcaf69d155b75">cannot_represent</a>(<span class="keyword">const</span> std::string&amp; what=
-<a name="l00080"></a>00080 <span class="stringliteral">&quot;cannot represent the requested value&quot;</span>): <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what) { }
-<a name="l00081"></a>00081 };
-<a name="l00082"></a>00082
-<a name="l00086"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">00086</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">too_big</a>: <span class="keyword">public</span> std::range_error {
-<a name="l00087"></a>00087 <span class="keyword">public</span>:
-<a name="l00088"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1too__big.html#a111e2c1a759054d80afcd5fa4af2995c">00088</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1too__big.html#a111e2c1a759054d80afcd5fa4af2995c">too_big</a>(<span class="keyword">const</span> std::string&amp; what=
-<a name="l00089"></a>00089 <span class="stringliteral">&quot;value out of range for requested conversion&quot;</span>): range_error(what) { }
-<a name="l00090"></a>00090 };
-<a name="l00091"></a>00091
-<a name="l00099"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">00099</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">not_a_number</a>: <span class="keyword">public</span> std::runtime_error {
-<a name="l00100"></a>00100 <span class="keyword">public</span>:
-<a name="l00101"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html#aa47b024550fd673bd497e0875443c67f">00101</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html#aa47b024550fd673bd497e0875443c67f">not_a_number</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;attempted to use a Not-a-Number&quot;</span>):
-<a name="l00102"></a>00102 runtime_error(what) { }
-<a name="l00103"></a>00103 };
-<a name="l00104"></a>00104
-<a name="l00114"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">00114</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">no_strong_random</a>: <span class="keyword">public</span> std::runtime_error {
-<a name="l00115"></a>00115 <span class="keyword">public</span>:
-<a name="l00116"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html#ab225c7d5d10a03eac6d5e9c784135675">00116</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html#ab225c7d5d10a03eac6d5e9c784135675">no_strong_random</a>(<span class="keyword">const</span> std::string&amp; what=
-<a name="l00117"></a>00117 <span class="stringliteral">&quot;system does not have a strong random generator&quot;</span>):
-<a name="l00118"></a>00118 runtime_error(what) { }
-<a name="l00119"></a>00119 };
-<a name="l00120"></a>00120
-<a name="l00127"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">00127</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">overflow_error</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">overflow_error</a> {
+<a name="l00022"></a>00022 <span class="preprocessor">#include &quot;<a class="code" href="basic__types__and__includes_8hpp.html" title="Contains the most basic types, constants, and includes.">detail/basic_types_and_includes.hpp</a>&quot;</span>
+<a name="l00023"></a>00023
+<a name="l00024"></a>00024 <span class="keyword">namespace </span>boost {
+<a name="l00025"></a>00025 <span class="keyword">namespace </span>xint {
+<a name="l00026"></a>00026
+<a name="l00039"></a><a class="code" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">00039</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241" title="Sets or resets the global exception handler for the library.">on_exception</a>(<a class="code" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c" title="The function type for on_exception.">on_exception_t</a> fn = <a class="code" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c" title="The function type for on_exception.">on_exception_t</a>()) {
+<a name="l00040"></a>00040 detail::exception_handler&lt;&gt;::fn = fn;
+<a name="l00041"></a>00041 }
+<a name="l00042"></a>00042
+<a name="l00044"></a><a class="code" href="namespaceboost_1_1xint_1_1exceptions.html">00044</a> <span class="keyword">namespace </span>exceptions {
+<a name="l00045"></a>00045
+<a name="l00049"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">00049</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
+<a name="l00050"></a>00050 <span class="keyword">public</span>:
+<a name="l00051"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html#a8ba3e56172de34c772b287ce8e325f32">00051</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html#a8ba3e56172de34c772b287ce8e325f32">invalid_argument</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid argument&quot;</span>):
+<a name="l00052"></a>00052 std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what) { }
+<a name="l00053"></a>00053 };
+<a name="l00054"></a>00054
+<a name="l00058"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">00058</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">invalid_base</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
+<a name="l00059"></a>00059 <span class="keyword">public</span>:
+<a name="l00060"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html#a4647071020547bd103ee885bec7edffa">00060</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html#a4647071020547bd103ee885bec7edffa">invalid_base</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid base&quot;</span>): <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what)
+<a name="l00061"></a>00061 { }
+<a name="l00062"></a>00062 };
+<a name="l00063"></a>00063
+<a name="l00067"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">00067</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">invalid_digit</a>: <span class="keyword">public</span> std::range_error {
+<a name="l00068"></a>00068 <span class="keyword">public</span>:
+<a name="l00069"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html#abcdf43b30c3910dde89e406ca802eacc">00069</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html#abcdf43b30c3910dde89e406ca802eacc">invalid_digit</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid digit&quot;</span>): range_error(what)
+<a name="l00070"></a>00070 { }
+<a name="l00071"></a>00071 };
+<a name="l00072"></a>00072
+<a name="l00076"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">00076</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">invalid_modulus</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
+<a name="l00077"></a>00077 <span class="keyword">public</span>:
+<a name="l00078"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html#a16c06e28a7f483b0ca2fb5906d53278d">00078</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html#a16c06e28a7f483b0ca2fb5906d53278d">invalid_modulus</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;invalid modulus&quot;</span>):
+<a name="l00079"></a>00079 <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what) { }
+<a name="l00080"></a>00080 };
+<a name="l00081"></a>00081
+<a name="l00085"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">00085</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">divide_by_zero</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
+<a name="l00086"></a>00086 <span class="keyword">public</span>:
+<a name="l00087"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html#aaff4d720e4a134315acde919ff06e640">00087</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html#aaff4d720e4a134315acde919ff06e640">divide_by_zero</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;divide by zero error&quot;</span>):
+<a name="l00088"></a>00088 <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what) { }
+<a name="l00089"></a>00089 };
+<a name="l00090"></a>00090
+<a name="l00094"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">00094</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">cannot_represent</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a> {
+<a name="l00095"></a>00095 <span class="keyword">public</span>:
+<a name="l00096"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html#a0968d8ac61c24529816bcaf69d155b75">00096</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html#a0968d8ac61c24529816bcaf69d155b75">cannot_represent</a>(<span class="keyword">const</span> std::string&amp; what=
+<a name="l00097"></a>00097 <span class="stringliteral">&quot;cannot represent the requested value&quot;</span>): <a class="code" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">invalid_argument</a>(what) { }
+<a name="l00098"></a>00098 };
+<a name="l00099"></a>00099
+<a name="l00103"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">00103</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">too_big</a>: <span class="keyword">public</span> std::range_error {
+<a name="l00104"></a>00104 <span class="keyword">public</span>:
+<a name="l00105"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1too__big.html#a111e2c1a759054d80afcd5fa4af2995c">00105</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1too__big.html#a111e2c1a759054d80afcd5fa4af2995c">too_big</a>(<span class="keyword">const</span> std::string&amp; what=
+<a name="l00106"></a>00106 <span class="stringliteral">&quot;value out of range for requested conversion&quot;</span>): range_error(what) { }
+<a name="l00107"></a>00107 };
+<a name="l00108"></a>00108
+<a name="l00112"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">00112</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">not_a_number</a>: <span class="keyword">public</span> std::runtime_error {
+<a name="l00113"></a>00113 <span class="keyword">public</span>:
+<a name="l00114"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html#aa47b024550fd673bd497e0875443c67f">00114</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html#aa47b024550fd673bd497e0875443c67f">not_a_number</a>(<span class="keyword">const</span> std::string&amp; what=<span class="stringliteral">&quot;attempted to use a Not-a-Number&quot;</span>):
+<a name="l00115"></a>00115 runtime_error(what) { }
+<a name="l00116"></a>00116 };
+<a name="l00117"></a>00117
+<a name="l00127"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">00127</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">no_strong_random</a>: <span class="keyword">public</span> std::runtime_error {
 <a name="l00128"></a>00128 <span class="keyword">public</span>:
-<a name="l00129"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html#a767d8fbe5816d77fa0aadf9481d0bd5a">00129</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html#a767d8fbe5816d77fa0aadf9481d0bd5a">overflow_error</a>(<span class="keyword">const</span> std::string&amp; what=
-<a name="l00130"></a>00130 <span class="stringliteral">&quot;overflow error: can&#39;t obtain enough memory to represent the requested number&quot;</span>):
-<a name="l00131"></a>00131 std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">overflow_error</a>(what) { }
+<a name="l00129"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html#ab225c7d5d10a03eac6d5e9c784135675">00129</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html#ab225c7d5d10a03eac6d5e9c784135675">no_strong_random</a>(<span class="keyword">const</span> std::string&amp; what=
+<a name="l00130"></a>00130 <span class="stringliteral">&quot;system does not have a strong random generator&quot;</span>):
+<a name="l00131"></a>00131 runtime_error(what) { }
 <a name="l00132"></a>00132 };
 <a name="l00133"></a>00133
-<a name="l00134"></a>00134 } <span class="comment">// namespace exception</span>
-<a name="l00135"></a>00135 } <span class="comment">// namespace xint</span>
-<a name="l00136"></a>00136 } <span class="comment">// namespace boost</span>
-<a name="l00137"></a>00137
-<a name="l00138"></a>00138 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_EXCEPTIONS_HPP</span>
+<a name="l00140"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">00140</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">overflow_error</a>: <span class="keyword">public</span> std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">overflow_error</a> {
+<a name="l00141"></a>00141 <span class="keyword">public</span>:
+<a name="l00142"></a><a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html#a767d8fbe5816d77fa0aadf9481d0bd5a">00142</a> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html#a767d8fbe5816d77fa0aadf9481d0bd5a">overflow_error</a>(<span class="keyword">const</span> std::string&amp; what=
+<a name="l00143"></a>00143 <span class="stringliteral">&quot;overflow error: can&#39;t obtain enough memory to represent the requested number&quot;</span>):
+<a name="l00144"></a>00144 std::<a class="code" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">overflow_error</a>(what) { }
+<a name="l00145"></a>00145 };
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 } <span class="comment">// namespace exception</span>
+<a name="l00148"></a>00148 } <span class="comment">// namespace xint</span>
+<a name="l00149"></a>00149 } <span class="comment">// namespace boost</span>
+<a name="l00150"></a>00150
+<a name="l00151"></a>00151 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_EXCEPTIONS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -26,7 +26,7 @@
 </div>
 <div class="contents">
 <h1>File List</h1>Here is a list of all files with brief descriptions:<table>
- <tr><td class="indexkey"><a class="el" href="exceptions_8hpp.html">exceptions.hpp</a> [code]</td><td class="indexvalue">The exception namespace </td></tr>
+ <tr><td class="indexkey"><a class="el" href="exceptions_8hpp.html">exceptions.hpp</a> [code]</td><td class="indexvalue">The exception namespace, and exception-related functions </td></tr>
   <tr><td class="indexkey"><a class="el" href="integer_8hpp.html">integer.hpp</a> [code]</td><td class="indexvalue">Declares the arbitrary-length integer type </td></tr>
   <tr><td class="indexkey"><a class="el" href="random_8hpp.html">random.hpp</a> [code]</td><td class="indexvalue">Declares items relating to random numbers </td></tr>
   <tr><td class="indexkey"><a class="el" href="xint_8hpp.html">xint.hpp</a> [code]</td><td class="indexvalue">This is the include-everything header </td></tr>
@@ -57,7 +57,7 @@
   <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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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__type.html
==============================================================================
--- sandbox/xint/libs/xint/doc/fixedlength__type.html (original)
+++ sandbox/xint/libs/xint/doc/fixedlength__type.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -28,7 +28,7 @@
 <dl class="user"><dt><b></b></dt><dd>Also note that when calculating with a signed 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&lt;8&gt;(-255) - 1</code> and <code>integer_t&lt;8&gt;(255) + 1</code> will both be zero. However, the sign (on non-zero answers) is preserved, so <code>integer_t&lt;8&gt;(-255) - 2</code> will be -1.</dd></dl>
 <dl class="user"><dt><b></b></dt><dd>When used with the <a class="el" href="structboost_1_1xint_1_1options_1_1negative__modulus.html">negative_modulus</a> option, the number will wrap around like the built-in unsigned types. </dd></dl>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -244,7 +244,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -230,7 +230,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -39,7 +39,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -42,7 +42,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -125,39 +125,40 @@
 <a name="l00107"></a>00107
 <a name="l00110"></a>00110 BOOST_XINT_RAWINT_TPL
 <a name="l00111"></a>00111 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">const</span> BOOST_XINT_RAWINT m) {
-<a name="l00112"></a>00112 <span class="keywordflow">if</span> (m.is_zero() || m.negative) <span class="keywordflow">throw</span> exceptions::invalid_modulus();
-<a name="l00113"></a>00113
-<a name="l00114"></a>00114 <span class="keywordflow">if</span> (n.is_zero()) {
-<a name="l00115"></a>00115 <span class="keywordflow">return</span> 0;
-<a name="l00116"></a>00116 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n.negative) {
-<a name="l00117"></a>00117 BOOST_XINT_RAWINT target = <a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n.abs(), m);
-<a name="l00118"></a>00118 <span class="keywordflow">if</span> (!target.is_zero()) {
-<a name="l00119"></a>00119 target.negative = <span class="keyword">true</span>;
-<a name="l00120"></a>00120 target += m;
-<a name="l00121"></a>00121 }
-<a name="l00122"></a>00122 target.trim();
-<a name="l00123"></a>00123 <span class="keywordflow">return</span> target;
-<a name="l00124"></a>00124 } <span class="keywordflow">else</span> {
-<a name="l00125"></a>00125 <span class="keywordflow">if</span> (n.is_even() &amp;&amp; m.is_even()) {
-<a name="l00126"></a>00126 <span class="comment">// GCD != 1, no inverse possible.</span>
-<a name="l00127"></a>00127 <span class="keywordflow">return</span> 0;
-<a name="l00128"></a>00128 } <span class="keywordflow">else</span> {
-<a name="l00129"></a>00129 gcd_core&lt;Bits, Secure, Alloc&gt; core(n, m);
-<a name="l00130"></a>00130 <span class="keywordflow">if</span> (core.u3 != BOOST_XINT_RAWINT(1)) {
-<a name="l00131"></a>00131 <span class="comment">// GCD != 1, no inverse possible.</span>
-<a name="l00132"></a>00132 <span class="keywordflow">return</span> 0;
-<a name="l00133"></a>00133 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> core.u1;
-<a name="l00134"></a>00134 }
-<a name="l00135"></a>00135 }
-<a name="l00136"></a>00136 }
-<a name="l00137"></a>00137
-<a name="l00138"></a>00138 } <span class="comment">// namespace detail</span>
-<a name="l00139"></a>00139 } <span class="comment">// namespace xint</span>
-<a name="l00140"></a>00140 } <span class="comment">// namespace boost</span>
-<a name="l00142"></a>00142 <span class="comment"></span>
-<a name="l00143"></a>00143 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_GCD_HPP</span>
+<a name="l00112"></a>00112 <span class="keywordflow">if</span> (m.is_zero() || m.negative) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00113"></a>00113 exceptions::invalid_modulus());
+<a name="l00114"></a>00114
+<a name="l00115"></a>00115 <span class="keywordflow">if</span> (n.is_zero()) {
+<a name="l00116"></a>00116 <span class="keywordflow">return</span> 0;
+<a name="l00117"></a>00117 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n.negative) {
+<a name="l00118"></a>00118 BOOST_XINT_RAWINT target = <a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n.abs(), m);
+<a name="l00119"></a>00119 <span class="keywordflow">if</span> (!target.is_zero()) {
+<a name="l00120"></a>00120 target.negative = <span class="keyword">true</span>;
+<a name="l00121"></a>00121 target += m;
+<a name="l00122"></a>00122 }
+<a name="l00123"></a>00123 target.trim();
+<a name="l00124"></a>00124 <span class="keywordflow">return</span> target;
+<a name="l00125"></a>00125 } <span class="keywordflow">else</span> {
+<a name="l00126"></a>00126 <span class="keywordflow">if</span> (n.is_even() &amp;&amp; m.is_even()) {
+<a name="l00127"></a>00127 <span class="comment">// GCD != 1, no inverse possible.</span>
+<a name="l00128"></a>00128 <span class="keywordflow">return</span> 0;
+<a name="l00129"></a>00129 } <span class="keywordflow">else</span> {
+<a name="l00130"></a>00130 gcd_core&lt;Bits, Secure, Alloc&gt; core(n, m);
+<a name="l00131"></a>00131 <span class="keywordflow">if</span> (core.u3 != BOOST_XINT_RAWINT(1)) {
+<a name="l00132"></a>00132 <span class="comment">// GCD != 1, no inverse possible.</span>
+<a name="l00133"></a>00133 <span class="keywordflow">return</span> 0;
+<a name="l00134"></a>00134 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> core.u1;
+<a name="l00135"></a>00135 }
+<a name="l00136"></a>00136 }
+<a name="l00137"></a>00137 }
+<a name="l00138"></a>00138
+<a name="l00139"></a>00139 } <span class="comment">// namespace detail</span>
+<a name="l00140"></a>00140 } <span class="comment">// namespace xint</span>
+<a name="l00141"></a>00141 } <span class="comment">// namespace boost</span>
+<a name="l00143"></a>00143 <span class="comment"></span>
+<a name="l00144"></a>00144 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_GCD_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -44,6 +44,15 @@
 <li>BOOST_XINT_BPARAMS
 : <a class="el" href="options_8hpp.html#ac2e7764d34cf12c1de4ae325d982d8e3">options.hpp</a>
 </li>
+<li>BOOST_XINT_CATCH
+: <a class="el" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">internals.hpp</a>
+</li>
+<li>BOOST_XINT_CATCH_BADALLOC
+: <a class="el" href="internals_8hpp.html#a376c1d9d0cc79d3d74539c6b9c38f304">internals.hpp</a>
+</li>
+<li>BOOST_XINT_CATCH_E
+: <a class="el" href="internals_8hpp.html#ab7e46f415e3d76f4d3b7d350bcbe3a85">internals.hpp</a>
+</li>
 <li>BOOST_XINT_CLASS_APARAMS
 : <a class="el" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">options.hpp</a>
 </li>
@@ -68,9 +77,12 @@
 <li>BOOST_XINT_RV_REF
 : <a class="el" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">basic_types_and_includes.hpp</a>
 </li>
+<li>BOOST_XINT_TRY
+: <a class="el" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">internals.hpp</a>
+</li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -44,6 +44,15 @@
 <li>BOOST_XINT_BPARAMS
 : <a class="el" href="options_8hpp.html#ac2e7764d34cf12c1de4ae325d982d8e3">options.hpp</a>
 </li>
+<li>BOOST_XINT_CATCH
+: <a class="el" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">internals.hpp</a>
+</li>
+<li>BOOST_XINT_CATCH_BADALLOC
+: <a class="el" href="internals_8hpp.html#a376c1d9d0cc79d3d74539c6b9c38f304">internals.hpp</a>
+</li>
+<li>BOOST_XINT_CATCH_E
+: <a class="el" href="internals_8hpp.html#ab7e46f415e3d76f4d3b7d350bcbe3a85">internals.hpp</a>
+</li>
 <li>BOOST_XINT_CLASS_APARAMS
 : <a class="el" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">options.hpp</a>
 </li>
@@ -68,9 +77,12 @@
 <li>BOOST_XINT_RV_REF
 : <a class="el" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">basic_types_and_includes.hpp</a>
 </li>
+<li>BOOST_XINT_TRY
+: <a class="el" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">internals.hpp</a>
+</li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -67,7 +67,7 @@
 <li>Added the safe-bool idiom, by request. </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -44,6 +44,7 @@
 <li><a class="el" href="zero.html">Zero and "Negative Zero"</a></li>
 <li><a class="el" href="primes.html">Generating Prime Numbers</a> (with example code)</li>
 <li><a class="el" href="exceptions.html">Exceptions and the <code>nothrow_integer</code> type</a> (with example code)</li>
+<li><a class="el" href="exception__handler.html">The <code>on_exception</code> Function And <code>-fno-exceptions</code> Support</a></li>
 <li><a class="el" href="random.html">The XInt Random Number System</a></li>
 <li><a class="el" href="threadsafe.html">The <code>threadsafe</code> Template Parameter</a></li>
 </ul>
@@ -62,7 +63,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -241,9 +241,9 @@
 <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS, <span class="keyword">typename</span> N&gt; \
     rtype op(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> N n2) { \
         <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \
- <span class="keywordflow">try</span> { \
+ <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> { \
                 <span class="keywordflow">return</span> op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \
- } <span class="keywordflow">catch</span> (std::exception&amp;) { \
+ } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> { \
                 <span class="keywordflow">return</span> rtype(0); \
             } \
         } <span class="keywordflow">else</span> { \
@@ -254,9 +254,9 @@
     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> N, BOOST_XINT_CLASS_APARAMS&gt; \
     rtype op(<span class="keyword">const</span> N n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2) { \
         <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \
- <span class="keywordflow">try</span> { \
+ <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> { \
                 <span class="keywordflow">return</span> op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \
- } <span class="keywordflow">catch</span> (std::exception&amp;) { \
+ } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> { \
                 <span class="keywordflow">return</span> rtype(0); \
             } \
         } <span class="keywordflow">else</span> { \
@@ -266,7 +266,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#l02359">2359</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#l02360">2360</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -288,12 +288,12 @@
 
 <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#l02395">2395</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#l02396">2396</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -208,13 +208,13 @@
 <a name="l00243"></a>00243 <span class="keywordtype">bool</span> force_thread_safety)
 <a name="l00244"></a>00244 {
 <a name="l00245"></a>00245 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00246"></a>00246 <span class="keywordflow">try</span> {
+<a name="l00246"></a>00246 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
 <a name="l00247"></a>00247 data = b.data;
 <a name="l00248"></a>00248 <span class="keywordflow">if</span> (!data.is_nan()) {
 <a name="l00249"></a>00249 <span class="keywordflow">if</span> (force_thread_safety &amp;&amp; Threadsafe == <span class="keyword">false</span>)
 <a name="l00250"></a>00250 data.make_unique();
 <a name="l00251"></a>00251 }
-<a name="l00252"></a>00252 } <span class="keywordflow">catch</span> (std::exception&amp;) {
+<a name="l00252"></a>00252 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
 <a name="l00253"></a>00253 data.make_nan();
 <a name="l00254"></a>00254 }
 <a name="l00255"></a>00255 } <span class="keywordflow">else</span> {
@@ -227,7 +227,7 @@
 <a name="l00263"></a>00263 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
 <a name="l00264"></a>00264 <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&lt;BOOST_XINT_APARAMS&gt;::integer_t</a>(<span class="keyword">const</span> charT *str, std::size_t base) {
 <a name="l00265"></a>00265 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00266"></a>00266 <span class="keywordflow">try</span> {
+<a name="l00266"></a>00266 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
 <a name="l00267"></a>00267 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; tnan = detail::nan_text&lt;charT&gt;();
 <a name="l00268"></a>00268 <span class="keywordflow">if</span> (str[0] == tnan[0] &amp;&amp; std::basic_string&lt;charT&gt;(str) == tnan) {
 <a name="l00269"></a>00269 data.make_nan();
@@ -235,7 +235,7 @@
 <a name="l00271"></a>00271 data.from_string(str, base);
 <a name="l00272"></a>00272 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
 <a name="l00273"></a>00273 }
-<a name="l00274"></a>00274 } <span class="keywordflow">catch</span> (std::exception&amp;) {
+<a name="l00274"></a>00274 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
 <a name="l00275"></a>00275 data.make_nan();
 <a name="l00276"></a>00276 }
 <a name="l00277"></a>00277 } <span class="keywordflow">else</span> {
@@ -250,7 +250,7 @@
 <a name="l00314"></a>00314 std::size_t base)
 <a name="l00315"></a>00315 {
 <a name="l00316"></a>00316 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00317"></a>00317 <span class="keywordflow">try</span> {
+<a name="l00317"></a>00317 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
 <a name="l00318"></a>00318 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; tnan = detail::nan_text&lt;charT&gt;();
 <a name="l00319"></a>00319 <span class="keywordflow">if</span> (str[0] == tnan[0]) {
 <a name="l00320"></a>00320 std::basic_string&lt;charT&gt; s(str);
@@ -262,7 +262,7 @@
 <a name="l00326"></a>00326 }
 <a name="l00327"></a>00327 data.from_string(str, endptr, base);
 <a name="l00328"></a>00328 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00329"></a>00329 } <span class="keywordflow">catch</span> (std::exception&amp;) {
+<a name="l00329"></a>00329 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
 <a name="l00330"></a>00330 data.make_nan();
 <a name="l00331"></a>00331 }
 <a name="l00332"></a>00332 } <span class="keywordflow">else</span> {
@@ -277,13 +277,13 @@
 <a name="l00365"></a>00365 allocT&gt;&amp; str, std::size_t base)
 <a name="l00366"></a>00366 {
 <a name="l00367"></a>00367 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00368"></a>00368 <span class="keywordflow">try</span> {
+<a name="l00368"></a>00368 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
 <a name="l00369"></a>00369 <span class="keywordflow">if</span> (str == detail::nan_text&lt;charT&gt;()) data.make_nan();
 <a name="l00370"></a>00370 <span class="keywordflow">else</span> {
 <a name="l00371"></a>00371 data.from_string(str, base);
 <a name="l00372"></a>00372 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
 <a name="l00373"></a>00373 }
-<a name="l00374"></a>00374 } <span class="keywordflow">catch</span> (std::exception&amp;) {
+<a name="l00374"></a>00374 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
 <a name="l00375"></a>00375 data.make_nan();
 <a name="l00376"></a>00376 }
 <a name="l00377"></a>00377 } <span class="keywordflow">else</span> {
@@ -296,9 +296,9 @@
 <a name="l00405"></a>00405 <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&lt;BOOST_XINT_APARAMS&gt;::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#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits)
 <a name="l00406"></a>00406 {
 <a name="l00407"></a>00407 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00408"></a>00408 <span class="keywordflow">try</span> {
+<a name="l00408"></a>00408 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
 <a name="l00409"></a>00409 data.from_binary(b, bits);
-<a name="l00410"></a>00410 } <span class="keywordflow">catch</span> (std::exception&amp;) {
+<a name="l00410"></a>00410 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
 <a name="l00411"></a>00411 data.make_nan();
 <a name="l00412"></a>00412 }
 <a name="l00413"></a>00413 } <span class="keywordflow">else</span> {
@@ -312,7 +312,7 @@
 <a name="l00433"></a>00433 <span class="keywordtype">bool</span> force_thread_safety)
 <a name="l00434"></a>00434 {
 <a name="l00435"></a>00435 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00436"></a>00436 <span class="keywordflow">try</span> {
+<a name="l00436"></a>00436 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
 <a name="l00437"></a>00437 <span class="keywordflow">if</span> (b.is_nan()) {
 <a name="l00438"></a>00438 data.make_nan();
 <a name="l00439"></a>00439 } <span class="keywordflow">else</span> {
@@ -323,1583 +323,1584 @@
 <a name="l00444"></a>00444 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
 <a name="l00445"></a>00445 }
 <a name="l00446"></a>00446 }
-<a name="l00447"></a>00447 } <span class="keywordflow">catch</span> (std::exception&amp;) {
+<a name="l00447"></a>00447 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
 <a name="l00448"></a>00448 data.make_nan();
 <a name="l00449"></a>00449 }
 <a name="l00450"></a>00450 } <span class="keywordflow">else</span> {
-<a name="l00451"></a>00451 <span class="keywordflow">if</span> (b._data().is_nan()) <span class="keywordflow">throw</span> exceptions::not_a_number();
-<a name="l00452"></a>00452 data = b._data();
-<a name="l00453"></a>00453 <span class="keywordflow">if</span> (force_thread_safety &amp;&amp; Threadsafe == <span class="keyword">false</span>) data.make_unique();
-<a name="l00454"></a>00454 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00455"></a>00455 }
-<a name="l00456"></a>00456 }
-<a name="l00457"></a>00457
-<a name="l00470"></a>00470 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00471"></a>00471 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Type&gt; <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&lt;BOOST_XINT_APARAMS&gt;::integer_t</a>(<span class="keyword">const</span> Type n,
-<a name="l00472"></a>00472 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;Type&gt; &gt;::type*)
-<a name="l00473"></a>00473 {
-<a name="l00474"></a>00474 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00475"></a>00475 <span class="keywordflow">try</span> {
-<a name="l00476"></a>00476 <span class="keywordflow">if</span> (std::numeric_limits&lt;Type&gt;::is_signed) {
-<a name="l00477"></a>00477 data.set_signed(n);
-<a name="l00478"></a>00478 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00479"></a>00479 } <span class="keywordflow">else</span> data.set_unsigned(n);
-<a name="l00480"></a>00480 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00481"></a>00481 data.make_nan();
-<a name="l00482"></a>00482 }
-<a name="l00483"></a>00483 } <span class="keywordflow">else</span> {
-<a name="l00484"></a>00484 <span class="keywordflow">if</span> (std::numeric_limits&lt;Type&gt;::is_signed) {
-<a name="l00485"></a>00485 data.set_signed(n);
-<a name="l00486"></a>00486 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00487"></a>00487 } <span class="keywordflow">else</span> data.set_unsigned(n);
-<a name="l00488"></a>00488 }
-<a name="l00489"></a>00489 }
-<a name="l00490"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9">00490</a>
-<a name="l00491"></a>00491 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00492"></a>00492 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9">integer_t&lt;BOOST_XINT_APARAMS&gt;::</a>
-<a name="l00493"></a>00493 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9"> operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(type) c)
-<a name="l00494"></a>00494 {
-<a name="l00495"></a>00495 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00496"></a>00496 <span class="keywordflow">if</span> (c._data().is_nan()) data.make_nan();
-<a name="l00497"></a>00497 <span class="keywordflow">else</span> {
-<a name="l00498"></a>00498 <span class="keywordflow">try</span> {
-<a name="l00499"></a>00499 data = c.data;
-<a name="l00500"></a>00500 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00501"></a>00501 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00502"></a>00502 data.make_nan();
-<a name="l00503"></a>00503 }
-<a name="l00504"></a>00504 }
-<a name="l00505"></a>00505 } <span class="keywordflow">else</span> {
-<a name="l00506"></a>00506 data = c.data;
-<a name="l00507"></a>00507 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00508"></a>00508 }
-<a name="l00509"></a>00509 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00510"></a>00510 }
-<a name="l00511"></a>00511
-<a name="l00512"></a>00512 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn&#39;t really exist, this is here for docs</span>
-<a name="l00513"></a>00513 <span class="preprocessor"></span>
-<a name="l00529"></a>00529 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00530"></a>00530 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7553f83abb87e24c0448f4c7f191bdac" title="The Bitwise Ones Complement (i.e. bitwise NOT) operator.">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator~</a>() <span class="keyword">const</span>;
-<a name="l00531"></a>00531 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00532"></a>00532 <span class="preprocessor"></span>
-<a name="l00539"></a>00539 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00540"></a>00540 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#aae82da97e52646d4fe5dbc08ddd60d3f" title="Return the additive inverse of an integer.">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator-</a>()<span class="keyword"> const </span>{
-<a name="l00541"></a>00541 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00542"></a>00542 <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="l00543"></a>00543 <span class="keywordflow">try</span> {
-<a name="l00544"></a>00544 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> r(*<span class="keyword">this</span>);
-<a name="l00545"></a>00545 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00546"></a>00546 r.data = -r.data;
-<a name="l00547"></a>00547 <span class="keywordflow">if</span> (!Signed &amp;&amp; r.data.negative) r._fix_negative_unsigned();
-<a name="l00548"></a>00548 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00549"></a>00549 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00550"></a>00550 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l00551"></a>00551 }
-<a name="l00552"></a>00552 } <span class="keywordflow">else</span> {
-<a name="l00553"></a>00553 integer_t&lt;BOOST_XINT_APARAMS&gt; 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">if</span> (!Signed &amp;&amp; r.data.negative) r._fix_negative_unsigned();
-<a name="l00557"></a>00557 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00558"></a>00558 }
-<a name="l00559"></a>00559 }
-<a name="l00560"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ad4428b8fa904a3147ffc3467aa624836">00560</a>
-<a name="l00562"></a>00562 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00563"></a>00563 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ad4428b8fa904a3147ffc3467aa624836">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator+=</a>(<span class="keyword">const</span>
-<a name="l00564"></a>00564 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
-<a name="l00565"></a>00565 {
-<a name="l00566"></a>00566 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00567"></a>00567 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00568"></a>00568 <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="l00569"></a>00569 <span class="keywordflow">try</span> {
-<a name="l00570"></a>00570 data += b.data;
-<a name="l00571"></a>00571 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00572"></a>00572 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00573"></a>00573 data.make_nan();
-<a name="l00574"></a>00574 }
-<a name="l00575"></a>00575 }
-<a name="l00576"></a>00576 } <span class="keywordflow">else</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 }
-<a name="l00580"></a>00580 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00581"></a>00581 }
-<a name="l00582"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a9042675d3fa1c93447b0005d426cfa86">00582</a>
-<a name="l00584"></a>00584 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00585"></a>00585 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a9042675d3fa1c93447b0005d426cfa86">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator-=</a>(<span class="keyword">const</span>
-<a name="l00586"></a>00586 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
-<a name="l00587"></a>00587 {
-<a name="l00588"></a>00588 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00589"></a>00589 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00590"></a>00590 <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="l00591"></a>00591 <span class="keywordflow">try</span> {
-<a name="l00592"></a>00592 data -= b.data;
-<a name="l00593"></a>00593 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00594"></a>00594 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00595"></a>00595 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00596"></a>00596 data.make_nan();
-<a name="l00597"></a>00597 }
-<a name="l00598"></a>00598 }
-<a name="l00599"></a>00599 } <span class="keywordflow">else</span> {
-<a name="l00600"></a>00600 data -= b.data;
-<a name="l00601"></a>00601 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00602"></a>00602 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00603"></a>00603 }
-<a name="l00604"></a>00604 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00605"></a>00605 }
-<a name="l00606"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a8a3e75f529dcaaff153f2c5623b49cc8">00606</a>
-<a name="l00608"></a>00608 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00609"></a>00609 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8a3e75f529dcaaff153f2c5623b49cc8">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator*=</a>(<span class="keyword">const</span>
-<a name="l00610"></a>00610 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
-<a name="l00611"></a>00611 {
-<a name="l00612"></a>00612 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00613"></a>00613 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00614"></a>00614 <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="l00615"></a>00615 <span class="keywordflow">try</span> {
-<a name="l00616"></a>00616 data *= b.data;
-<a name="l00617"></a>00617 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00618"></a>00618 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00619"></a>00619 data.make_nan();
-<a name="l00620"></a>00620 }
-<a name="l00621"></a>00621 }
-<a name="l00622"></a>00622 } <span class="keywordflow">else</span> {
-<a name="l00623"></a>00623 data *= b.data;
-<a name="l00624"></a>00624 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00625"></a>00625 }
-<a name="l00626"></a>00626 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00627"></a>00627 }
-<a name="l00628"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a4bf7befde3cb5eff8e6e84b290c0ce50">00628</a>
-<a name="l00630"></a>00630 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00631"></a>00631 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a4bf7befde3cb5eff8e6e84b290c0ce50">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator/=</a>(<span class="keyword">const</span>
-<a name="l00632"></a>00632 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
-<a name="l00633"></a>00633 {
-<a name="l00634"></a>00634 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00635"></a>00635 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00636"></a>00636 <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="l00637"></a>00637 <span class="keywordflow">try</span> {
-<a name="l00638"></a>00638 data /= b.data;
-<a name="l00639"></a>00639 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00640"></a>00640 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00641"></a>00641 data.make_nan();
-<a name="l00642"></a>00642 }
-<a name="l00643"></a>00643 }
-<a name="l00644"></a>00644 } <span class="keywordflow">else</span> {
-<a name="l00645"></a>00645 data /= b.data;
-<a name="l00646"></a>00646 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00647"></a>00647 }
-<a name="l00648"></a>00648 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00649"></a>00649 }
-<a name="l00650"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">00650</a>
-<a name="l00652"></a>00652 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00653"></a>00653 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator%=</a>(<span class="keyword">const</span>
-<a name="l00654"></a>00654 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
-<a name="l00655"></a>00655 {
-<a name="l00656"></a>00656 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00657"></a>00657 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00658"></a>00658 <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="l00659"></a>00659 <span class="keywordflow">try</span> {
-<a name="l00660"></a>00660 data %= b.data;
-<a name="l00661"></a>00661 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00662"></a>00662 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00663"></a>00663 data.make_nan();
-<a name="l00664"></a>00664 }
-<a name="l00665"></a>00665 }
-<a name="l00666"></a>00666 } <span class="keywordflow">else</span> {
-<a name="l00667"></a>00667 data %= b.data;
-<a name="l00668"></a>00668 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00669"></a>00669 }
-<a name="l00670"></a>00670 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00671"></a>00671 }
-<a name="l00672"></a>00672
-<a name="l00677"></a>00677 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00678"></a>00678 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a181f8d37a64f300f92e860391b024d47">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator++</a>() {
-<a name="l00679"></a>00679 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00680"></a>00680 <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="l00681"></a>00681 <span class="keywordflow">try</span> {
-<a name="l00682"></a>00682 ++data;
-<a name="l00683"></a>00683 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00684"></a>00684 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00685"></a>00685 data.make_nan();
-<a name="l00686"></a>00686 }
-<a name="l00687"></a>00687 }
-<a name="l00688"></a>00688 } <span class="keywordflow">else</span> {
-<a name="l00689"></a>00689 ++data;
-<a name="l00690"></a>00690 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00691"></a>00691 }
-<a name="l00692"></a>00692 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00693"></a>00693 }
-<a name="l00694"></a>00694
-<a name="l00699"></a>00699 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00700"></a>00700 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a56da9c00309b56a53b267ef477e80634">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator--</a>() {
-<a name="l00701"></a>00701 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00702"></a>00702 <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="l00703"></a>00703 <span class="keywordflow">try</span> {
-<a name="l00704"></a>00704 --data;
-<a name="l00705"></a>00705 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00706"></a>00706 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00707"></a>00707 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00708"></a>00708 data.make_nan();
-<a name="l00709"></a>00709 }
-<a name="l00710"></a>00710 }
-<a name="l00711"></a>00711 } <span class="keywordflow">else</span> {
-<a name="l00712"></a>00712 --data;
-<a name="l00713"></a>00713 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00714"></a>00714 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00715"></a>00715 }
-<a name="l00716"></a>00716 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00717"></a>00717 }
-<a name="l00718"></a>00718
-<a name="l00726"></a>00726 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00727"></a>00727 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a181f8d37a64f300f92e860391b024d47">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator++</a>(<span class="keywordtype">int</span>) {
-<a name="l00728"></a>00728 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00729"></a>00729 <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="l00730"></a>00730 <span class="keywordflow">try</span> {
-<a name="l00731"></a>00731 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data++);
-<a name="l00732"></a>00732 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00733"></a>00733 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00734"></a>00734 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00735"></a>00735 data.make_nan();
-<a name="l00736"></a>00736 }
-<a name="l00737"></a>00737 } <span class="keywordflow">else</span> {
-<a name="l00738"></a>00738 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data++);
-<a name="l00739"></a>00739 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00740"></a>00740 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00741"></a>00741 }
-<a name="l00742"></a>00742 }
-<a name="l00743"></a>00743
-<a name="l00751"></a>00751 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00752"></a>00752 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a56da9c00309b56a53b267ef477e80634">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator--</a>(<span class="keywordtype">int</span>) {
-<a name="l00753"></a>00753 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00754"></a>00754 <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="l00755"></a>00755 <span class="keywordflow">try</span> {
-<a name="l00756"></a>00756 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data--);
-<a name="l00757"></a>00757 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00758"></a>00758 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00759"></a>00759 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00760"></a>00760 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00761"></a>00761 data.make_nan();
-<a name="l00762"></a>00762 }
-<a name="l00763"></a>00763 } <span class="keywordflow">else</span> {
-<a name="l00764"></a>00764 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data--);
-<a name="l00765"></a>00765 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00766"></a>00766 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
-<a name="l00767"></a>00767 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00768"></a>00768 }
-<a name="l00769"></a>00769 }
-<a name="l00770"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a61e627aa932085a4bd0f7df6686f0425">00770</a>
-<a name="l00772"></a>00772 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00773"></a>00773 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a61e627aa932085a4bd0f7df6686f0425">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&amp;=</a>(<span class="keyword">const</span>
-<a name="l00774"></a>00774 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> n)
-<a name="l00775"></a>00775 {
-<a name="l00776"></a>00776 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00777"></a>00777 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
-<a name="l00778"></a>00778 <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="l00779"></a>00779 <span class="keywordflow">try</span> {
-<a name="l00780"></a>00780 data &amp;= n.data;
-<a name="l00781"></a>00781 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00782"></a>00782 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00783"></a>00783 data.make_nan();
-<a name="l00784"></a>00784 }
-<a name="l00785"></a>00785 }
-<a name="l00786"></a>00786 } <span class="keywordflow">else</span> {
-<a name="l00787"></a>00787 data &amp;= n.data;
-<a name="l00788"></a>00788 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00789"></a>00789 }
-<a name="l00790"></a>00790 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00791"></a>00791 }
-<a name="l00792"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a1e10bc51f7231535c85f71aee54e9983">00792</a>
-<a name="l00794"></a>00794 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00795"></a>00795 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a1e10bc51f7231535c85f71aee54e9983">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator|=</a>(<span class="keyword">const</span>
-<a name="l00796"></a>00796 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> n)
-<a name="l00797"></a>00797 {
-<a name="l00798"></a>00798 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00799"></a>00799 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
-<a name="l00800"></a>00800 <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="l00801"></a>00801 <span class="keywordflow">try</span> {
-<a name="l00802"></a>00802 data |= n.data;
-<a name="l00803"></a>00803 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00804"></a>00804 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00805"></a>00805 data.make_nan();
-<a name="l00806"></a>00806 }
-<a name="l00807"></a>00807 }
-<a name="l00808"></a>00808 } <span class="keywordflow">else</span> {
-<a name="l00809"></a>00809 data |= n.data;
-<a name="l00810"></a>00810 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00811"></a>00811 }
-<a name="l00812"></a>00812 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00813"></a>00813 }
-<a name="l00814"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a3eb6e62883ab96fa12bf7f09914eeeaf">00814</a>
-<a name="l00816"></a>00816 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00817"></a>00817 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a3eb6e62883ab96fa12bf7f09914eeeaf">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator^=</a>(<span class="keyword">const</span>
-<a name="l00818"></a>00818 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> n)
-<a name="l00819"></a>00819 {
-<a name="l00820"></a>00820 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00821"></a>00821 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
-<a name="l00822"></a>00822 <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="l00823"></a>00823 <span class="keywordflow">try</span> {
-<a name="l00824"></a>00824 data ^= n.data;
-<a name="l00825"></a>00825 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00826"></a>00826 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00827"></a>00827 data.make_nan();
-<a name="l00828"></a>00828 }
-<a name="l00829"></a>00829 }
-<a name="l00830"></a>00830 } <span class="keywordflow">else</span> {
-<a name="l00831"></a>00831 data ^= n.data;
-<a name="l00832"></a>00832 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00833"></a>00833 }
-<a name="l00834"></a>00834 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00835"></a>00835 }
-<a name="l00836"></a>00836
-<a name="l00845"></a>00845 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00846"></a>00846 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>
-<a name="l00847"></a>00847 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a4ad69f2d49b7a5ca73181b168639ed49" title="Left-shift an integer by a specified number of bits.">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&lt;&lt;</a>(<a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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="l00848"></a>00848 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00849"></a>00849 <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="l00850"></a>00850 <span class="keywordflow">try</span> {
-<a name="l00851"></a>00851 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> r(data &lt;&lt; shift);
-<a name="l00852"></a>00852 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00853"></a>00853 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00854"></a>00854 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00855"></a>00855 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l00856"></a>00856 }
-<a name="l00857"></a>00857 } <span class="keywordflow">else</span> {
-<a name="l00858"></a>00858 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data &lt;&lt; shift);
-<a name="l00859"></a>00859 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00860"></a>00860 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00861"></a>00861 }
-<a name="l00862"></a>00862 }
-<a name="l00863"></a>00863
-<a name="l00872"></a>00872 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00873"></a>00873 integer_t&lt;BOOST_XINT_APARAMS&gt;
-<a name="l00874"></a>00874 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8e43feeaa7f1050942fb68d10d65bc62" title="Right-shift an integer by a specified number of bits.">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&gt;&gt;</a>(<a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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="l00875"></a>00875 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00876"></a>00876 <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="l00877"></a>00877 <span class="keywordflow">try</span> {
-<a name="l00878"></a>00878 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data &gt;&gt; shift);
-<a name="l00879"></a>00879 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00880"></a>00880 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00881"></a>00881 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00882"></a>00882 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l00883"></a>00883 }
-<a name="l00884"></a>00884 } <span class="keywordflow">else</span> {
-<a name="l00885"></a>00885 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data &gt;&gt; shift);
-<a name="l00886"></a>00886 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00887"></a>00887 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00888"></a>00888 }
-<a name="l00889"></a>00889 }
-<a name="l00890"></a>00890
-<a name="l00892"></a>00892 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00893"></a>00893 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp;
-<a name="l00894"></a>00894 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a1cb134ca3fdad8c6a73a1a23b6291f9d">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&lt;&lt;=</a>(<a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) {
-<a name="l00895"></a>00895 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00896"></a>00896 <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="l00897"></a>00897 <span class="keywordflow">try</span> {
-<a name="l00898"></a>00898 data &lt;&lt;= shift;
-<a name="l00899"></a>00899 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00900"></a>00900 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00901"></a>00901 data.make_nan();
-<a name="l00902"></a>00902 }
-<a name="l00903"></a>00903 }
-<a name="l00904"></a>00904 } <span class="keywordflow">else</span> {
-<a name="l00905"></a>00905 data &lt;&lt;= shift;
-<a name="l00906"></a>00906 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00907"></a>00907 }
-<a name="l00908"></a>00908 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00909"></a>00909 }
-<a name="l00910"></a>00910
-<a name="l00912"></a>00912 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00913"></a>00913 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp;
-<a name="l00914"></a>00914 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a5ac850673a52efdc33e036f02e556b65">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&gt;&gt;=</a>(<a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) {
-<a name="l00915"></a>00915 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00916"></a>00916 <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="l00917"></a>00917 <span class="keywordflow">try</span> {
-<a name="l00918"></a>00918 data &gt;&gt;= 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 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00921"></a>00921 data.make_nan();
-<a name="l00922"></a>00922 }
-<a name="l00923"></a>00923 }
-<a name="l00924"></a>00924 } <span class="keywordflow">else</span> {
-<a name="l00925"></a>00925 data &gt;&gt;= shift;
-<a name="l00926"></a>00926 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00927"></a>00927 }
-<a name="l00928"></a>00928 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00929"></a>00929 }
-<a name="l00930"></a>00930
-<a name="l00938"></a>00938 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00939"></a>00939 <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.">integer_t&lt;BOOST_XINT_APARAMS&gt;::is_odd</a>()<span class="keyword"> const </span>{
-<a name="l00940"></a>00940 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00941"></a>00941 <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="l00942"></a>00942 <span class="keywordflow">return</span> data.is_odd();
-<a name="l00943"></a>00943 } <span class="keywordflow">else</span> {
-<a name="l00944"></a>00944 <span class="keywordflow">return</span> data.is_odd();
-<a name="l00945"></a>00945 }
-<a name="l00946"></a>00946 }
-<a name="l00947"></a>00947
-<a name="l00955"></a>00955 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00956"></a>00956 <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.">integer_t&lt;BOOST_XINT_APARAMS&gt;::is_even</a>()<span class="keyword"> const </span>{
-<a name="l00957"></a>00957 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00958"></a>00958 <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="l00959"></a>00959 <span class="keywordflow">return</span> data.is_even();
-<a name="l00960"></a>00960 } <span class="keywordflow">else</span> {
-<a name="l00961"></a>00961 <span class="keywordflow">return</span> data.is_even();
-<a name="l00962"></a>00962 }
-<a name="l00963"></a>00963 }
-<a name="l00964"></a>00964
-<a name="l00965"></a>00965 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn&#39;t really exist, this is here for docs</span>
-<a name="l00966"></a>00966 <span class="preprocessor"></span>
-<a name="l00977"></a>00977 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00978"></a>00978 <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.">integer_t&lt;BOOST_XINT_APARAMS&gt;::is_nan</a>() <span class="keyword">const</span>;
-<a name="l00979"></a>00979 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00980"></a>00980 <span class="preprocessor"></span>
-<a name="l00992"></a>00992 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00993"></a>00993 <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3" title="Tests the sign of *this.">integer_t&lt;BOOST_XINT_APARAMS&gt;::sign</a>(<span class="keywordtype">bool</span> signed_zero)<span class="keyword"> const </span>{
-<a name="l00994"></a>00994 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00995"></a>00995 <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="l00996"></a>00996 <span class="keywordflow">try</span> {
-<a name="l00997"></a>00997 <span class="keywordflow">return</span> data.sign(signed_zero);
-<a name="l00998"></a>00998 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00999"></a>00999 <span class="keywordflow">return</span> 0;
-<a name="l01000"></a>01000 }
-<a name="l01001"></a>01001 } <span class="keywordflow">else</span> {
-<a name="l01002"></a>01002 <span class="keywordflow">return</span> data.sign(signed_zero);
-<a name="l01003"></a>01003 }
-<a name="l01004"></a>01004 }
-<a name="l01005"></a>01005
-<a name="l01013"></a>01013 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01014"></a>01014 <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.">integer_t&lt;BOOST_XINT_APARAMS&gt;::hex_digits</a>()<span class="keyword"> const </span>{
-<a name="l01015"></a>01015 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01016"></a>01016 <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="l01017"></a>01017 <span class="keywordflow">try</span> {
-<a name="l01018"></a>01018 <span class="keywordflow">return</span> data.hex_digits();
-<a name="l01019"></a>01019 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01020"></a>01020 <span class="keywordflow">return</span> 0;
-<a name="l01021"></a>01021 }
-<a name="l01022"></a>01022 } <span class="keywordflow">else</span> {
-<a name="l01023"></a>01023 <span class="keywordflow">return</span> data.hex_digits();
-<a name="l01024"></a>01024 }
-<a name="l01025"></a>01025 }
-<a name="l01026"></a>01026
-<a name="l01040"></a>01040 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01041"></a>01041 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952" title="Calculate the value of 2e">integer_t&lt;BOOST_XINT_APARAMS&gt;::pow2</a>(std::size_t
-<a name="l01042"></a>01042 exponent)
-<a name="l01043"></a>01043 {
-<a name="l01044"></a>01044 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01045"></a>01045 <span class="keywordflow">try</span> {
-<a name="l01046"></a>01046 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l01047"></a>01047 <a class="code" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
-<a name="l01048"></a>01048 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01049"></a>01049 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01050"></a>01050 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01051"></a>01051 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01052"></a>01052 }
-<a name="l01053"></a>01053 } <span class="keywordflow">else</span> {
-<a name="l01054"></a>01054 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l01055"></a>01055 <a class="code" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
-<a name="l01056"></a>01056 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01057"></a>01057 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01058"></a>01058 }
-<a name="l01059"></a>01059 }
-<a name="l01060"></a>01060
-<a name="l01074"></a>01074 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01075"></a>01075 integer_t&lt;BOOST_XINT_APARAMS&gt;
-<a name="l01076"></a>01076 <a class="code" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65" title="Calculate the value of n! ">integer_t&lt;BOOST_XINT_APARAMS&gt;::factorial</a>(std::size_t n) {
-<a name="l01077"></a>01077 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01078"></a>01078 <span class="keywordflow">try</span> {
-<a name="l01079"></a>01079 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l01080"></a>01080 <a class="code" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65" title="Calculate the value of n! ">detail::factorial</a>(r.data, n);
-<a name="l01081"></a>01081 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01082"></a>01082 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01083"></a>01083 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01084"></a>01084 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01085"></a>01085 }
-<a name="l01086"></a>01086 } <span class="keywordflow">else</span> {
-<a name="l01087"></a>01087 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l01088"></a>01088 <a class="code" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65" title="Calculate the value of n! ">detail::factorial</a>(r.data, n);
-<a name="l01089"></a>01089 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01090"></a>01090 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01091"></a>01091 }
-<a name="l01092"></a>01092 }
-<a name="l01093"></a>01093
-<a name="l01094"></a>01094 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn&#39;t really exist, this is here for docs</span>
-<a name="l01095"></a>01095 <span class="preprocessor"></span>
-<a name="l01107"></a>01107 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01108"></a>01108 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac2e125b88a17f8c4e4c0b760ee1e9962" title="Returns a Not-a-Number value, for types that support it.">integer_t&lt;BOOST_XINT_APARAMS&gt;::nan</a>();
-<a name="l01109"></a>01109 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l01110"></a>01110 <span class="preprocessor"></span>
-<a name="l01135"></a>01135 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01136"></a>01136 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt;
-<a name="l01137"></a>01137 integer_t&lt;BOOST_XINT_APARAMS&gt;<a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">integer_t&lt;BOOST_XINT_APARAMS&gt;::random_by_size</a>(Type&amp;
-<a name="l01138"></a>01138 gen, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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="l01139"></a>01139 can_be_negative)
-<a name="l01140"></a>01140 {
-<a name="l01141"></a>01141 <span class="keywordflow">if</span> (!Signed) can_be_negative = <span class="keyword">false</span>;
-<a name="l01142"></a>01142 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01143"></a>01143 <span class="keywordflow">try</span> {
-<a name="l01144"></a>01144 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen,
-<a name="l01145"></a>01145 size_in_bits, high_bit_on, low_bit_on, can_be_negative));
-<a name="l01146"></a>01146 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01147"></a>01147 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01148"></a>01148 }
-<a name="l01149"></a>01149 } <span class="keywordflow">else</span> {
-<a name="l01150"></a>01150 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen,
-<a name="l01151"></a>01151 size_in_bits, high_bit_on, low_bit_on, can_be_negative));
-<a name="l01152"></a>01152 }
-<a name="l01153"></a>01153 }
-<a name="l01154"></a>01154
-<a name="l01182"></a>01182 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01183"></a>01183 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt;
-<a name="l01184"></a>01184 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">integer_t&lt;BOOST_XINT_APARAMS&gt;::random_prime</a>(Type&amp;
-<a name="l01185"></a>01185 gen, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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="l01186"></a>01186 {
-<a name="l01187"></a>01187 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01188"></a>01188 <span class="keywordflow">try</span> {
-<a name="l01189"></a>01189 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen,
-<a name="l01190"></a>01190 size_in_bits, callback));
-<a name="l01191"></a>01191 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01192"></a>01192 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01193"></a>01193 }
-<a name="l01194"></a>01194 } <span class="keywordflow">else</span> {
-<a name="l01195"></a>01195 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen,
-<a name="l01196"></a>01196 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 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01218"></a>01218 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a331d95962aedbdb34f04ef373555dd8a" title="Returns the absolute value of an integer.">abs</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
-<a name="l01219"></a>01219 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01220"></a>01220 <span class="keywordflow">if</span> (n.is_nan())
-<a name="l01221"></a>01221 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01222"></a>01222 <span class="keywordflow">try</span> {
-<a name="l01223"></a>01223 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n._data().abs());
-<a name="l01224"></a>01224 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01225"></a>01225 r._make_unique();
-<a name="l01226"></a>01226 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01227"></a>01227 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01228"></a>01228 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01229"></a>01229 }
-<a name="l01230"></a>01230 } <span class="keywordflow">else</span> {
-<a name="l01231"></a>01231 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n._data().abs());
-<a name="l01232"></a>01232 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01233"></a>01233 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01234"></a>01234 }
-<a name="l01235"></a>01235 }
-<a name="l01236"></a>01236
-<a name="l01255"></a>01255 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01256"></a>01256 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(<span class="keyword">const</span>
-<a name="l01257"></a>01257 integer_t&lt;BOOST_XINT_APARAMS&gt; dividend, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;
-<a name="l01258"></a>01258 divisor)
-<a name="l01259"></a>01259 {
-<a name="l01260"></a>01260 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01261"></a>01261 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span> <span class="keyword">typename</span>
-<a name="l01262"></a>01262 integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t(detail::get_nan&lt;
-<a name="l01263"></a>01263 integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(), detail::get_nan&lt;
-<a name="l01264"></a>01264 integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;());
-<a name="l01265"></a>01265 <span class="keywordflow">try</span> {
-<a name="l01266"></a>01266 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::datatype::divide_t rr =
-<a name="l01267"></a>01267 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
-<a name="l01268"></a>01268 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t
-<a name="l01269"></a>01269 r(integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.quotient),
-<a name="l01270"></a>01270 integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.remainder));
-<a name="l01271"></a>01271 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01272"></a>01272 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01273"></a>01273 <span class="keywordflow">return</span> <span class="keyword">typename</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ade3856e01013fca6b126ad4336e2baa1">integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t</a>(
-<a name="l01274"></a>01274 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(),
-<a name="l01275"></a>01275 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;());
-<a name="l01276"></a>01276 }
-<a name="l01277"></a>01277 } <span class="keywordflow">else</span> {
-<a name="l01278"></a>01278 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::datatype::divide_t rr =
-<a name="l01279"></a>01279 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
-<a name="l01280"></a>01280 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t
-<a name="l01281"></a>01281 r(integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.quotient),
-<a name="l01282"></a>01282 integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.remainder));
-<a name="l01283"></a>01283 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01284"></a>01284 }
-<a name="l01285"></a>01285 }
-<a name="l01286"></a>01286
-<a name="l01299"></a>01299 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01300"></a>01300 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ae58734c3f93951819e43af9fff2b9496" title="Calculate the absolute difference between two integers.">difference</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l01301"></a>01301 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01302"></a>01302 {
-<a name="l01303"></a>01303 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::datatype rdata = n1._data() -
-<a name="l01304"></a>01304 n2._data();
-<a name="l01305"></a>01305 rdata.negative = <span class="keyword">false</span>;
-<a name="l01306"></a>01306 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(rdata);
-<a name="l01307"></a>01307 }
-<a name="l01309"></a>01309
-<a name="l01315"></a>01315
+<a name="l00451"></a>00451 <span class="keywordflow">if</span> (b._data().is_nan()) detail::exception_handler&lt;&gt;::call(__FILE__,
+<a name="l00452"></a>00452 __LINE__, exceptions::not_a_number());
+<a name="l00453"></a>00453 data = b._data();
+<a name="l00454"></a>00454 <span class="keywordflow">if</span> (force_thread_safety &amp;&amp; Threadsafe == <span class="keyword">false</span>) data.make_unique();
+<a name="l00455"></a>00455 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00456"></a>00456 }
+<a name="l00457"></a>00457 }
+<a name="l00458"></a>00458
+<a name="l00471"></a>00471 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00472"></a>00472 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Type&gt; <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&lt;BOOST_XINT_APARAMS&gt;::integer_t</a>(<span class="keyword">const</span> Type n,
+<a name="l00473"></a>00473 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;Type&gt; &gt;::type*)
+<a name="l00474"></a>00474 {
+<a name="l00475"></a>00475 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00476"></a>00476 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00477"></a>00477 <span class="keywordflow">if</span> (std::numeric_limits&lt;Type&gt;::is_signed) {
+<a name="l00478"></a>00478 data.set_signed(n);
+<a name="l00479"></a>00479 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00480"></a>00480 } <span class="keywordflow">else</span> data.set_unsigned(n);
+<a name="l00481"></a>00481 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00482"></a>00482 data.make_nan();
+<a name="l00483"></a>00483 }
+<a name="l00484"></a>00484 } <span class="keywordflow">else</span> {
+<a name="l00485"></a>00485 <span class="keywordflow">if</span> (std::numeric_limits&lt;Type&gt;::is_signed) {
+<a name="l00486"></a>00486 data.set_signed(n);
+<a name="l00487"></a>00487 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00488"></a>00488 } <span class="keywordflow">else</span> data.set_unsigned(n);
+<a name="l00489"></a>00489 }
+<a name="l00490"></a>00490 }
+<a name="l00491"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9">00491</a>
+<a name="l00492"></a>00492 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00493"></a>00493 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9">integer_t&lt;BOOST_XINT_APARAMS&gt;::</a>
+<a name="l00494"></a>00494 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9"> operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(type) c)
+<a name="l00495"></a>00495 {
+<a name="l00496"></a>00496 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00497"></a>00497 <span class="keywordflow">if</span> (c._data().is_nan()) data.make_nan();
+<a name="l00498"></a>00498 <span class="keywordflow">else</span> {
+<a name="l00499"></a>00499 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00500"></a>00500 data = c.data;
+<a name="l00501"></a>00501 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00502"></a>00502 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00503"></a>00503 data.make_nan();
+<a name="l00504"></a>00504 }
+<a name="l00505"></a>00505 }
+<a name="l00506"></a>00506 } <span class="keywordflow">else</span> {
+<a name="l00507"></a>00507 data = c.data;
+<a name="l00508"></a>00508 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00509"></a>00509 }
+<a name="l00510"></a>00510 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00511"></a>00511 }
+<a name="l00512"></a>00512
+<a name="l00513"></a>00513 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn&#39;t really exist, this is here for docs</span>
+<a name="l00514"></a>00514 <span class="preprocessor"></span>
+<a name="l00530"></a>00530 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00531"></a>00531 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7553f83abb87e24c0448f4c7f191bdac" title="The Bitwise Ones Complement (i.e. bitwise NOT) operator.">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator~</a>() <span class="keyword">const</span>;
+<a name="l00532"></a>00532 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00533"></a>00533 <span class="preprocessor"></span>
+<a name="l00540"></a>00540 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00541"></a>00541 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#aae82da97e52646d4fe5dbc08ddd60d3f" title="Return the additive inverse of an integer.">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator-</a>()<span class="keyword"> const </span>{
+<a name="l00542"></a>00542 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00543"></a>00543 <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="l00544"></a>00544 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00545"></a>00545 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> r(*<span class="keyword">this</span>);
+<a name="l00546"></a>00546 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00547"></a>00547 r.data = -r.data;
+<a name="l00548"></a>00548 <span class="keywordflow">if</span> (!Signed &amp;&amp; r.data.negative) r._fix_negative_unsigned();
+<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 class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00551"></a>00551 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l00552"></a>00552 }
+<a name="l00553"></a>00553 } <span class="keywordflow">else</span> {
+<a name="l00554"></a>00554 integer_t&lt;BOOST_XINT_APARAMS&gt; r(*<span class="keyword">this</span>);
+<a name="l00555"></a>00555 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00556"></a>00556 r.data = -r.data;
+<a name="l00557"></a>00557 <span class="keywordflow">if</span> (!Signed &amp;&amp; r.data.negative) r._fix_negative_unsigned();
+<a name="l00558"></a>00558 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00559"></a>00559 }
+<a name="l00560"></a>00560 }
+<a name="l00561"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ad4428b8fa904a3147ffc3467aa624836">00561</a>
+<a name="l00563"></a>00563 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00564"></a>00564 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ad4428b8fa904a3147ffc3467aa624836">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator+=</a>(<span class="keyword">const</span>
+<a name="l00565"></a>00565 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
+<a name="l00566"></a>00566 {
+<a name="l00567"></a>00567 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00568"></a>00568 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00569"></a>00569 <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="l00570"></a>00570 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00571"></a>00571 data += b.data;
+<a name="l00572"></a>00572 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00573"></a>00573 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00574"></a>00574 data.make_nan();
+<a name="l00575"></a>00575 }
+<a name="l00576"></a>00576 }
+<a name="l00577"></a>00577 } <span class="keywordflow">else</span> {
+<a name="l00578"></a>00578 data += b.data;
+<a name="l00579"></a>00579 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00580"></a>00580 }
+<a name="l00581"></a>00581 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00582"></a>00582 }
+<a name="l00583"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a9042675d3fa1c93447b0005d426cfa86">00583</a>
+<a name="l00585"></a>00585 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00586"></a>00586 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a9042675d3fa1c93447b0005d426cfa86">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator-=</a>(<span class="keyword">const</span>
+<a name="l00587"></a>00587 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
+<a name="l00588"></a>00588 {
+<a name="l00589"></a>00589 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00590"></a>00590 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00591"></a>00591 <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="l00592"></a>00592 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00593"></a>00593 data -= b.data;
+<a name="l00594"></a>00594 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00595"></a>00595 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00596"></a>00596 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00597"></a>00597 data.make_nan();
+<a name="l00598"></a>00598 }
+<a name="l00599"></a>00599 }
+<a name="l00600"></a>00600 } <span class="keywordflow">else</span> {
+<a name="l00601"></a>00601 data -= b.data;
+<a name="l00602"></a>00602 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00603"></a>00603 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00604"></a>00604 }
+<a name="l00605"></a>00605 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00606"></a>00606 }
+<a name="l00607"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a8a3e75f529dcaaff153f2c5623b49cc8">00607</a>
+<a name="l00609"></a>00609 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00610"></a>00610 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8a3e75f529dcaaff153f2c5623b49cc8">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator*=</a>(<span class="keyword">const</span>
+<a name="l00611"></a>00611 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
+<a name="l00612"></a>00612 {
+<a name="l00613"></a>00613 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00614"></a>00614 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00615"></a>00615 <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="l00616"></a>00616 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00620"></a>00620 data.make_nan();
+<a name="l00621"></a>00621 }
+<a name="l00622"></a>00622 }
+<a name="l00623"></a>00623 } <span class="keywordflow">else</span> {
+<a name="l00624"></a>00624 data *= b.data;
+<a name="l00625"></a>00625 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00626"></a>00626 }
+<a name="l00627"></a>00627 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00628"></a>00628 }
+<a name="l00629"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a4bf7befde3cb5eff8e6e84b290c0ce50">00629</a>
+<a name="l00631"></a>00631 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00632"></a>00632 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a4bf7befde3cb5eff8e6e84b290c0ce50">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator/=</a>(<span class="keyword">const</span>
+<a name="l00633"></a>00633 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
+<a name="l00634"></a>00634 {
+<a name="l00635"></a>00635 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00636"></a>00636 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00637"></a>00637 <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="l00638"></a>00638 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00642"></a>00642 data.make_nan();
+<a name="l00643"></a>00643 }
+<a name="l00644"></a>00644 }
+<a name="l00645"></a>00645 } <span class="keywordflow">else</span> {
+<a name="l00646"></a>00646 data /= b.data;
+<a name="l00647"></a>00647 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00648"></a>00648 }
+<a name="l00649"></a>00649 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00650"></a>00650 }
+<a name="l00651"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">00651</a>
+<a name="l00653"></a>00653 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00654"></a>00654 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator%=</a>(<span class="keyword">const</span>
+<a name="l00655"></a>00655 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> b)
+<a name="l00656"></a>00656 {
+<a name="l00657"></a>00657 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00658"></a>00658 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
+<a name="l00659"></a>00659 <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="l00660"></a>00660 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00664"></a>00664 data.make_nan();
+<a name="l00665"></a>00665 }
+<a name="l00666"></a>00666 }
+<a name="l00667"></a>00667 } <span class="keywordflow">else</span> {
+<a name="l00668"></a>00668 data %= b.data;
+<a name="l00669"></a>00669 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00670"></a>00670 }
+<a name="l00671"></a>00671 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00672"></a>00672 }
+<a name="l00673"></a>00673
+<a name="l00678"></a>00678 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00679"></a>00679 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a181f8d37a64f300f92e860391b024d47">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator++</a>() {
+<a name="l00680"></a>00680 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00681"></a>00681 <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="l00682"></a>00682 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00683"></a>00683 ++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 class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00686"></a>00686 data.make_nan();
+<a name="l00687"></a>00687 }
+<a name="l00688"></a>00688 }
+<a name="l00689"></a>00689 } <span class="keywordflow">else</span> {
+<a name="l00690"></a>00690 ++data;
+<a name="l00691"></a>00691 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00692"></a>00692 }
+<a name="l00693"></a>00693 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00694"></a>00694 }
+<a name="l00695"></a>00695
+<a name="l00700"></a>00700 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00701"></a>00701 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a56da9c00309b56a53b267ef477e80634">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator--</a>() {
+<a name="l00702"></a>00702 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00703"></a>00703 <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="l00704"></a>00704 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00708"></a>00708 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00709"></a>00709 data.make_nan();
+<a name="l00710"></a>00710 }
+<a name="l00711"></a>00711 }
+<a name="l00712"></a>00712 } <span class="keywordflow">else</span> {
+<a name="l00713"></a>00713 --data;
+<a name="l00714"></a>00714 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00715"></a>00715 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00716"></a>00716 }
+<a name="l00717"></a>00717 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00718"></a>00718 }
+<a name="l00719"></a>00719
+<a name="l00727"></a>00727 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00728"></a>00728 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a181f8d37a64f300f92e860391b024d47">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator++</a>(<span class="keywordtype">int</span>) {
+<a name="l00729"></a>00729 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00730"></a>00730 <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="l00731"></a>00731 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00732"></a>00732 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data++);
+<a name="l00733"></a>00733 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
+<a name="l00734"></a>00734 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00735"></a>00735 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00736"></a>00736 data.make_nan();
+<a name="l00737"></a>00737 }
+<a name="l00738"></a>00738 } <span class="keywordflow">else</span> {
+<a name="l00739"></a>00739 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data++);
+<a name="l00740"></a>00740 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
+<a name="l00741"></a>00741 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00742"></a>00742 }
+<a name="l00743"></a>00743 }
+<a name="l00744"></a>00744
+<a name="l00752"></a>00752 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00753"></a>00753 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a56da9c00309b56a53b267ef477e80634">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator--</a>(<span class="keywordtype">int</span>) {
+<a name="l00754"></a>00754 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00755"></a>00755 <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="l00756"></a>00756 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00757"></a>00757 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data--);
+<a name="l00758"></a>00758 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
+<a name="l00759"></a>00759 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00760"></a>00760 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00761"></a>00761 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00762"></a>00762 data.make_nan();
+<a name="l00763"></a>00763 }
+<a name="l00764"></a>00764 } <span class="keywordflow">else</span> {
+<a name="l00765"></a>00765 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data--);
+<a name="l00766"></a>00766 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
+<a name="l00767"></a>00767 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<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><a class="code" href="classboost_1_1xint_1_1integer__t.html#a61e627aa932085a4bd0f7df6686f0425">00771</a>
+<a name="l00773"></a>00773 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00774"></a>00774 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a61e627aa932085a4bd0f7df6686f0425">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&amp;=</a>(<span class="keyword">const</span>
+<a name="l00775"></a>00775 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00781"></a>00781 data &amp;= 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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 &amp;= 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><a class="code" href="classboost_1_1xint_1_1integer__t.html#a1e10bc51f7231535c85f71aee54e9983">00793</a>
+<a name="l00795"></a>00795 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00796"></a>00796 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a1e10bc51f7231535c85f71aee54e9983">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator|=</a>(<span class="keyword">const</span>
+<a name="l00797"></a>00797 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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><a class="code" href="classboost_1_1xint_1_1integer__t.html#a3eb6e62883ab96fa12bf7f09914eeeaf">00815</a>
+<a name="l00817"></a>00817 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00818"></a>00818 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a3eb6e62883ab96fa12bf7f09914eeeaf">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator^=</a>(<span class="keyword">const</span>
+<a name="l00819"></a>00819 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00847"></a>00847 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>
+<a name="l00848"></a>00848 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a4ad69f2d49b7a5ca73181b168639ed49" title="Left-shift an integer by a specified number of bits.">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&lt;&lt;</a>(<a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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="l00849"></a>00849 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00850"></a>00850 <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="l00851"></a>00851 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00852"></a>00852 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a> r(data &lt;&lt; shift);
+<a name="l00853"></a>00853 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00854"></a>00854 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00855"></a>00855 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00856"></a>00856 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l00857"></a>00857 }
+<a name="l00858"></a>00858 } <span class="keywordflow">else</span> {
+<a name="l00859"></a>00859 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data &lt;&lt; shift);
+<a name="l00860"></a>00860 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00861"></a>00861 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00862"></a>00862 }
+<a name="l00863"></a>00863 }
+<a name="l00864"></a>00864
+<a name="l00873"></a>00873 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00874"></a>00874 integer_t&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00875"></a>00875 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8e43feeaa7f1050942fb68d10d65bc62" title="Right-shift an integer by a specified number of bits.">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&gt;&gt;</a>(<a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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="l00876"></a>00876 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00877"></a>00877 <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="l00878"></a>00878 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00879"></a>00879 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data &gt;&gt; shift);
+<a name="l00880"></a>00880 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00881"></a>00881 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00882"></a>00882 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00883"></a>00883 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l00884"></a>00884 }
+<a name="l00885"></a>00885 } <span class="keywordflow">else</span> {
+<a name="l00886"></a>00886 integer_t&lt;BOOST_XINT_APARAMS&gt; r(data &gt;&gt; shift);
+<a name="l00887"></a>00887 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l00888"></a>00888 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00889"></a>00889 }
+<a name="l00890"></a>00890 }
+<a name="l00891"></a>00891
+<a name="l00893"></a>00893 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00894"></a>00894 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp;
+<a name="l00895"></a>00895 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a1cb134ca3fdad8c6a73a1a23b6291f9d">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&lt;&lt;=</a>(<a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> shift) {
+<a name="l00896"></a>00896 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l00897"></a>00897 <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="l00898"></a>00898 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00899"></a>00899 data &lt;&lt;= shift;
+<a name="l00900"></a>00900 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00901"></a>00901 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l00902"></a>00902 data.make_nan();
+<a name="l00903"></a>00903 }
+<a name="l00904"></a>00904 }
+<a name="l00905"></a>00905 } <span class="keywordflow">else</span> {
+<a name="l00906"></a>00906 data &lt;&lt;= shift;
+<a name="l00907"></a>00907 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
+<a name="l00908"></a>00908 }
+<a name="l00909"></a>00909 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00910"></a>00910 }
+<a name="l00911"></a>00911
+<a name="l00913"></a>00913 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00914"></a>00914 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp;
+<a name="l00915"></a>00915 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a5ac850673a52efdc33e036f02e556b65">integer_t&lt;BOOST_XINT_APARAMS&gt;::operator&gt;&gt;=</a>(<a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00919"></a>00919 data &gt;&gt;= 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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 &gt;&gt;= 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 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00940"></a>00940 <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.">integer_t&lt;BOOST_XINT_APARAMS&gt;::is_odd</a>()<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 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00957"></a>00957 <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.">integer_t&lt;BOOST_XINT_APARAMS&gt;::is_even</a>()<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="l00966"></a>00966 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn&#39;t really exist, this is here for docs</span>
+<a name="l00967"></a>00967 <span class="preprocessor"></span>
+<a name="l00978"></a>00978 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00979"></a>00979 <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.">integer_t&lt;BOOST_XINT_APARAMS&gt;::is_nan</a>() <span class="keyword">const</span>;
+<a name="l00980"></a>00980 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00981"></a>00981 <span class="preprocessor"></span>
+<a name="l00993"></a>00993 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00994"></a>00994 <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3" title="Tests the sign of *this.">integer_t&lt;BOOST_XINT_APARAMS&gt;::sign</a>(<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l00998"></a>00998 <span class="keywordflow">return</span> data.sign(signed_zero);
+<a name="l00999"></a>00999 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01015"></a>01015 <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.">integer_t&lt;BOOST_XINT_APARAMS&gt;::hex_digits</a>()<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 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01019"></a>01019 <span class="keywordflow">return</span> data.hex_digits();
+<a name="l01020"></a>01020 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<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 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01042"></a>01042 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952" title="Calculate the value of 2e">integer_t&lt;BOOST_XINT_APARAMS&gt;::pow2</a>(std::size_t
+<a name="l01043"></a>01043 exponent)
+<a name="l01044"></a>01044 {
+<a name="l01045"></a>01045 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01046"></a>01046 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01047"></a>01047 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l01048"></a>01048 <a class="code" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
+<a name="l01049"></a>01049 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01050"></a>01050 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01051"></a>01051 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01052"></a>01052 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01053"></a>01053 }
+<a name="l01054"></a>01054 } <span class="keywordflow">else</span> {
+<a name="l01055"></a>01055 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l01056"></a>01056 <a class="code" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
+<a name="l01057"></a>01057 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01058"></a>01058 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01059"></a>01059 }
+<a name="l01060"></a>01060 }
+<a name="l01061"></a>01061
+<a name="l01075"></a>01075 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01076"></a>01076 integer_t&lt;BOOST_XINT_APARAMS&gt;
+<a name="l01077"></a>01077 <a class="code" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65" title="Calculate the value of n! ">integer_t&lt;BOOST_XINT_APARAMS&gt;::factorial</a>(std::size_t n) {
+<a name="l01078"></a>01078 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01079"></a>01079 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01080"></a>01080 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l01081"></a>01081 <a class="code" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65" title="Calculate the value of n! ">detail::factorial</a>(r.data, n);
+<a name="l01082"></a>01082 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01083"></a>01083 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01084"></a>01084 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01085"></a>01085 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01086"></a>01086 }
+<a name="l01087"></a>01087 } <span class="keywordflow">else</span> {
+<a name="l01088"></a>01088 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l01089"></a>01089 <a class="code" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65" 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 }
+<a name="l01093"></a>01093 }
+<a name="l01094"></a>01094
+<a name="l01095"></a>01095 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn&#39;t really exist, this is here for docs</span>
+<a name="l01096"></a>01096 <span class="preprocessor"></span>
+<a name="l01108"></a>01108 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01109"></a>01109 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac2e125b88a17f8c4e4c0b760ee1e9962" title="Returns a Not-a-Number value, for types that support it.">integer_t&lt;BOOST_XINT_APARAMS&gt;::nan</a>();
+<a name="l01110"></a>01110 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l01111"></a>01111 <span class="preprocessor"></span>
+<a name="l01136"></a>01136 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01137"></a>01137 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt;
+<a name="l01138"></a>01138 integer_t&lt;BOOST_XINT_APARAMS&gt;<a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">integer_t&lt;BOOST_XINT_APARAMS&gt;::random_by_size</a>(Type&amp;
+<a name="l01139"></a>01139 gen, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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="l01140"></a>01140 can_be_negative)
+<a name="l01141"></a>01141 {
+<a name="l01142"></a>01142 <span class="keywordflow">if</span> (!Signed) can_be_negative = <span class="keyword">false</span>;
+<a name="l01143"></a>01143 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01144"></a>01144 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01145"></a>01145 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen,
+<a name="l01146"></a>01146 size_in_bits, high_bit_on, low_bit_on, can_be_negative));
+<a name="l01147"></a>01147 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01148"></a>01148 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01149"></a>01149 }
+<a name="l01150"></a>01150 } <span class="keywordflow">else</span> {
+<a name="l01151"></a>01151 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">datatype::random_by_size</a>(gen,
+<a name="l01152"></a>01152 size_in_bits, high_bit_on, low_bit_on, can_be_negative));
+<a name="l01153"></a>01153 }
+<a name="l01154"></a>01154 }
+<a name="l01155"></a>01155
+<a name="l01183"></a>01183 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01184"></a>01184 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt;
+<a name="l01185"></a>01185 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">integer_t&lt;BOOST_XINT_APARAMS&gt;::random_prime</a>(Type&amp;
+<a name="l01186"></a>01186 gen, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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="l01187"></a>01187 {
+<a name="l01188"></a>01188 <span class="keywordflow">if</span> (Nothrow) {
+<a name="l01189"></a>01189 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01190"></a>01190 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen,
+<a name="l01191"></a>01191 size_in_bits, callback));
+<a name="l01192"></a>01192 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01193"></a>01193 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<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> integer_t&lt;BOOST_XINT_APARAMS&gt;(<a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen,
+<a name="l01197"></a>01197 size_in_bits, callback));
+<a name="l01198"></a>01198 }
+<a name="l01199"></a>01199 }
+<a name="l01200"></a>01200
+<a name="l01202"></a>01202 <span class="comment">// Free function template definitions</span>
+<a name="l01208"></a>01208 <span class="comment"></span>
+<a name="l01209"></a>01209
+<a name="l01218"></a>01218 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01219"></a>01219 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a331d95962aedbdb34f04ef373555dd8a" title="Returns the absolute value of an integer.">abs</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
+<a name="l01220"></a>01220 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01221"></a>01221 <span class="keywordflow">if</span> (n.is_nan())
+<a name="l01222"></a>01222 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01223"></a>01223 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01224"></a>01224 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n._data().abs());
+<a name="l01225"></a>01225 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l01226"></a>01226 r._make_unique();
+<a name="l01227"></a>01227 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01228"></a>01228 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01229"></a>01229 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01230"></a>01230 }
+<a name="l01231"></a>01231 } <span class="keywordflow">else</span> {
+<a name="l01232"></a>01232 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n._data().abs());
+<a name="l01233"></a>01233 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01234"></a>01234 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01235"></a>01235 }
+<a name="l01236"></a>01236 }
+<a name="l01237"></a>01237
+<a name="l01256"></a>01256 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01257"></a>01257 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(<span class="keyword">const</span>
+<a name="l01258"></a>01258 integer_t&lt;BOOST_XINT_APARAMS&gt; dividend, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;
+<a name="l01259"></a>01259 divisor)
+<a name="l01260"></a>01260 {
+<a name="l01261"></a>01261 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01262"></a>01262 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span> <span class="keyword">typename</span>
+<a name="l01263"></a>01263 integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t(detail::get_nan&lt;
+<a name="l01264"></a>01264 integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(), detail::get_nan&lt;
+<a name="l01265"></a>01265 integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;());
+<a name="l01266"></a>01266 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01267"></a>01267 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::datatype::divide_t rr =
+<a name="l01268"></a>01268 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
+<a name="l01269"></a>01269 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t
+<a name="l01270"></a>01270 r(integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.quotient),
+<a name="l01271"></a>01271 integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.remainder));
+<a name="l01272"></a>01272 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01273"></a>01273 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01274"></a>01274 <span class="keywordflow">return</span> <span class="keyword">typename</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ade3856e01013fca6b126ad4336e2baa1">integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t</a>(
+<a name="l01275"></a>01275 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(),
+<a name="l01276"></a>01276 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;());
+<a name="l01277"></a>01277 }
+<a name="l01278"></a>01278 } <span class="keywordflow">else</span> {
+<a name="l01279"></a>01279 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::datatype::divide_t rr =
+<a name="l01280"></a>01280 <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
+<a name="l01281"></a>01281 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::divide_t
+<a name="l01282"></a>01282 r(integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.quotient),
+<a name="l01283"></a>01283 integer_t&lt;BOOST_XINT_APARAMS&gt;(rr.remainder));
+<a name="l01284"></a>01284 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01285"></a>01285 }
+<a name="l01286"></a>01286 }
+<a name="l01287"></a>01287
+<a name="l01300"></a>01300 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01301"></a>01301 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ae58734c3f93951819e43af9fff2b9496" title="Calculate the absolute difference between two integers.">difference</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
+<a name="l01302"></a>01302 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l01303"></a>01303 {
+<a name="l01304"></a>01304 <span class="keyword">typename</span> integer_t&lt;BOOST_XINT_APARAMS&gt;::datatype rdata = n1._data() -
+<a name="l01305"></a>01305 n2._data();
+<a name="l01306"></a>01306 rdata.negative = <span class="keyword">false</span>;
+<a name="l01307"></a>01307 <span class="keywordflow">return</span> integer_t&lt;BOOST_XINT_APARAMS&gt;(rdata);
+<a name="l01308"></a>01308 }
+<a name="l01310"></a>01310
 <a name="l01316"></a>01316
-<a name="l01328"></a>01328 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01329"></a>01329 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">square</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
-<a name="l01330"></a>01330 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01331"></a>01331 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01332"></a>01332 <span class="keywordflow">try</span> {
-<a name="l01333"></a>01333 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">detail::square</a>(n._data()));
-<a name="l01334"></a>01334 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01335"></a>01335 r._make_unique();
-<a name="l01336"></a>01336 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01337"></a>01337 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01338"></a>01338 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01339"></a>01339 }
-<a name="l01340"></a>01340 } <span class="keywordflow">else</span> {
-<a name="l01341"></a>01341 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">detail::square</a>(n._data()));
-<a name="l01342"></a>01342 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01343"></a>01343 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01344"></a>01344 }
-<a name="l01345"></a>01345 }
-<a name="l01346"></a>01346
-<a name="l01355"></a>01355 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01356"></a>01356 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <span class="keyword">const</span>
-<a name="l01357"></a>01357 integer_t&lt;BOOST_XINT_APARAMS&gt; e)
-<a name="l01358"></a>01358 {
-<a name="l01359"></a>01359 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01360"></a>01360 <span class="keywordflow">if</span> (n.is_nan() || e.is_nan())
-<a name="l01361"></a>01361 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01362"></a>01362 <span class="keywordflow">try</span> {
-<a name="l01363"></a>01363 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l01364"></a>01364 <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
-<a name="l01365"></a>01365 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01366"></a>01366 r._make_unique();
-<a name="l01367"></a>01367 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01368"></a>01368 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01369"></a>01369 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01370"></a>01370 }
-<a name="l01371"></a>01371 } <span class="keywordflow">else</span> {
-<a name="l01372"></a>01372 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l01373"></a>01373 <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
-<a name="l01374"></a>01374 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01375"></a>01375 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01376"></a>01376 }
-<a name="l01377"></a>01377 }
-<a name="l01378"></a>01378
-<a name="l01391"></a>01391 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01392"></a>01392 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n)
-<a name="l01393"></a>01393 {
-<a name="l01394"></a>01394 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01395"></a>01395 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01396"></a>01396 <span class="keywordflow">try</span> {
-<a name="l01397"></a>01397 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(n._data()));
-<a name="l01398"></a>01398 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01399"></a>01399 r._make_unique();
-<a name="l01400"></a>01400 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01401"></a>01401 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01402"></a>01402 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01403"></a>01403 }
-<a name="l01404"></a>01404 } <span class="keywordflow">else</span> {
-<a name="l01405"></a>01405 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(n._data()));
-<a name="l01406"></a>01406 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01407"></a>01407 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01408"></a>01408 }
-<a name="l01409"></a>01409 }
-<a name="l01411"></a>01411
-<a name="l01417"></a>01417
+<a name="l01317"></a>01317
+<a name="l01329"></a>01329 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01330"></a>01330 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">square</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
+<a name="l01331"></a>01331 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01332"></a>01332 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
+<a name="l01333"></a>01333 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01334"></a>01334 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">detail::square</a>(n._data()));
+<a name="l01335"></a>01335 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l01336"></a>01336 r._make_unique();
+<a name="l01337"></a>01337 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01338"></a>01338 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01339"></a>01339 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01340"></a>01340 }
+<a name="l01341"></a>01341 } <span class="keywordflow">else</span> {
+<a name="l01342"></a>01342 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">detail::square</a>(n._data()));
+<a name="l01343"></a>01343 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01344"></a>01344 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01345"></a>01345 }
+<a name="l01346"></a>01346 }
+<a name="l01347"></a>01347
+<a name="l01356"></a>01356 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01357"></a>01357 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <span class="keyword">const</span>
+<a name="l01358"></a>01358 integer_t&lt;BOOST_XINT_APARAMS&gt; e)
+<a name="l01359"></a>01359 {
+<a name="l01360"></a>01360 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01361"></a>01361 <span class="keywordflow">if</span> (n.is_nan() || e.is_nan())
+<a name="l01362"></a>01362 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01363"></a>01363 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01364"></a>01364 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l01365"></a>01365 <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
+<a name="l01366"></a>01366 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l01367"></a>01367 r._make_unique();
+<a name="l01368"></a>01368 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01369"></a>01369 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01370"></a>01370 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01371"></a>01371 }
+<a name="l01372"></a>01372 } <span class="keywordflow">else</span> {
+<a name="l01373"></a>01373 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l01374"></a>01374 <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
+<a name="l01375"></a>01375 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::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 }
+<a name="l01378"></a>01378 }
+<a name="l01379"></a>01379
+<a name="l01392"></a>01392 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01393"></a>01393 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n)
+<a name="l01394"></a>01394 {
+<a name="l01395"></a>01395 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01396"></a>01396 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
+<a name="l01397"></a>01397 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01398"></a>01398 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(n._data()));
+<a name="l01399"></a>01399 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l01400"></a>01400 r._make_unique();
+<a name="l01401"></a>01401 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01402"></a>01402 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01403"></a>01403 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01404"></a>01404 }
+<a name="l01405"></a>01405 } <span class="keywordflow">else</span> {
+<a name="l01406"></a>01406 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(n._data()));
+<a name="l01407"></a>01407 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01408"></a>01408 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01409"></a>01409 }
+<a name="l01410"></a>01410 }
+<a name="l01412"></a>01412
 <a name="l01418"></a>01418
-<a name="l01431"></a>01431 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01432"></a>01432 T <a class="code" href="namespaceboost_1_1xint.html#a9aa52eb4533b04c27329b3f6b7aa842b" title="Converts an xint::integer type to a built-in integer type.">to</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
-<a name="l01433"></a>01433 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01434"></a>01434 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> T(0);
-<a name="l01435"></a>01435 <span class="keywordflow">try</span> {
-<a name="l01436"></a>01436 <span class="keywordflow">return</span> to&lt;T&gt;(n._data());
-<a name="l01437"></a>01437 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01438"></a>01438 <span class="keywordflow">return</span> T(0);
-<a name="l01439"></a>01439 }
-<a name="l01440"></a>01440 } <span class="keywordflow">else</span> {
-<a name="l01441"></a>01441 <span class="keywordflow">return</span> to&lt;T&gt;(n._data());
-<a name="l01442"></a>01442 }
-<a name="l01443"></a>01443 }
-<a name="l01444"></a>01444
-<a name="l01467"></a>01467 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01468"></a>01468 std::basic_string&lt;charT&gt; <a class="code" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758" title="Creates a string representation of the specified integer.">to_stringtype</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01469"></a>01469 std::size_t base = 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
-<a name="l01470"></a>01470 {
-<a name="l01471"></a>01471 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01472"></a>01472 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> detail::nan_text&lt;charT&gt;();
-<a name="l01473"></a>01473 <span class="keywordflow">try</span> {
-<a name="l01474"></a>01474 <span class="keywordflow">return</span> detail::to_string&lt;charT&gt;(n._data(), base, uppercase);
-<a name="l01475"></a>01475 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01476"></a>01476 <span class="keywordflow">return</span> std::basic_string&lt;charT&gt;();
-<a name="l01477"></a>01477 }
-<a name="l01478"></a>01478 } <span class="keywordflow">else</span> {
-<a name="l01479"></a>01479 <span class="keywordflow">return</span> detail::to_string&lt;charT&gt;(n._data(), base, uppercase);
-<a name="l01480"></a>01480 }
-<a name="l01481"></a>01481 }
-<a name="l01482"></a>01482
-<a name="l01486"></a>01486 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01487"></a>01487 std::string <a class="code" href="namespaceboost_1_1xint.html#a2fb5a8cfac3e97a1641d424aac04a71f" title="A shorthand function that calls to_stringtype&amp;lt;char&amp;gt;.">to_string</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, std::size_t base =
-<a name="l01488"></a>01488 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
-<a name="l01489"></a>01489 {
-<a name="l01490"></a>01490 <span class="keywordflow">return</span> to_stringtype&lt;char&gt;(n, base, uppercase);
-<a name="l01491"></a>01491 }
-<a name="l01492"></a>01492
-<a name="l01496"></a>01496 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01497"></a>01497 std::wstring <a class="code" href="namespaceboost_1_1xint.html#a6f24b4e0dc6e6c5de02480f5fb352030" title="A shorthand function that calls to_stringtype&amp;lt;wchar_t&amp;gt;.">to_wstring</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, std::size_t base
-<a name="l01498"></a>01498 = 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
-<a name="l01499"></a>01499 {
-<a name="l01500"></a>01500 <span class="keywordflow">return</span> to_stringtype&lt;wchar_t&gt;(n, base, uppercase);
-<a name="l01501"></a>01501 }
-<a name="l01502"></a>01502
-<a name="l01530"></a>01530 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01531"></a>01531 <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#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits =
-<a name="l01532"></a>01532 0)
-<a name="l01533"></a>01533 {
-<a name="l01534"></a>01534 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01535"></a>01535 <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="l01536"></a>01536 <span class="keywordflow">try</span> {
-<a name="l01537"></a>01537 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
-<a name="l01538"></a>01538 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01539"></a>01539 <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="l01540"></a>01540 }
-<a name="l01541"></a>01541 } <span class="keywordflow">else</span> {
-<a name="l01542"></a>01542 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
-<a name="l01543"></a>01543 }
-<a name="l01544"></a>01544 }
-<a name="l01546"></a>01546
-<a name="l01549"></a>01549
-<a name="l01560"></a>01560 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01561"></a>01561 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01562"></a>01562 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01563"></a>01563 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01564"></a>01564 <span class="keywordflow">try</span> {
-<a name="l01565"></a>01565 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
-<a name="l01566"></a>01566 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01567"></a>01567 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01568"></a>01568 }
-<a name="l01569"></a>01569 } <span class="keywordflow">else</span> {
-<a name="l01570"></a>01570 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
-<a name="l01571"></a>01571 }
-<a name="l01572"></a>01572 }
-<a name="l01573"></a>01573
-<a name="l01583"></a>01583 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01584"></a>01584 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01585"></a>01585 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01586"></a>01586 <span class="keywordflow">if</span> (!n.is_nan()) {
-<a name="l01587"></a>01587 <span class="keywordflow">try</span> {
-<a name="l01588"></a>01588 <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
-<a name="l01589"></a>01589 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01590"></a>01590 <span class="comment">// Do nothing.</span>
-<a name="l01591"></a>01591 }
-<a name="l01592"></a>01592 }
-<a name="l01593"></a>01593 } <span class="keywordflow">else</span> {
-<a name="l01594"></a>01594 <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
-<a name="l01595"></a>01595 }
-<a name="l01596"></a>01596 }
-<a name="l01597"></a>01597
-<a name="l01607"></a>01607 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01608"></a>01608 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8" title="Sets a specific bit in an integer to zero.">clearbit</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01609"></a>01609 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01610"></a>01610 <span class="keywordflow">if</span> (!n.is_nan()) {
-<a name="l01611"></a>01611 <span class="keywordflow">try</span> {
-<a name="l01612"></a>01612 <a class="code" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
-<a name="l01613"></a>01613 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01614"></a>01614 <span class="comment">// Do nothing.</span>
-<a name="l01615"></a>01615 }
-<a name="l01616"></a>01616 }
-<a name="l01617"></a>01617 } <span class="keywordflow">else</span> {
-<a name="l01618"></a>01618 <a class="code" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
-<a name="l01619"></a>01619 }
-<a name="l01620"></a>01620 }
-<a name="l01621"></a>01621
-<a name="l01635"></a>01635 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01636"></a>01636 <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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#a8512b348c82472dca48edb63f2a1f0e7" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a>
-<a name="l01637"></a>01637 return_if_zero = 0)
-<a name="l01638"></a>01638 {
-<a name="l01639"></a>01639 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01640"></a>01640 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
-<a name="l01641"></a>01641 <span class="keywordflow">try</span> {
-<a name="l01642"></a>01642 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7" 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="l01643"></a>01643 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01644"></a>01644 <span class="keywordflow">return</span> return_if_zero;
-<a name="l01645"></a>01645 }
-<a name="l01646"></a>01646 } <span class="keywordflow">else</span> {
-<a name="l01647"></a>01647 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7" 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="l01648"></a>01648 }
-<a name="l01649"></a>01649 }
-<a name="l01650"></a>01650
-<a name="l01664"></a>01664 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01665"></a>01665 <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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#adee99f516c2480b2381f6c9b1a2abc6e" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a>
-<a name="l01666"></a>01666 return_if_zero = 0)
-<a name="l01667"></a>01667 {
-<a name="l01668"></a>01668 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01669"></a>01669 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
-<a name="l01670"></a>01670 <span class="keywordflow">try</span> {
-<a name="l01671"></a>01671 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e" 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="l01672"></a>01672 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01673"></a>01673 <span class="keywordflow">return</span> return_if_zero;
-<a name="l01674"></a>01674 }
-<a name="l01675"></a>01675 } <span class="keywordflow">else</span> {
-<a name="l01676"></a>01676 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e" 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="l01677"></a>01677 }
-<a name="l01678"></a>01678 }
-<a name="l01680"></a>01680
-<a name="l01689"></a>01689
+<a name="l01419"></a>01419
+<a name="l01432"></a>01432 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01433"></a>01433 T <a class="code" href="namespaceboost_1_1xint.html#a9aa52eb4533b04c27329b3f6b7aa842b" title="Converts an xint::integer type to a built-in integer type.">to</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
+<a name="l01434"></a>01434 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01435"></a>01435 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> T(0);
+<a name="l01436"></a>01436 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01437"></a>01437 <span class="keywordflow">return</span> to&lt;T&gt;(n._data());
+<a name="l01438"></a>01438 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01439"></a>01439 <span class="keywordflow">return</span> T(0);
+<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> to&lt;T&gt;(n._data());
+<a name="l01443"></a>01443 }
+<a name="l01444"></a>01444 }
+<a name="l01445"></a>01445
+<a name="l01468"></a>01468 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01469"></a>01469 std::basic_string&lt;charT&gt; <a class="code" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758" title="Creates a string representation of the specified integer.">to_stringtype</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
+<a name="l01470"></a>01470 std::size_t base = 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
+<a name="l01471"></a>01471 {
+<a name="l01472"></a>01472 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01473"></a>01473 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> detail::nan_text&lt;charT&gt;();
+<a name="l01474"></a>01474 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01475"></a>01475 <span class="keywordflow">return</span> detail::to_string&lt;charT&gt;(n._data(), base, uppercase);
+<a name="l01476"></a>01476 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01477"></a>01477 <span class="keywordflow">return</span> std::basic_string&lt;charT&gt;();
+<a name="l01478"></a>01478 }
+<a name="l01479"></a>01479 } <span class="keywordflow">else</span> {
+<a name="l01480"></a>01480 <span class="keywordflow">return</span> detail::to_string&lt;charT&gt;(n._data(), base, uppercase);
+<a name="l01481"></a>01481 }
+<a name="l01482"></a>01482 }
+<a name="l01483"></a>01483
+<a name="l01487"></a>01487 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01488"></a>01488 std::string <a class="code" href="namespaceboost_1_1xint.html#a2fb5a8cfac3e97a1641d424aac04a71f" title="A shorthand function that calls to_stringtype&amp;lt;char&amp;gt;.">to_string</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, std::size_t base =
+<a name="l01489"></a>01489 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
+<a name="l01490"></a>01490 {
+<a name="l01491"></a>01491 <span class="keywordflow">return</span> to_stringtype&lt;char&gt;(n, base, uppercase);
+<a name="l01492"></a>01492 }
+<a name="l01493"></a>01493
+<a name="l01497"></a>01497 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01498"></a>01498 std::wstring <a class="code" href="namespaceboost_1_1xint.html#a6f24b4e0dc6e6c5de02480f5fb352030" title="A shorthand function that calls to_stringtype&amp;lt;wchar_t&amp;gt;.">to_wstring</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, std::size_t base
+<a name="l01499"></a>01499 = 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
+<a name="l01500"></a>01500 {
+<a name="l01501"></a>01501 <span class="keywordflow">return</span> to_stringtype&lt;wchar_t&gt;(n, base, uppercase);
+<a name="l01502"></a>01502 }
+<a name="l01503"></a>01503
+<a name="l01531"></a>01531 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01532"></a>01532 <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#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits =
+<a name="l01533"></a>01533 0)
+<a name="l01534"></a>01534 {
+<a name="l01535"></a>01535 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01536"></a>01536 <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="l01537"></a>01537 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01538"></a>01538 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
+<a name="l01539"></a>01539 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01540"></a>01540 <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="l01541"></a>01541 }
+<a name="l01542"></a>01542 } <span class="keywordflow">else</span> {
+<a name="l01543"></a>01543 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
+<a name="l01544"></a>01544 }
+<a name="l01545"></a>01545 }
+<a name="l01547"></a>01547
+<a name="l01550"></a>01550
+<a name="l01561"></a>01561 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01562"></a>01562 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
+<a name="l01563"></a>01563 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01564"></a>01564 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01565"></a>01565 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01566"></a>01566 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
+<a name="l01567"></a>01567 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01568"></a>01568 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01569"></a>01569 }
+<a name="l01570"></a>01570 } <span class="keywordflow">else</span> {
+<a name="l01571"></a>01571 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
+<a name="l01572"></a>01572 }
+<a name="l01573"></a>01573 }
+<a name="l01574"></a>01574
+<a name="l01584"></a>01584 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01585"></a>01585 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
+<a name="l01586"></a>01586 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01587"></a>01587 <span class="keywordflow">if</span> (!n.is_nan()) {
+<a name="l01588"></a>01588 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01589"></a>01589 <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
+<a name="l01590"></a>01590 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01591"></a>01591 <span class="comment">// Do nothing.</span>
+<a name="l01592"></a>01592 }
+<a name="l01593"></a>01593 }
+<a name="l01594"></a>01594 } <span class="keywordflow">else</span> {
+<a name="l01595"></a>01595 <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
+<a name="l01596"></a>01596 }
+<a name="l01597"></a>01597 }
+<a name="l01598"></a>01598
+<a name="l01608"></a>01608 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01609"></a>01609 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8" title="Sets a specific bit in an integer to zero.">clearbit</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
+<a name="l01610"></a>01610 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01611"></a>01611 <span class="keywordflow">if</span> (!n.is_nan()) {
+<a name="l01612"></a>01612 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01613"></a>01613 <a class="code" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
+<a name="l01614"></a>01614 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01615"></a>01615 <span class="comment">// Do nothing.</span>
+<a name="l01616"></a>01616 }
+<a name="l01617"></a>01617 }
+<a name="l01618"></a>01618 } <span class="keywordflow">else</span> {
+<a name="l01619"></a>01619 <a class="code" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
+<a name="l01620"></a>01620 }
+<a name="l01621"></a>01621 }
+<a name="l01622"></a>01622
+<a name="l01636"></a>01636 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01637"></a>01637 <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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#a8512b348c82472dca48edb63f2a1f0e7" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a>
+<a name="l01638"></a>01638 return_if_zero = 0)
+<a name="l01639"></a>01639 {
+<a name="l01640"></a>01640 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01641"></a>01641 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
+<a name="l01642"></a>01642 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01643"></a>01643 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7" 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="l01644"></a>01644 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01645"></a>01645 <span class="keywordflow">return</span> return_if_zero;
+<a name="l01646"></a>01646 }
+<a name="l01647"></a>01647 } <span class="keywordflow">else</span> {
+<a name="l01648"></a>01648 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7" 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="l01649"></a>01649 }
+<a name="l01650"></a>01650 }
+<a name="l01651"></a>01651
+<a name="l01665"></a>01665 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01666"></a>01666 <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" 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#adee99f516c2480b2381f6c9b1a2abc6e" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a>
+<a name="l01667"></a>01667 return_if_zero = 0)
+<a name="l01668"></a>01668 {
+<a name="l01669"></a>01669 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01670"></a>01670 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
+<a name="l01671"></a>01671 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01672"></a>01672 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e" 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="l01673"></a>01673 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01674"></a>01674 <span class="keywordflow">return</span> return_if_zero;
+<a name="l01675"></a>01675 }
+<a name="l01676"></a>01676 } <span class="keywordflow">else</span> {
+<a name="l01677"></a>01677 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e" 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="l01678"></a>01678 }
+<a name="l01679"></a>01679 }
+<a name="l01681"></a>01681
 <a name="l01690"></a>01690
-<a name="l01705"></a>01705 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01706"></a>01706 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01707"></a>01707 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; by, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;
-<a name="l01708"></a>01708 modulus)
-<a name="l01709"></a>01709 {
-<a name="l01710"></a>01710 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01711"></a>01711 <span class="keywordflow">if</span> (n.is_nan() || by.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01712"></a>01712 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01713"></a>01713 <span class="keywordflow">try</span> {
-<a name="l01714"></a>01714 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
-<a name="l01715"></a>01715 modulus._data()));
-<a name="l01716"></a>01716 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01717"></a>01717 r._make_unique();
-<a name="l01718"></a>01718 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01719"></a>01719 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01720"></a>01720 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01721"></a>01721 }
-<a name="l01722"></a>01722 } <span class="keywordflow">else</span> {
-<a name="l01723"></a>01723 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
-<a name="l01724"></a>01724 modulus._data()));
-<a name="l01725"></a>01725 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01726"></a>01726 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01727"></a>01727 }
-<a name="l01728"></a>01728 }
-<a name="l01729"></a>01729
-<a name="l01744"></a>01744 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01745"></a>01745 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01746"></a>01746 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; modulus)
-<a name="l01747"></a>01747 {
-<a name="l01748"></a>01748 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01749"></a>01749 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01750"></a>01750 <span class="keywordflow">try</span> {
-<a name="l01751"></a>01751 integer_t&lt;BOOST_XINT_APARAMS&gt; r = <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(),
-<a name="l01752"></a>01752 modulus._data());
-<a name="l01753"></a>01753 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01754"></a>01754 r._make_unique();
-<a name="l01755"></a>01755 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01756"></a>01756 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01757"></a>01757 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01758"></a>01758 }
-<a name="l01759"></a>01759 } <span class="keywordflow">else</span> {
-<a name="l01760"></a>01760 integer_t&lt;BOOST_XINT_APARAMS&gt; r = <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(), modulus._data());
-<a name="l01761"></a>01761 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01762"></a>01762 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01763"></a>01763 }
-<a name="l01764"></a>01764 }
-<a name="l01765"></a>01765
-<a name="l01789"></a>01789 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01790"></a>01790 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01791"></a>01791 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; exponent, <span class="keyword">const</span>
-<a name="l01792"></a>01792 integer_t&lt;BOOST_XINT_APARAMS&gt; modulus, <span class="keywordtype">bool</span> no_monty = <span class="keyword">false</span>)
-<a name="l01793"></a>01793 {
-<a name="l01794"></a>01794 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01795"></a>01795 <span class="keywordflow">if</span> (n.is_nan() || exponent.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01796"></a>01796 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01797"></a>01797 <span class="keywordflow">try</span> {
-<a name="l01798"></a>01798 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
-<a name="l01799"></a>01799 modulus._data(), no_monty));
-<a name="l01800"></a>01800 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01801"></a>01801 r._make_unique();
-<a name="l01802"></a>01802 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01803"></a>01803 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01804"></a>01804 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01805"></a>01805 }
-<a name="l01806"></a>01806 } <span class="keywordflow">else</span> {
-<a name="l01807"></a>01807 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
-<a name="l01808"></a>01808 modulus._data(), no_monty));
-<a name="l01809"></a>01809 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01810"></a>01810 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01811"></a>01811 }
-<a name="l01812"></a>01812 }
-<a name="l01813"></a>01813
-<a name="l01826"></a>01826 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01827"></a>01827 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
-<a name="l01828"></a>01828 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; modulus)
-<a name="l01829"></a>01829 {
-<a name="l01830"></a>01830 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01831"></a>01831 <span class="keywordflow">if</span> (n.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01832"></a>01832 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01833"></a>01833 <span class="keywordflow">try</span> {
-<a name="l01834"></a>01834 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data()));
-<a name="l01835"></a>01835 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l01836"></a>01836 r._make_unique();
-<a name="l01837"></a>01837 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01838"></a>01838 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01839"></a>01839 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l01840"></a>01840 }
-<a name="l01841"></a>01841 } <span class="keywordflow">else</span> {
-<a name="l01842"></a>01842 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data()));
-<a name="l01843"></a>01843 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01844"></a>01844 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01845"></a>01845 }
-<a name="l01846"></a>01846 }
-<a name="l01848"></a>01848
-<a name="l01854"></a>01854
+<a name="l01691"></a>01691
+<a name="l01706"></a>01706 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01707"></a>01707 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
+<a name="l01708"></a>01708 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; by, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;
+<a name="l01709"></a>01709 modulus)
+<a name="l01710"></a>01710 {
+<a name="l01711"></a>01711 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01712"></a>01712 <span class="keywordflow">if</span> (n.is_nan() || by.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
+<a name="l01713"></a>01713 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01714"></a>01714 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01715"></a>01715 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
+<a name="l01716"></a>01716 modulus._data()));
+<a name="l01717"></a>01717 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l01718"></a>01718 r._make_unique();
+<a name="l01719"></a>01719 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01720"></a>01720 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01721"></a>01721 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01722"></a>01722 }
+<a name="l01723"></a>01723 } <span class="keywordflow">else</span> {
+<a name="l01724"></a>01724 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
+<a name="l01725"></a>01725 modulus._data()));
+<a name="l01726"></a>01726 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01727"></a>01727 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01728"></a>01728 }
+<a name="l01729"></a>01729 }
+<a name="l01730"></a>01730
+<a name="l01745"></a>01745 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01746"></a>01746 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
+<a name="l01747"></a>01747 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; modulus)
+<a name="l01748"></a>01748 {
+<a name="l01749"></a>01749 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01750"></a>01750 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
+<a name="l01751"></a>01751 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01752"></a>01752 integer_t&lt;BOOST_XINT_APARAMS&gt; r = <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(),
+<a name="l01753"></a>01753 modulus._data());
+<a name="l01754"></a>01754 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l01755"></a>01755 r._make_unique();
+<a name="l01756"></a>01756 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01757"></a>01757 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01758"></a>01758 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01759"></a>01759 }
+<a name="l01760"></a>01760 } <span class="keywordflow">else</span> {
+<a name="l01761"></a>01761 integer_t&lt;BOOST_XINT_APARAMS&gt; r = <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(), modulus._data());
+<a name="l01762"></a>01762 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01763"></a>01763 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01764"></a>01764 }
+<a name="l01765"></a>01765 }
+<a name="l01766"></a>01766
+<a name="l01790"></a>01790 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01791"></a>01791 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
+<a name="l01792"></a>01792 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; exponent, <span class="keyword">const</span>
+<a name="l01793"></a>01793 integer_t&lt;BOOST_XINT_APARAMS&gt; modulus, <span class="keywordtype">bool</span> no_monty = <span class="keyword">false</span>)
+<a name="l01794"></a>01794 {
+<a name="l01795"></a>01795 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01796"></a>01796 <span class="keywordflow">if</span> (n.is_nan() || exponent.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
+<a name="l01797"></a>01797 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01798"></a>01798 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01799"></a>01799 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
+<a name="l01800"></a>01800 modulus._data(), no_monty));
+<a name="l01801"></a>01801 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l01802"></a>01802 r._make_unique();
+<a name="l01803"></a>01803 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01804"></a>01804 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01805"></a>01805 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01806"></a>01806 }
+<a name="l01807"></a>01807 } <span class="keywordflow">else</span> {
+<a name="l01808"></a>01808 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
+<a name="l01809"></a>01809 modulus._data(), no_monty));
+<a name="l01810"></a>01810 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01811"></a>01811 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01812"></a>01812 }
+<a name="l01813"></a>01813 }
+<a name="l01814"></a>01814
+<a name="l01827"></a>01827 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01828"></a>01828 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n,
+<a name="l01829"></a>01829 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; modulus)
+<a name="l01830"></a>01830 {
+<a name="l01831"></a>01831 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01832"></a>01832 <span class="keywordflow">if</span> (n.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
+<a name="l01833"></a>01833 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01834"></a>01834 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01835"></a>01835 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data()));
+<a name="l01836"></a>01836 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l01837"></a>01837 r._make_unique();
+<a name="l01838"></a>01838 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01839"></a>01839 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01840"></a>01840 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l01841"></a>01841 }
+<a name="l01842"></a>01842 } <span class="keywordflow">else</span> {
+<a name="l01843"></a>01843 integer_t&lt;BOOST_XINT_APARAMS&gt; r(<a class="code" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data()));
+<a name="l01844"></a>01844 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l01845"></a>01845 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l01846"></a>01846 }
+<a name="l01847"></a>01847 }
+<a name="l01849"></a>01849
 <a name="l01855"></a>01855
-<a name="l01880"></a>01880 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l01881"></a>01881 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; 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 name="l01882"></a>01882 <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="l01883"></a>01883 {
-<a name="l01884"></a>01884 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01885"></a>01885 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> -2;
-<a name="l01886"></a>01886 <span class="keywordflow">try</span> {
-<a name="l01887"></a>01887 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
-<a name="l01888"></a>01888 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01889"></a>01889 <span class="keywordflow">return</span> -2;
-<a name="l01890"></a>01890 }
-<a name="l01891"></a>01891 } <span class="keywordflow">else</span> {
-<a name="l01892"></a>01892 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
-<a name="l01893"></a>01893 }
-<a name="l01894"></a>01894 }
-<a name="l01896"></a>01896
-<a name="l01903"></a>01903
-<a name="l01904"></a>01904 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(<span class="keyword">const</span>
-<a name="l01905"></a>01905 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01906"></a>01906 {
-<a name="l01907"></a>01907 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01908"></a>01908 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01909"></a>01909 <span class="keywordflow">try</span> {
-<a name="l01910"></a>01910 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(n1._data(), n2._data());
-<a name="l01911"></a>01911 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01912"></a>01912 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01913"></a>01913 }
-<a name="l01914"></a>01914 } <span class="keywordflow">else</span> {
-<a name="l01915"></a>01915 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(n1._data(), n2._data());
-<a name="l01916"></a><a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">01916</a> }
-<a name="l01917"></a>01917 }
-<a name="l01918"></a>01918
-<a name="l01919"></a>01919 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(<span class="keyword">const</span>
-<a name="l01920"></a>01920 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01921"></a>01921 {
-<a name="l01922"></a>01922 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01923"></a>01923 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01924"></a>01924 <span class="keywordflow">try</span> {
-<a name="l01925"></a>01925 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(n1._data(), n2._data());
-<a name="l01926"></a>01926 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01927"></a>01927 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01928"></a>01928 }
-<a name="l01929"></a>01929 } <span class="keywordflow">else</span> {
-<a name="l01930"></a>01930 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(n1._data(), n2._data());
-<a name="l01931"></a><a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">01931</a> }
-<a name="l01932"></a>01932 }
-<a name="l01933"></a>01933
-<a name="l01934"></a>01934 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(<span class="keyword">const</span>
-<a name="l01935"></a>01935 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01936"></a>01936 {
-<a name="l01937"></a>01937 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01938"></a>01938 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01939"></a>01939 <span class="keywordflow">try</span> {
-<a name="l01940"></a>01940 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(n1._data(), n2._data());
-<a name="l01941"></a>01941 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01942"></a>01942 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01943"></a>01943 }
-<a name="l01944"></a>01944 } <span class="keywordflow">else</span> {
-<a name="l01945"></a>01945 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(n1._data(), n2._data());
-<a name="l01946"></a><a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">01946</a> }
-<a name="l01947"></a>01947 }
-<a name="l01948"></a>01948
-<a name="l01949"></a>01949 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(<span class="keyword">const</span>
-<a name="l01950"></a>01950 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01951"></a>01951 {
-<a name="l01952"></a>01952 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01953"></a>01953 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01954"></a>01954 <span class="keywordflow">try</span> {
-<a name="l01955"></a>01955 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(n1._data(), n2._data());
-<a name="l01956"></a>01956 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01957"></a>01957 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01958"></a>01958 }
-<a name="l01959"></a>01959 } <span class="keywordflow">else</span> {
-<a name="l01960"></a>01960 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(n1._data(), n2._data());
-<a name="l01961"></a><a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">01961</a> }
-<a name="l01962"></a>01962 }
-<a name="l01963"></a>01963
-<a name="l01964"></a>01964 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(<span class="keyword">const</span>
-<a name="l01965"></a>01965 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01966"></a>01966 {
-<a name="l01967"></a>01967 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01968"></a>01968 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01969"></a>01969 <span class="keywordflow">try</span> {
-<a name="l01970"></a>01970 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(n1._data(), n2._data());
-<a name="l01971"></a>01971 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01972"></a>01972 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01973"></a>01973 }
-<a name="l01974"></a>01974 } <span class="keywordflow">else</span> {
-<a name="l01975"></a>01975 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(n1._data(), n2._data());
-<a name="l01976"></a><a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">01976</a> }
-<a name="l01977"></a>01977 }
-<a name="l01978"></a>01978
-<a name="l01979"></a>01979 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(<span class="keyword">const</span>
-<a name="l01980"></a>01980 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l01981"></a>01981 {
-<a name="l01982"></a>01982 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l01983"></a>01983 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01984"></a>01984 <span class="keywordflow">try</span> {
-<a name="l01985"></a>01985 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(n1._data(), n2._data());
-<a name="l01986"></a>01986 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01987"></a>01987 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01988"></a>01988 }
-<a name="l01989"></a>01989 } <span class="keywordflow">else</span> {
-<a name="l01990"></a>01990 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(n1._data(), n2._data());
-<a name="l01991"></a>01991 }
-<a name="l01992"></a>01992 }
-<a name="l01994"></a>01994
-<a name="l01999"></a>01999
+<a name="l01856"></a>01856
+<a name="l01881"></a>01881 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l01882"></a>01882 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; 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 name="l01883"></a>01883 <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="l01884"></a>01884 {
+<a name="l01885"></a>01885 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01886"></a>01886 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> -2;
+<a name="l01887"></a>01887 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01888"></a>01888 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
+<a name="l01889"></a>01889 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01890"></a>01890 <span class="keywordflow">return</span> -2;
+<a name="l01891"></a>01891 }
+<a name="l01892"></a>01892 } <span class="keywordflow">else</span> {
+<a name="l01893"></a>01893 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
+<a name="l01894"></a>01894 }
+<a name="l01895"></a>01895 }
+<a name="l01897"></a>01897
+<a name="l01904"></a>01904
+<a name="l01905"></a>01905 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(<span class="keyword">const</span>
+<a name="l01906"></a>01906 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l01907"></a>01907 {
+<a name="l01908"></a>01908 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01909"></a>01909 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01910"></a>01910 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01911"></a>01911 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(n1._data(), n2._data());
+<a name="l01912"></a>01912 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01913"></a>01913 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01914"></a>01914 }
+<a name="l01915"></a>01915 } <span class="keywordflow">else</span> {
+<a name="l01916"></a>01916 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(n1._data(), n2._data());
+<a name="l01917"></a><a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">01917</a> }
+<a name="l01918"></a>01918 }
+<a name="l01919"></a>01919
+<a name="l01920"></a>01920 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(<span class="keyword">const</span>
+<a name="l01921"></a>01921 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l01922"></a>01922 {
+<a name="l01923"></a>01923 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01924"></a>01924 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01925"></a>01925 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01926"></a>01926 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(n1._data(), n2._data());
+<a name="l01927"></a>01927 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01928"></a>01928 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01929"></a>01929 }
+<a name="l01930"></a>01930 } <span class="keywordflow">else</span> {
+<a name="l01931"></a>01931 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(n1._data(), n2._data());
+<a name="l01932"></a><a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">01932</a> }
+<a name="l01933"></a>01933 }
+<a name="l01934"></a>01934
+<a name="l01935"></a>01935 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(<span class="keyword">const</span>
+<a name="l01936"></a>01936 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l01937"></a>01937 {
+<a name="l01938"></a>01938 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01939"></a>01939 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01940"></a>01940 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01941"></a>01941 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(n1._data(), n2._data());
+<a name="l01942"></a>01942 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01943"></a>01943 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01944"></a>01944 }
+<a name="l01945"></a>01945 } <span class="keywordflow">else</span> {
+<a name="l01946"></a>01946 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(n1._data(), n2._data());
+<a name="l01947"></a><a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">01947</a> }
+<a name="l01948"></a>01948 }
+<a name="l01949"></a>01949
+<a name="l01950"></a>01950 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(<span class="keyword">const</span>
+<a name="l01951"></a>01951 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l01952"></a>01952 {
+<a name="l01953"></a>01953 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01954"></a>01954 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01955"></a>01955 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01956"></a>01956 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(n1._data(), n2._data());
+<a name="l01957"></a>01957 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01958"></a>01958 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01959"></a>01959 }
+<a name="l01960"></a>01960 } <span class="keywordflow">else</span> {
+<a name="l01961"></a>01961 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(n1._data(), n2._data());
+<a name="l01962"></a><a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">01962</a> }
+<a name="l01963"></a>01963 }
+<a name="l01964"></a>01964
+<a name="l01965"></a>01965 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(<span class="keyword">const</span>
+<a name="l01966"></a>01966 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l01967"></a>01967 {
+<a name="l01968"></a>01968 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01969"></a>01969 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01970"></a>01970 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01971"></a>01971 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(n1._data(), n2._data());
+<a name="l01972"></a>01972 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01973"></a>01973 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01974"></a>01974 }
+<a name="l01975"></a>01975 } <span class="keywordflow">else</span> {
+<a name="l01976"></a>01976 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(n1._data(), n2._data());
+<a name="l01977"></a><a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">01977</a> }
+<a name="l01978"></a>01978 }
+<a name="l01979"></a>01979
+<a name="l01980"></a>01980 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt; <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(<span class="keyword">const</span>
+<a name="l01981"></a>01981 integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l01982"></a>01982 {
+<a name="l01983"></a>01983 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l01984"></a>01984 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01985"></a>01985 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l01986"></a>01986 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(n1._data(), n2._data());
+<a name="l01987"></a>01987 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l01988"></a>01988 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+<a name="l01989"></a>01989 }
+<a name="l01990"></a>01990 } <span class="keywordflow">else</span> {
+<a name="l01991"></a>01991 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(n1._data(), n2._data());
+<a name="l01992"></a>01992 }
+<a name="l01993"></a>01993 }
+<a name="l01995"></a>01995
 <a name="l02000"></a>02000
-<a name="l02009"></a>02009 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02010"></a>02010 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da" title="Calculate the sum of two integers.">operator+</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02011"></a>02011 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02012"></a>02012 {
-<a name="l02013"></a>02013 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02014"></a>02014 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02015"></a>02015 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02016"></a>02016 <span class="keywordflow">try</span> {
-<a name="l02017"></a>02017 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() + n2._data());
-<a name="l02018"></a>02018 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02019"></a>02019 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02020"></a>02020 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02021"></a>02021 }
-<a name="l02022"></a>02022 } <span class="keywordflow">else</span> {
-<a name="l02023"></a>02023 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() + n2._data());
-<a name="l02024"></a>02024 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02025"></a>02025 }
-<a name="l02026"></a>02026 }
-<a name="l02027"></a>02027
-<a name="l02036"></a>02036 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02037"></a>02037 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ab6132105fbe7d7bf7a756b868b6a372e" title="Calculate the difference between two integers.">operator-</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02038"></a>02038 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02039"></a>02039 {
-<a name="l02040"></a>02040 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02041"></a>02041 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02042"></a>02042 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02043"></a>02043 <span class="keywordflow">try</span> {
-<a name="l02044"></a>02044 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() - n2._data());
-<a name="l02045"></a>02045 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative)
-<a name="l02046"></a>02046 r._fix_negative_unsigned();
-<a name="l02047"></a>02047 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02048"></a>02048 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02049"></a>02049 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02050"></a>02050 }
-<a name="l02051"></a>02051 } <span class="keywordflow">else</span> {
-<a name="l02052"></a>02052 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() - n2._data());
-<a name="l02053"></a>02053 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative)
-<a name="l02054"></a>02054 r._fix_negative_unsigned();
-<a name="l02055"></a>02055 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02056"></a>02056 }
-<a name="l02057"></a>02057 }
-<a name="l02058"></a>02058
-<a name="l02071"></a>02071 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02072"></a>02072 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ab33a5481a4a4b16ab592be6a88cd245c" title="Calculate the product of two integers.">operator*</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02073"></a>02073 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02074"></a>02074 {
-<a name="l02075"></a>02075 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02076"></a>02076 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02077"></a>02077 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02078"></a>02078 <span class="keywordflow">try</span> {
-<a name="l02079"></a>02079 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() * n2._data());
-<a name="l02080"></a>02080 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02081"></a>02081 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02082"></a>02082 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02083"></a>02083 }
-<a name="l02084"></a>02084 } <span class="keywordflow">else</span> {
-<a name="l02085"></a>02085 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() * n2._data());
-<a name="l02086"></a>02086 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02087"></a>02087 }
-<a name="l02088"></a>02088 }
-<a name="l02089"></a>02089
-<a name="l02100"></a>02100 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02101"></a>02101 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a806df63b92124039591a4ca09a8538e0" title="Calculate how many dividends would fit into divisor.">operator/</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;
-<a name="l02102"></a>02102 dividend, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; divisor)
-<a name="l02103"></a>02103 {
-<a name="l02104"></a>02104 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02105"></a>02105 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span>
-<a name="l02106"></a>02106 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02107"></a>02107 <span class="keywordflow">try</span> {
-<a name="l02108"></a>02108 integer_t&lt;BOOST_XINT_APARAMS&gt; r(dividend._data() / divisor._data());
-<a name="l02109"></a>02109 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02110"></a>02110 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02111"></a>02111 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02112"></a>02112 }
-<a name="l02113"></a>02113 } <span class="keywordflow">else</span> {
-<a name="l02114"></a>02114 integer_t&lt;BOOST_XINT_APARAMS&gt; r(dividend._data() / divisor._data());
-<a name="l02115"></a>02115 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02116"></a>02116 }
-<a name="l02117"></a>02117 }
-<a name="l02118"></a>02118
-<a name="l02128"></a>02128 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02129"></a>02129 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a0ac4116f3a9285a7f2f10d0104b870f7" title="Get the remainder after dividing a number by another.">operator%</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02130"></a>02130 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02131"></a>02131 {
-<a name="l02132"></a>02132 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02133"></a>02133 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02134"></a>02134 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02135"></a>02135 <span class="keywordflow">try</span> {
-<a name="l02136"></a>02136 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() % n2._data());
-<a name="l02137"></a>02137 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02138"></a>02138 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02139"></a>02139 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02140"></a>02140 }
-<a name="l02141"></a>02141 } <span class="keywordflow">else</span> {
-<a name="l02142"></a>02142 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() % n2._data());
-<a name="l02143"></a>02143 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02144"></a>02144 }
-<a name="l02145"></a>02145 }
-<a name="l02146"></a>02146
-<a name="l02156"></a>02156 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02157"></a>02157 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ad3bc201c8c1f3e87611abce8e6972538" title="Combine two integers using a bitwise AND operation.">operator&amp;</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02158"></a>02158 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02159"></a>02159 {
-<a name="l02160"></a>02160 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02161"></a>02161 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02162"></a>02162 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02163"></a>02163 <span class="keywordflow">try</span> {
-<a name="l02164"></a>02164 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() &amp; n2._data());
-<a name="l02165"></a>02165 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02166"></a>02166 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02167"></a>02167 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02168"></a>02168 }
-<a name="l02169"></a>02169 } <span class="keywordflow">else</span> {
-<a name="l02170"></a>02170 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() &amp; n2._data());
-<a name="l02171"></a>02171 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02172"></a>02172 }
-<a name="l02173"></a>02173 }
-<a name="l02174"></a>02174
-<a name="l02184"></a>02184 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02185"></a>02185 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a0b58f99b2c5bab4f7eec71d6058b23dd" title="Combine two integers using a bitwise OR operation.">operator|</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02186"></a>02186 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02187"></a>02187 {
-<a name="l02188"></a>02188 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02189"></a>02189 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02190"></a>02190 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02191"></a>02191 <span class="keywordflow">try</span> {
-<a name="l02192"></a>02192 integer_t&lt;BOOST_XINT_APARAMS&gt; 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&amp;) {
-<a name="l02195"></a>02195 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02196"></a>02196 }
-<a name="l02197"></a>02197 } <span class="keywordflow">else</span> {
-<a name="l02198"></a>02198 integer_t&lt;BOOST_XINT_APARAMS&gt; 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="l02202"></a>02202
-<a name="l02212"></a>02212 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02213"></a>02213 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a0d1ce319bfb004fb6b93283bcb4f98c2" title="Combine two integers using a bitwise XOR operation.">operator^</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
-<a name="l02214"></a>02214 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
-<a name="l02215"></a>02215 {
-<a name="l02216"></a>02216 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02217"></a>02217 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
-<a name="l02218"></a>02218 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02219"></a>02219 <span class="keywordflow">try</span> {
-<a name="l02220"></a>02220 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() ^ n2._data());
-<a name="l02221"></a>02221 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02222"></a>02222 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02223"></a>02223 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02224"></a>02224 }
-<a name="l02225"></a>02225 } <span class="keywordflow">else</span> {
-<a name="l02226"></a>02226 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() ^ n2._data());
-<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 }
-<a name="l02229"></a>02229 }
-<a name="l02231"></a>02231
-<a name="l02234"></a>02234
-<a name="l02244"></a>02244 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02245"></a>02245 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num1,
-<a name="l02246"></a>02246 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num2)
-<a name="l02247"></a>02247 {
-<a name="l02248"></a>02248 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02249"></a>02249 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
-<a name="l02250"></a>02250 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02251"></a>02251 <span class="keywordflow">try</span> {
-<a name="l02252"></a>02252 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l02253"></a>02253 <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
-<a name="l02254"></a>02254 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l02255"></a>02255 r._make_unique();
-<a name="l02256"></a>02256 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02257"></a>02257 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02258"></a>02258 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02259"></a>02259 }
-<a name="l02260"></a>02260 } <span class="keywordflow">else</span> {
-<a name="l02261"></a>02261 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l02262"></a>02262 <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
-<a name="l02263"></a>02263 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02264"></a>02264 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02265"></a>02265 }
-<a name="l02266"></a>02266 }
-<a name="l02267"></a>02267
-<a name="l02278"></a>02278 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02279"></a>02279 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num1,
-<a name="l02280"></a>02280 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num2)
-<a name="l02281"></a>02281 {
-<a name="l02282"></a>02282 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02283"></a>02283 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
-<a name="l02284"></a>02284 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02285"></a>02285 <span class="keywordflow">try</span> {
-<a name="l02286"></a>02286 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l02287"></a>02287 <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
-<a name="l02288"></a>02288 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
-<a name="l02289"></a>02289 r._make_unique();
-<a name="l02290"></a>02290 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02291"></a>02291 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02292"></a>02292 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02293"></a>02293 }
-<a name="l02294"></a>02294 } <span class="keywordflow">else</span> {
-<a name="l02295"></a>02295 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
-<a name="l02296"></a>02296 <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
-<a name="l02297"></a>02297 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02298"></a>02298 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02299"></a>02299 }
-<a name="l02300"></a>02300 }
-<a name="l02301"></a>02301
-<a name="l02314"></a>02314 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02315"></a>02315 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span>
-<a name="l02316"></a>02316 integer_t&lt;BOOST_XINT_APARAMS&gt; n2, <span class="keywordtype">bool</span> ignoresign = <span class="keyword">false</span>)
-<a name="l02317"></a>02317 {
-<a name="l02318"></a>02318 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02319"></a>02319 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> 2;
-<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#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
-<a name="l02322"></a>02322 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02323"></a>02323 <span class="keywordflow">return</span> 2;
-<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#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
-<a name="l02327"></a>02327 }
-<a name="l02328"></a>02328 }
-<a name="l02329"></a>02329
-<a name="l02346"></a>02346 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02347"></a>02347 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
-<a name="l02348"></a>02348 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02349"></a>02349 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> 0;
-<a name="l02350"></a>02350 <span class="keywordflow">try</span> {
-<a name="l02351"></a>02351 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n._data());
-<a name="l02352"></a>02352 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02353"></a>02353 <span class="keywordflow">return</span> 0;
-<a name="l02354"></a>02354 }
-<a name="l02355"></a>02355 } <span class="keywordflow">else</span> {
-<a name="l02356"></a>02356 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n._data());
-<a name="l02357"></a>02357 }
-<a name="l02358"></a>02358 }
-<a name="l02360"></a>02360
-<a name="l02362"></a>02362 <span class="preprocessor">#define BOOST_XINT_ANY_COMPARE(rtype, op) \</span>
-<a name="l02363"></a>02363 <span class="preprocessor"> template &lt;BOOST_XINT_CLASS_APARAMS, typename N&gt; \</span>
-<a name="l02364"></a>02364 <span class="preprocessor"> rtype op(const integer_t&lt;BOOST_XINT_APARAMS&gt; n1, const N n2) { \</span>
-<a name="l02365"></a>02365 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
-<a name="l02366"></a>02366 <span class="preprocessor"> try { \</span>
-<a name="l02367"></a>02367 <span class="preprocessor"> return op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \</span>
-<a name="l02368"></a>02368 <span class="preprocessor"> } catch (std::exception&amp;) { \</span>
-<a name="l02369"></a>02369 <span class="preprocessor"> return rtype(0); \</span>
-<a name="l02370"></a>02370 <span class="preprocessor"> } \</span>
-<a name="l02371"></a>02371 <span class="preprocessor"> } else { \</span>
-<a name="l02372"></a>02372 <span class="preprocessor"> return op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \</span>
-<a name="l02373"></a>02373 <span class="preprocessor"> } \</span>
-<a name="l02374"></a>02374 <span class="preprocessor"> } \</span>
-<a name="l02375"></a>02375 <span class="preprocessor"> \</span>
-<a name="l02376"></a>02376 <span class="preprocessor"> template &lt;typename N, BOOST_XINT_CLASS_APARAMS&gt; \</span>
-<a name="l02377"></a>02377 <span class="preprocessor"> rtype op(const N n1, const integer_t&lt;BOOST_XINT_APARAMS&gt; n2) { \</span>
-<a name="l02378"></a>02378 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
-<a name="l02379"></a>02379 <span class="preprocessor"> try { \</span>
-<a name="l02380"></a>02380 <span class="preprocessor"> return op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \</span>
-<a name="l02381"></a>02381 <span class="preprocessor"> } catch (std::exception&amp;) { \</span>
-<a name="l02382"></a>02382 <span class="preprocessor"> return rtype(0); \</span>
-<a name="l02383"></a>02383 <span class="preprocessor"> } \</span>
-<a name="l02384"></a>02384 <span class="preprocessor"> } else { \</span>
-<a name="l02385"></a>02385 <span class="preprocessor"> return op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \</span>
-<a name="l02386"></a>02386 <span class="preprocessor"> } \</span>
-<a name="l02387"></a>02387 <span class="preprocessor"> }</span>
-<a name="l02388"></a>02388 <span class="preprocessor"></span>
-<a name="l02389"></a>02389 <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>&lt;)
-<a name="l02390"></a>02390 <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&gt;)
-<a name="l02391"></a>02391 <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&lt;=)
-<a name="l02392"></a>02392 <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&gt;=)
-<a name="l02393"></a>02393 <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="l02394"></a>02394 <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="l02395"></a><a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090">02395</a> <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#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>)
-<a name="l02396"></a>02396
-<a name="l02398"></a>02398 <span class="preprocessor">#define BOOST_XINT_ANY_MATH(op) \</span>
-<a name="l02399"></a>02399 <span class="preprocessor"> template &lt;BOOST_XINT_CLASS_APARAMS, typename N&gt; \</span>
-<a name="l02400"></a>02400 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; op(const integer_t&lt;BOOST_XINT_APARAMS&gt; n1, \</span>
-<a name="l02401"></a>02401 <span class="preprocessor"> const N n2) \</span>
-<a name="l02402"></a>02402 <span class="preprocessor"> { \</span>
-<a name="l02403"></a>02403 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
-<a name="l02404"></a>02404 <span class="preprocessor"> try { \</span>
-<a name="l02405"></a>02405 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; r(op(n1, \</span>
-<a name="l02406"></a>02406 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt;(n2))); \</span>
-<a name="l02407"></a>02407 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
-<a name="l02408"></a>02408 <span class="preprocessor"> r._make_unique(); \</span>
-<a name="l02409"></a>02409 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; \</span>
-<a name="l02410"></a>02410 <span class="preprocessor"> r._data().negative) r._fix_negative_unsigned(); \</span>
-<a name="l02411"></a>02411 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02412"></a>02412 <span class="preprocessor"> } catch (std::exception&amp;) { \</span>
-<a name="l02413"></a>02413 <span class="preprocessor"> return detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(); \</span>
-<a name="l02414"></a>02414 <span class="preprocessor"> } \</span>
-<a name="l02415"></a>02415 <span class="preprocessor"> } else { \</span>
-<a name="l02416"></a>02416 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; r(op(n1, \</span>
-<a name="l02417"></a>02417 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt;(n2))); \</span>
-<a name="l02418"></a>02418 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
-<a name="l02419"></a>02419 <span class="preprocessor"> r._make_unique(); \</span>
-<a name="l02420"></a>02420 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative) \</span>
-<a name="l02421"></a>02421 <span class="preprocessor"> r._fix_negative_unsigned(); \</span>
-<a name="l02422"></a>02422 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02423"></a>02423 <span class="preprocessor"> } \</span>
-<a name="l02424"></a>02424 <span class="preprocessor"> } \</span>
-<a name="l02425"></a>02425 <span class="preprocessor"> \</span>
-<a name="l02426"></a>02426 <span class="preprocessor"> template &lt;typename N, BOOST_XINT_CLASS_APARAMS&gt; \</span>
-<a name="l02427"></a>02427 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; op(const N n1, const \</span>
-<a name="l02428"></a>02428 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; n2) \</span>
-<a name="l02429"></a>02429 <span class="preprocessor"> { \</span>
-<a name="l02430"></a>02430 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
-<a name="l02431"></a>02431 <span class="preprocessor"> try { \</span>
-<a name="l02432"></a>02432 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; \</span>
-<a name="l02433"></a>02433 <span class="preprocessor"> r(op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2)); \</span>
-<a name="l02434"></a>02434 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
-<a name="l02435"></a>02435 <span class="preprocessor"> r._make_unique(); \</span>
-<a name="l02436"></a>02436 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; \</span>
-<a name="l02437"></a>02437 <span class="preprocessor"> r._data().negative) r._fix_negative_unsigned(); \</span>
-<a name="l02438"></a>02438 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02439"></a>02439 <span class="preprocessor"> } catch (std::exception&amp;) { \</span>
-<a name="l02440"></a>02440 <span class="preprocessor"> return detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(); \</span>
-<a name="l02441"></a>02441 <span class="preprocessor"> } \</span>
-<a name="l02442"></a>02442 <span class="preprocessor"> } else { \</span>
-<a name="l02443"></a>02443 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; \</span>
-<a name="l02444"></a>02444 <span class="preprocessor"> r(op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2)); \</span>
-<a name="l02445"></a>02445 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
-<a name="l02446"></a>02446 <span class="preprocessor"> r._make_unique(); \</span>
-<a name="l02447"></a>02447 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative) \</span>
-<a name="l02448"></a>02448 <span class="preprocessor"> r._fix_negative_unsigned(); \</span>
-<a name="l02449"></a>02449 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02450"></a>02450 <span class="preprocessor"> } \</span>
-<a name="l02451"></a>02451 <span class="preprocessor"> }</span>
-<a name="l02452"></a>02452 <span class="preprocessor"></span>
-<a name="l02453"></a>02453 <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#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>)
-<a name="l02454"></a>02454 <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#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>)
-<a name="l02455"></a>02455 <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#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>)
-<a name="l02456"></a>02456 <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#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>)
-<a name="l02457"></a>02457 <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#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>)
-<a name="l02458"></a>02458 <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="l02459"></a>02459 <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="l02460"></a>02460 <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="l02461"></a>02461 <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="l02462"></a>02462 <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="l02463"></a>02463 <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&amp;)
-<a name="l02464"></a>02464 <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="l02465"></a>02465 <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="l02466"></a>02466 <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#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>)
-<a name="l02467"></a>02467 <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#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>)
-<a name="l02468"></a>02468
-<a name="l02471"></a>02471 template &lt;typename charT, typename traits, <a class="code" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">BOOST_XINT_CLASS_APARAMS</a>&gt; inline
-<a name="l02472"></a>02472 std::basic_ostream&lt;charT,traits&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;charT,
-<a name="l02473"></a>02473 traits&gt;&amp; out, const integer_t&lt;<a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; n)
-<a name="l02474"></a>02474 {
-<a name="l02475"></a>02475 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow &amp;&amp; n.is_nan()) <span class="keywordflow">return</span>
-<a name="l02476"></a>02476 <span class="keyword">operator</span>&lt;&lt;(out, detail::nan_text&lt;charT&gt;());
-<a name="l02477"></a>02477 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">operator&lt;&lt;</a>(out, n._data());
-<a name="l02478"></a><a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">02478</a> }
-<a name="l02479"></a>02479
-<a name="l02480"></a>02480 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits, BOOST_XINT_CLASS_APARAMS&gt; <span class="keyword">inline</span>
-<a name="l02481"></a>02481 std::basic_istream&lt;charT,traits&gt;&amp; <a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a>(std::basic_istream&lt;charT,
-<a name="l02482"></a>02482 traits&gt;&amp; in, integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n)
-<a name="l02483"></a>02483 {
-<a name="l02484"></a>02484 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
-<a name="l02485"></a>02485 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; tnan = detail::nan_text&lt;charT&gt;();
-<a name="l02486"></a>02486 charT nextchar = charT(in.peek());
-<a name="l02487"></a>02487 <span class="keywordflow">if</span> (nextchar == tnan[0]) {
-<a name="l02488"></a>02488 <span class="comment">// Must be either #NaN# or an error</span>
-<a name="l02489"></a>02489 std::vector&lt;charT&gt; buffer;
-<a name="l02490"></a>02490
-<a name="l02491"></a>02491 charT p = 0;
-<a name="l02492"></a>02492 <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; tnan.length(); ++i) {
-<a name="l02493"></a>02493 in &gt;&gt; p;
-<a name="l02494"></a>02494 buffer.push_back(p);
-<a name="l02495"></a>02495 }
-<a name="l02496"></a>02496 buffer.push_back(0);
-<a name="l02497"></a>02497
-<a name="l02498"></a>02498 std::basic_string&lt;charT&gt; str(&amp;buffer[0]);
-<a name="l02499"></a>02499 <span class="keywordflow">if</span> (str == tnan)
-<a name="l02500"></a>02500 n = detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02501"></a>02501 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
-<a name="l02502"></a>02502 <span class="keywordflow">return</span> in;
-<a name="l02503"></a>02503 }
-<a name="l02504"></a>02504 }
-<a name="l02505"></a>02505 <a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a>(in, n._data());
-<a name="l02506"></a>02506 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; n._data().negative)
-<a name="l02507"></a>02507 n._fix_negative_unsigned();
-<a name="l02508"></a>02508 <span class="keywordflow">return</span> in;
-<a name="l02509"></a>02509 }
-<a name="l02511"></a>02511
-<a name="l02512"></a>02512 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02513"></a>02513 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; left,
-<a name="l02514"></a>02514 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; right)
-<a name="l02515"></a>02515 {
-<a name="l02516"></a>02516 left._swap(right);
-<a name="l02517"></a>02517 }
-<a name="l02518"></a>02518
-<a name="l02523"></a>02523 <span class="keyword">typedef</span> integer_t&lt;&gt; <a class="code" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">integer</a>;
-<a name="l02524"></a>02524
-<a name="l02530"></a>02530 <span class="keyword">typedef</span> integer_t&lt;options::nothrow&gt; <a class="code" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2" title="The default arbitrary-length nothrow_integer type.">nothrow_integer</a>;
-<a name="l02531"></a>02531
-<a name="l02532"></a>02532 } <span class="comment">// namespace xint</span>
-<a name="l02533"></a>02533 } <span class="comment">// namespace boost</span>
-<a name="l02534"></a>02534
-<a name="l02535"></a>02535 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l02536"></a>02536 <span class="preprocessor"></span><span class="keyword">namespace </span>std {
-<a name="l02537"></a>02537
-<a name="l02538"></a>02538 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02539"></a>02539 <span class="keyword">class </span>numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt; {
-<a name="l02540"></a>02540 <span class="keyword">public</span>:
-<a name="l02541"></a>02541 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_specialized;
-<a name="l02542"></a>02542
-<a name="l02543"></a>02543 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> min
-<a name="l02544"></a>02544 BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
-<a name="l02545"></a>02545 {
-<a name="l02546"></a>02546 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>)
-<a name="l02547"></a>02547 <span class="keywordflow">return</span> -~(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a>());
-<a name="l02548"></a>02548 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02549"></a>02549 }
-<a name="l02550"></a>02550 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> max
-<a name="l02551"></a>02551 BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
-<a name="l02552"></a>02552 {
-<a name="l02553"></a>02553 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>)
-<a name="l02554"></a>02554 <span class="keywordflow">return</span> ~(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a>());
-<a name="l02555"></a>02555 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02556"></a>02556 }
-<a name="l02557"></a>02557
-<a name="l02558"></a>02558 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits;
-<a name="l02559"></a>02559 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits10;
-<a name="l02560"></a>02560 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_signed;
-<a name="l02561"></a>02561 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_integer;
-<a name="l02562"></a>02562 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_exact;
-<a name="l02563"></a>02563 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> radix;
-<a name="l02564"></a>02564 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> epsilon() throw() { <span class="keywordflow">return</span>
-<a name="l02565"></a>02565 0; }
-<a name="l02566"></a>02566 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> round_error() throw() {
-<a name="l02567"></a>02567 <span class="keywordflow">return</span> 0; }
-<a name="l02568"></a>02568
-<a name="l02569"></a>02569 <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="l02570"></a>02570 <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="l02571"></a>02571 <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="l02572"></a>02572 <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="l02573"></a>02573
-<a name="l02574"></a>02574 <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="l02575"></a>02575 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_quiet_NaN;
-<a name="l02576"></a>02576 <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="l02577"></a>02577 <span class="keyword">static</span> <span class="keyword">const</span> float_denorm_style has_denorm; <span class="comment">// N/A</span>
-<a name="l02578"></a>02578 <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="l02579"></a>02579
-<a name="l02580"></a>02580 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> infinity() throw() {
-<a name="l02581"></a>02581 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02582"></a>02582 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> quiet_NaN() throw() {
-<a name="l02583"></a>02583 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a>) <span class="keywordflow">return</span> boost::
-<a name="l02584"></a>02584 xint::detail::get_nan&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
-<a name="l02585"></a>02585 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02586"></a>02586 }
-<a name="l02587"></a>02587 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> signaling_NaN() throw() {
-<a name="l02588"></a>02588 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02589"></a>02589 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> denorm_min() throw() {
-<a name="l02590"></a>02590 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02591"></a>02591
-<a name="l02592"></a>02592 <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="l02593"></a>02593 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_bounded;
-<a name="l02594"></a>02594 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_modulo;
-<a name="l02595"></a>02595
-<a name="l02596"></a>02596 <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="l02597"></a>02597 <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="l02598"></a>02598 <span class="keyword">static</span> <span class="keyword">const</span> float_round_style round_style; <span class="comment">// N/A</span>
-<a name="l02599"></a>02599 };
-<a name="l02600"></a>02600
-<a name="l02601"></a>02601 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02602"></a>02602 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02603"></a>02603 is_specialized = <span class="keyword">true</span>;
-<a name="l02604"></a>02604
-<a name="l02605"></a>02605 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02606"></a>02606 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::digits =
-<a name="l02607"></a>02607 <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>);
-<a name="l02608"></a>02608
-<a name="l02609"></a>02609 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02610"></a>02610 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::digits10
-<a name="l02611"></a>02611 = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(boost::xint::detail::log10_bits(
-<a name="l02612"></a>02612 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>));
-<a name="l02613"></a>02613
-<a name="l02614"></a>02614 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02615"></a>02615 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02616"></a>02616 is_signed = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed</a> ? <span class="keyword">true</span> :
-<a name="l02617"></a>02617 <span class="keyword">false</span>);
-<a name="l02618"></a>02618
-<a name="l02619"></a>02619 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02620"></a>02620 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02621"></a>02621 is_integer = <span class="keyword">true</span>;
-<a name="l02622"></a>02622
-<a name="l02623"></a>02623 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02624"></a>02624 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::is_exact
-<a name="l02625"></a>02625 = <span class="keyword">true</span>;
-<a name="l02626"></a>02626
-<a name="l02627"></a>02627 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02628"></a>02628 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::radix =
-<a name="l02629"></a>02629 2;
-<a name="l02630"></a>02630
-<a name="l02631"></a>02631 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02632"></a>02632 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02633"></a>02633 min_exponent = 0;
-<a name="l02634"></a>02634
-<a name="l02635"></a>02635 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02636"></a>02636 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02637"></a>02637 min_exponent10 = 0;
-<a name="l02638"></a>02638
-<a name="l02639"></a>02639 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02640"></a>02640 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02641"></a>02641 max_exponent = 0;
-<a name="l02642"></a>02642
-<a name="l02643"></a>02643 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02644"></a>02644 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02645"></a>02645 max_exponent10 = 0;
-<a name="l02646"></a>02646
-<a name="l02647"></a>02647 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02648"></a>02648 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02649"></a>02649 has_infinity = <span class="keyword">false</span>;
-<a name="l02650"></a>02650
-<a name="l02651"></a>02651 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02652"></a>02652 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02653"></a>02653 has_quiet_NaN = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a> ? <span class="keyword">true</span>
-<a name="l02654"></a>02654 : <span class="keyword">false</span>);
-<a name="l02655"></a>02655
-<a name="l02656"></a>02656 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02657"></a>02657 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02658"></a>02658 has_signaling_NaN = <span class="keyword">false</span>;
-<a name="l02659"></a>02659
-<a name="l02660"></a>02660 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02661"></a>02661 <span class="keyword">const</span> float_denorm_style numeric_limits&lt;<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;
-<a name="l02662"></a>02662 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; &gt;::has_denorm = denorm_absent;
-<a name="l02663"></a>02663
-<a name="l02664"></a>02664 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02665"></a>02665 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02666"></a>02666 has_denorm_loss = <span class="keyword">false</span>;
-<a name="l02667"></a>02667
-<a name="l02668"></a>02668 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02669"></a>02669 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02670"></a>02670 is_iec559 = <span class="keyword">false</span>;
-<a name="l02671"></a>02671
-<a name="l02672"></a>02672 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02673"></a>02673 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02674"></a>02674 is_bounded = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a> == 0 ? <span class="keyword">false</span>
-<a name="l02675"></a>02675 : <span class="keyword">true</span>);
-<a name="l02676"></a>02676
-<a name="l02677"></a>02677 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02678"></a>02678 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02679"></a>02679 is_modulo = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a> == 0 ? <span class="keyword">false</span> :
-<a name="l02680"></a>02680 <span class="keyword">true</span>);
-<a name="l02681"></a>02681
-<a name="l02682"></a>02682 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02683"></a>02683 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::traps =
-<a name="l02684"></a>02684 (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a> ? <span class="keyword">false</span> : <span class="keyword">true</span>);
-<a name="l02685"></a>02685
-<a name="l02686"></a>02686 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02687"></a>02687 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
-<a name="l02688"></a>02688 tinyness_before = <span class="keyword">false</span>;
-<a name="l02689"></a>02689
-<a name="l02690"></a>02690 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l02691"></a>02691 <span class="keyword">const</span> float_round_style numeric_limits&lt;<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;
-<a name="l02692"></a>02692 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; &gt;::round_style = round_indeterminate;
-<a name="l02693"></a>02693
-<a name="l02694"></a>02694 } <span class="comment">// namespace std</span>
-<a name="l02695"></a>02695 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l02696"></a>02696 <span class="preprocessor"></span><span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_HPP</span>
+<a name="l02001"></a>02001
+<a name="l02010"></a>02010 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02011"></a>02011 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da" title="Calculate the sum of two integers.">operator+</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
+<a name="l02012"></a>02012 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l02013"></a>02013 {
+<a name="l02014"></a>02014 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02015"></a>02015 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
+<a name="l02016"></a>02016 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02017"></a>02017 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02018"></a>02018 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() + n2._data());
+<a name="l02019"></a>02019 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02020"></a>02020 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02021"></a>02021 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02022"></a>02022 }
+<a name="l02023"></a>02023 } <span class="keywordflow">else</span> {
+<a name="l02024"></a>02024 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() + n2._data());
+<a name="l02025"></a>02025 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02026"></a>02026 }
+<a name="l02027"></a>02027 }
+<a name="l02028"></a>02028
+<a name="l02037"></a>02037 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02038"></a>02038 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ab6132105fbe7d7bf7a756b868b6a372e" title="Calculate the difference between two integers.">operator-</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
+<a name="l02039"></a>02039 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l02040"></a>02040 {
+<a name="l02041"></a>02041 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02042"></a>02042 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
+<a name="l02043"></a>02043 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02044"></a>02044 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02045"></a>02045 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() - n2._data());
+<a name="l02046"></a>02046 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative)
+<a name="l02047"></a>02047 r._fix_negative_unsigned();
+<a name="l02048"></a>02048 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02049"></a>02049 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02050"></a>02050 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02051"></a>02051 }
+<a name="l02052"></a>02052 } <span class="keywordflow">else</span> {
+<a name="l02053"></a>02053 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() - n2._data());
+<a name="l02054"></a>02054 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative)
+<a name="l02055"></a>02055 r._fix_negative_unsigned();
+<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 }
+<a name="l02058"></a>02058 }
+<a name="l02059"></a>02059
+<a name="l02072"></a>02072 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02073"></a>02073 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ab33a5481a4a4b16ab592be6a88cd245c" title="Calculate the product of two integers.">operator*</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
+<a name="l02074"></a>02074 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l02075"></a>02075 {
+<a name="l02076"></a>02076 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02077"></a>02077 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
+<a name="l02078"></a>02078 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02079"></a>02079 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02080"></a>02080 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() * n2._data());
+<a name="l02081"></a>02081 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02082"></a>02082 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02083"></a>02083 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02084"></a>02084 }
+<a name="l02085"></a>02085 } <span class="keywordflow">else</span> {
+<a name="l02086"></a>02086 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() * n2._data());
+<a name="l02087"></a>02087 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02088"></a>02088 }
+<a name="l02089"></a>02089 }
+<a name="l02090"></a>02090
+<a name="l02101"></a>02101 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02102"></a>02102 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a806df63b92124039591a4ca09a8538e0" title="Calculate how many dividends would fit into divisor.">operator/</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;
+<a name="l02103"></a>02103 dividend, <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; divisor)
+<a name="l02104"></a>02104 {
+<a name="l02105"></a>02105 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02106"></a>02106 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span>
+<a name="l02107"></a>02107 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02108"></a>02108 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02109"></a>02109 integer_t&lt;BOOST_XINT_APARAMS&gt; r(dividend._data() / divisor._data());
+<a name="l02110"></a>02110 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02111"></a>02111 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02112"></a>02112 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02113"></a>02113 }
+<a name="l02114"></a>02114 } <span class="keywordflow">else</span> {
+<a name="l02115"></a>02115 integer_t&lt;BOOST_XINT_APARAMS&gt; r(dividend._data() / divisor._data());
+<a name="l02116"></a>02116 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02117"></a>02117 }
+<a name="l02118"></a>02118 }
+<a name="l02119"></a>02119
+<a name="l02129"></a>02129 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02130"></a>02130 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a0ac4116f3a9285a7f2f10d0104b870f7" title="Get the remainder after dividing a number by another.">operator%</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
+<a name="l02131"></a>02131 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l02132"></a>02132 {
+<a name="l02133"></a>02133 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02134"></a>02134 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
+<a name="l02135"></a>02135 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02136"></a>02136 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02137"></a>02137 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() % n2._data());
+<a name="l02138"></a>02138 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02139"></a>02139 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02140"></a>02140 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02141"></a>02141 }
+<a name="l02142"></a>02142 } <span class="keywordflow">else</span> {
+<a name="l02143"></a>02143 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() % n2._data());
+<a name="l02144"></a>02144 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02145"></a>02145 }
+<a name="l02146"></a>02146 }
+<a name="l02147"></a>02147
+<a name="l02157"></a>02157 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02158"></a>02158 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ad3bc201c8c1f3e87611abce8e6972538" title="Combine two integers using a bitwise AND operation.">operator&amp;</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
+<a name="l02159"></a>02159 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l02160"></a>02160 {
+<a name="l02161"></a>02161 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02162"></a>02162 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
+<a name="l02163"></a>02163 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02164"></a>02164 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02165"></a>02165 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() &amp; 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 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02168"></a>02168 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02169"></a>02169 }
+<a name="l02170"></a>02170 } <span class="keywordflow">else</span> {
+<a name="l02171"></a>02171 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() &amp; 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 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02186"></a>02186 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a0b58f99b2c5bab4f7eec71d6058b23dd" title="Combine two integers using a bitwise OR operation.">operator|</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
+<a name="l02187"></a>02187 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l02188"></a>02188 {
+<a name="l02189"></a>02189 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02190"></a>02190 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
+<a name="l02191"></a>02191 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02192"></a>02192 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02193"></a>02193 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() | n2._data());
+<a name="l02194"></a>02194 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02195"></a>02195 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02196"></a>02196 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02197"></a>02197 }
+<a name="l02198"></a>02198 } <span class="keywordflow">else</span> {
+<a name="l02199"></a>02199 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() | n2._data());
+<a name="l02200"></a>02200 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02201"></a>02201 }
+<a name="l02202"></a>02202 }
+<a name="l02203"></a>02203
+<a name="l02213"></a>02213 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02214"></a>02214 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a0d1ce319bfb004fb6b93283bcb4f98c2" title="Combine two integers using a bitwise XOR operation.">operator^</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1,
+<a name="l02215"></a>02215 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n2)
+<a name="l02216"></a>02216 {
+<a name="l02217"></a>02217 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02218"></a>02218 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan())
+<a name="l02219"></a>02219 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02220"></a>02220 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02221"></a>02221 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() ^ n2._data());
+<a name="l02222"></a>02222 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02223"></a>02223 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02224"></a>02224 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02225"></a>02225 }
+<a name="l02226"></a>02226 } <span class="keywordflow">else</span> {
+<a name="l02227"></a>02227 integer_t&lt;BOOST_XINT_APARAMS&gt; r(n1._data() ^ n2._data());
+<a name="l02228"></a>02228 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02229"></a>02229 }
+<a name="l02230"></a>02230 }
+<a name="l02232"></a>02232
+<a name="l02235"></a>02235
+<a name="l02245"></a>02245 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02246"></a>02246 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num1,
+<a name="l02247"></a>02247 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num2)
+<a name="l02248"></a>02248 {
+<a name="l02249"></a>02249 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02250"></a>02250 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
+<a name="l02251"></a>02251 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02252"></a>02252 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02253"></a>02253 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l02254"></a>02254 <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
+<a name="l02255"></a>02255 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l02256"></a>02256 r._make_unique();
+<a name="l02257"></a>02257 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02258"></a>02258 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02259"></a>02259 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02260"></a>02260 }
+<a name="l02261"></a>02261 } <span class="keywordflow">else</span> {
+<a name="l02262"></a>02262 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l02263"></a>02263 <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
+<a name="l02264"></a>02264 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l02265"></a>02265 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02266"></a>02266 }
+<a name="l02267"></a>02267 }
+<a name="l02268"></a>02268
+<a name="l02279"></a>02279 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02280"></a>02280 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num1,
+<a name="l02281"></a>02281 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; num2)
+<a name="l02282"></a>02282 {
+<a name="l02283"></a>02283 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02284"></a>02284 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
+<a name="l02285"></a>02285 detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02286"></a>02286 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02287"></a>02287 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l02288"></a>02288 <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
+<a name="l02289"></a>02289 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>)
+<a name="l02290"></a>02290 r._make_unique();
+<a name="l02291"></a>02291 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02292"></a>02292 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02293"></a>02293 <span class="keywordflow">return</span> detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02294"></a>02294 }
+<a name="l02295"></a>02295 } <span class="keywordflow">else</span> {
+<a name="l02296"></a>02296 integer_t&lt;BOOST_XINT_APARAMS&gt; r;
+<a name="l02297"></a>02297 <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
+<a name="l02298"></a>02298 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == <span class="keyword">true</span>) r._make_unique();
+<a name="l02299"></a>02299 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l02300"></a>02300 }
+<a name="l02301"></a>02301 }
+<a name="l02302"></a>02302
+<a name="l02315"></a>02315 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02316"></a>02316 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n1, <span class="keyword">const</span>
+<a name="l02317"></a>02317 integer_t&lt;BOOST_XINT_APARAMS&gt; n2, <span class="keywordtype">bool</span> ignoresign = <span class="keyword">false</span>)
+<a name="l02318"></a>02318 {
+<a name="l02319"></a>02319 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02320"></a>02320 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> 2;
+<a name="l02321"></a>02321 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02322"></a>02322 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
+<a name="l02323"></a>02323 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02324"></a>02324 <span class="keywordflow">return</span> 2;
+<a name="l02325"></a>02325 }
+<a name="l02326"></a>02326 } <span class="keywordflow">else</span> {
+<a name="l02327"></a>02327 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
+<a name="l02328"></a>02328 }
+<a name="l02329"></a>02329 }
+<a name="l02330"></a>02330
+<a name="l02347"></a>02347 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02348"></a>02348 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt; n) {
+<a name="l02349"></a>02349 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02350"></a>02350 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> 0;
+<a name="l02351"></a>02351 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
+<a name="l02352"></a>02352 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n._data());
+<a name="l02353"></a>02353 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
+<a name="l02354"></a>02354 <span class="keywordflow">return</span> 0;
+<a name="l02355"></a>02355 }
+<a name="l02356"></a>02356 } <span class="keywordflow">else</span> {
+<a name="l02357"></a>02357 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n._data());
+<a name="l02358"></a>02358 }
+<a name="l02359"></a>02359 }
+<a name="l02361"></a>02361
+<a name="l02363"></a>02363 <span class="preprocessor">#define BOOST_XINT_ANY_COMPARE(rtype, op) \</span>
+<a name="l02364"></a>02364 <span class="preprocessor"> template &lt;BOOST_XINT_CLASS_APARAMS, typename N&gt; \</span>
+<a name="l02365"></a>02365 <span class="preprocessor"> rtype op(const integer_t&lt;BOOST_XINT_APARAMS&gt; n1, const N n2) { \</span>
+<a name="l02366"></a>02366 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
+<a name="l02367"></a>02367 <span class="preprocessor"> BOOST_XINT_TRY { \</span>
+<a name="l02368"></a>02368 <span class="preprocessor"> return op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \</span>
+<a name="l02369"></a>02369 <span class="preprocessor"> } BOOST_XINT_CATCH { \</span>
+<a name="l02370"></a>02370 <span class="preprocessor"> return rtype(0); \</span>
+<a name="l02371"></a>02371 <span class="preprocessor"> } \</span>
+<a name="l02372"></a>02372 <span class="preprocessor"> } else { \</span>
+<a name="l02373"></a>02373 <span class="preprocessor"> return op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \</span>
+<a name="l02374"></a>02374 <span class="preprocessor"> } \</span>
+<a name="l02375"></a>02375 <span class="preprocessor"> } \</span>
+<a name="l02376"></a>02376 <span class="preprocessor"> \</span>
+<a name="l02377"></a>02377 <span class="preprocessor"> template &lt;typename N, BOOST_XINT_CLASS_APARAMS&gt; \</span>
+<a name="l02378"></a>02378 <span class="preprocessor"> rtype op(const N n1, const integer_t&lt;BOOST_XINT_APARAMS&gt; n2) { \</span>
+<a name="l02379"></a>02379 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
+<a name="l02380"></a>02380 <span class="preprocessor"> BOOST_XINT_TRY { \</span>
+<a name="l02381"></a>02381 <span class="preprocessor"> return op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \</span>
+<a name="l02382"></a>02382 <span class="preprocessor"> } BOOST_XINT_CATCH { \</span>
+<a name="l02383"></a>02383 <span class="preprocessor"> return rtype(0); \</span>
+<a name="l02384"></a>02384 <span class="preprocessor"> } \</span>
+<a name="l02385"></a>02385 <span class="preprocessor"> } else { \</span>
+<a name="l02386"></a>02386 <span class="preprocessor"> return op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \</span>
+<a name="l02387"></a>02387 <span class="preprocessor"> } \</span>
+<a name="l02388"></a>02388 <span class="preprocessor"> }</span>
+<a name="l02389"></a>02389 <span class="preprocessor"></span>
+<a name="l02390"></a>02390 <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>&lt;)
+<a name="l02391"></a>02391 <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&gt;)
+<a name="l02392"></a>02392 <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&lt;=)
+<a name="l02393"></a>02393 <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&gt;=)
+<a name="l02394"></a>02394 <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="l02395"></a>02395 <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="l02396"></a><a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090">02396</a> <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#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>)
+<a name="l02397"></a>02397
+<a name="l02399"></a>02399 <span class="preprocessor">#define BOOST_XINT_ANY_MATH(op) \</span>
+<a name="l02400"></a>02400 <span class="preprocessor"> template &lt;BOOST_XINT_CLASS_APARAMS, typename N&gt; \</span>
+<a name="l02401"></a>02401 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; op(const integer_t&lt;BOOST_XINT_APARAMS&gt; n1, \</span>
+<a name="l02402"></a>02402 <span class="preprocessor"> const N n2) \</span>
+<a name="l02403"></a>02403 <span class="preprocessor"> { \</span>
+<a name="l02404"></a>02404 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
+<a name="l02405"></a>02405 <span class="preprocessor"> BOOST_XINT_TRY { \</span>
+<a name="l02406"></a>02406 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; r(op(n1, \</span>
+<a name="l02407"></a>02407 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt;(n2))); \</span>
+<a name="l02408"></a>02408 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
+<a name="l02409"></a>02409 <span class="preprocessor"> r._make_unique(); \</span>
+<a name="l02410"></a>02410 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; \</span>
+<a name="l02411"></a>02411 <span class="preprocessor"> r._data().negative) r._fix_negative_unsigned(); \</span>
+<a name="l02412"></a>02412 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<a name="l02413"></a>02413 <span class="preprocessor"> } BOOST_XINT_CATCH { \</span>
+<a name="l02414"></a>02414 <span class="preprocessor"> return detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(); \</span>
+<a name="l02415"></a>02415 <span class="preprocessor"> } \</span>
+<a name="l02416"></a>02416 <span class="preprocessor"> } else { \</span>
+<a name="l02417"></a>02417 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; r(op(n1, \</span>
+<a name="l02418"></a>02418 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt;(n2))); \</span>
+<a name="l02419"></a>02419 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
+<a name="l02420"></a>02420 <span class="preprocessor"> r._make_unique(); \</span>
+<a name="l02421"></a>02421 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative) \</span>
+<a name="l02422"></a>02422 <span class="preprocessor"> r._fix_negative_unsigned(); \</span>
+<a name="l02423"></a>02423 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<a name="l02424"></a>02424 <span class="preprocessor"> } \</span>
+<a name="l02425"></a>02425 <span class="preprocessor"> } \</span>
+<a name="l02426"></a>02426 <span class="preprocessor"> \</span>
+<a name="l02427"></a>02427 <span class="preprocessor"> template &lt;typename N, BOOST_XINT_CLASS_APARAMS&gt; \</span>
+<a name="l02428"></a>02428 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; op(const N n1, const \</span>
+<a name="l02429"></a>02429 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; n2) \</span>
+<a name="l02430"></a>02430 <span class="preprocessor"> { \</span>
+<a name="l02431"></a>02431 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) { \</span>
+<a name="l02432"></a>02432 <span class="preprocessor"> BOOST_XINT_TRY { \</span>
+<a name="l02433"></a>02433 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; \</span>
+<a name="l02434"></a>02434 <span class="preprocessor"> r(op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2)); \</span>
+<a name="l02435"></a>02435 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
+<a name="l02436"></a>02436 <span class="preprocessor"> r._make_unique(); \</span>
+<a name="l02437"></a>02437 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; \</span>
+<a name="l02438"></a>02438 <span class="preprocessor"> r._data().negative) r._fix_negative_unsigned(); \</span>
+<a name="l02439"></a>02439 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<a name="l02440"></a>02440 <span class="preprocessor"> } BOOST_XINT_CATCH { \</span>
+<a name="l02441"></a>02441 <span class="preprocessor"> return detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;(); \</span>
+<a name="l02442"></a>02442 <span class="preprocessor"> } \</span>
+<a name="l02443"></a>02443 <span class="preprocessor"> } else { \</span>
+<a name="l02444"></a>02444 <span class="preprocessor"> integer_t&lt;BOOST_XINT_APARAMS&gt; \</span>
+<a name="l02445"></a>02445 <span class="preprocessor"> r(op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2)); \</span>
+<a name="l02446"></a>02446 <span class="preprocessor"> if (integer_t&lt;BOOST_XINT_APARAMS&gt;::Threadsafe == true) \</span>
+<a name="l02447"></a>02447 <span class="preprocessor"> r._make_unique(); \</span>
+<a name="l02448"></a>02448 <span class="preprocessor"> if (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; r._data().negative) \</span>
+<a name="l02449"></a>02449 <span class="preprocessor"> r._fix_negative_unsigned(); \</span>
+<a name="l02450"></a>02450 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<a name="l02451"></a>02451 <span class="preprocessor"> } \</span>
+<a name="l02452"></a>02452 <span class="preprocessor"> }</span>
+<a name="l02453"></a>02453 <span class="preprocessor"></span>
+<a name="l02454"></a>02454 <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#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>)
+<a name="l02455"></a>02455 <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#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>)
+<a name="l02456"></a>02456 <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#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>)
+<a name="l02457"></a>02457 <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#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>)
+<a name="l02458"></a>02458 <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#aca3ee91c50b15fa902c37fa16763f52b" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>)
+<a name="l02459"></a>02459 <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="l02460"></a>02460 <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="l02461"></a>02461 <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="l02462"></a>02462 <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="l02463"></a>02463 <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="l02464"></a>02464 <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&amp;)
+<a name="l02465"></a>02465 <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="l02466"></a>02466 <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="l02467"></a>02467 <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#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>)
+<a name="l02468"></a>02468 <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#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>)
+<a name="l02469"></a>02469
+<a name="l02472"></a>02472 template &lt;typename charT, typename traits, <a class="code" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">BOOST_XINT_CLASS_APARAMS</a>&gt; inline
+<a name="l02473"></a>02473 std::basic_ostream&lt;charT,traits&gt;&amp; operator&lt;&lt;(std::basic_ostream&lt;charT,
+<a name="l02474"></a>02474 traits&gt;&amp; out, const integer_t&lt;<a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; n)
+<a name="l02475"></a>02475 {
+<a name="l02476"></a>02476 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow &amp;&amp; n.is_nan()) <span class="keywordflow">return</span>
+<a name="l02477"></a>02477 <span class="keyword">operator</span>&lt;&lt;(out, detail::nan_text&lt;charT&gt;());
+<a name="l02478"></a>02478 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">operator&lt;&lt;</a>(out, n._data());
+<a name="l02479"></a><a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">02479</a> }
+<a name="l02480"></a>02480
+<a name="l02481"></a>02481 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">typename</span> traits, BOOST_XINT_CLASS_APARAMS&gt; <span class="keyword">inline</span>
+<a name="l02482"></a>02482 std::basic_istream&lt;charT,traits&gt;&amp; <a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a>(std::basic_istream&lt;charT,
+<a name="l02483"></a>02483 traits&gt;&amp; in, integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; n)
+<a name="l02484"></a>02484 {
+<a name="l02485"></a>02485 <span class="keywordflow">if</span> (integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow) {
+<a name="l02486"></a>02486 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; tnan = detail::nan_text&lt;charT&gt;();
+<a name="l02487"></a>02487 charT nextchar = charT(in.peek());
+<a name="l02488"></a>02488 <span class="keywordflow">if</span> (nextchar == tnan[0]) {
+<a name="l02489"></a>02489 <span class="comment">// Must be either #NaN# or an error</span>
+<a name="l02490"></a>02490 std::vector&lt;charT&gt; buffer;
+<a name="l02491"></a>02491
+<a name="l02492"></a>02492 charT p = 0;
+<a name="l02493"></a>02493 <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; tnan.length(); ++i) {
+<a name="l02494"></a>02494 in &gt;&gt; p;
+<a name="l02495"></a>02495 buffer.push_back(p);
+<a name="l02496"></a>02496 }
+<a name="l02497"></a>02497 buffer.push_back(0);
+<a name="l02498"></a>02498
+<a name="l02499"></a>02499 std::basic_string&lt;charT&gt; str(&amp;buffer[0]);
+<a name="l02500"></a>02500 <span class="keywordflow">if</span> (str == tnan)
+<a name="l02501"></a>02501 n = detail::get_nan&lt;integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02502"></a>02502 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
+<a name="l02503"></a>02503 <span class="keywordflow">return</span> in;
+<a name="l02504"></a>02504 }
+<a name="l02505"></a>02505 }
+<a name="l02506"></a>02506 <a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a>(in, n._data());
+<a name="l02507"></a>02507 <span class="keywordflow">if</span> (!integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed &amp;&amp; n._data().negative)
+<a name="l02508"></a>02508 n._fix_negative_unsigned();
+<a name="l02509"></a>02509 <span class="keywordflow">return</span> in;
+<a name="l02510"></a>02510 }
+<a name="l02512"></a>02512
+<a name="l02513"></a>02513 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02514"></a>02514 <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; left,
+<a name="l02515"></a>02515 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; right)
+<a name="l02516"></a>02516 {
+<a name="l02517"></a>02517 left._swap(right);
+<a name="l02518"></a>02518 }
+<a name="l02519"></a>02519
+<a name="l02524"></a>02524 <span class="keyword">typedef</span> integer_t&lt;&gt; <a class="code" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">integer</a>;
+<a name="l02525"></a>02525
+<a name="l02531"></a>02531 <span class="keyword">typedef</span> integer_t&lt;options::nothrow&gt; <a class="code" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2" title="The default arbitrary-length nothrow_integer type.">nothrow_integer</a>;
+<a name="l02532"></a>02532
+<a name="l02533"></a>02533 } <span class="comment">// namespace xint</span>
+<a name="l02534"></a>02534 } <span class="comment">// namespace boost</span>
+<a name="l02535"></a>02535
+<a name="l02536"></a>02536 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l02537"></a>02537 <span class="preprocessor"></span><span class="keyword">namespace </span>std {
+<a name="l02538"></a>02538
+<a name="l02539"></a>02539 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02540"></a>02540 <span class="keyword">class </span>numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt; {
+<a name="l02541"></a>02541 <span class="keyword">public</span>:
+<a name="l02542"></a>02542 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_specialized;
+<a name="l02543"></a>02543
+<a name="l02544"></a>02544 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> min
+<a name="l02545"></a>02545 BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
+<a name="l02546"></a>02546 {
+<a name="l02547"></a>02547 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>)
+<a name="l02548"></a>02548 <span class="keywordflow">return</span> -~(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a>());
+<a name="l02549"></a>02549 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l02550"></a>02550 }
+<a name="l02551"></a>02551 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> max
+<a name="l02552"></a>02552 BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
+<a name="l02553"></a>02553 {
+<a name="l02554"></a>02554 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>)
+<a name="l02555"></a>02555 <span class="keywordflow">return</span> ~(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a>());
+<a name="l02556"></a>02556 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l02557"></a>02557 }
+<a name="l02558"></a>02558
+<a name="l02559"></a>02559 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits;
+<a name="l02560"></a>02560 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits10;
+<a name="l02561"></a>02561 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_signed;
+<a name="l02562"></a>02562 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_integer;
+<a name="l02563"></a>02563 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_exact;
+<a name="l02564"></a>02564 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> radix;
+<a name="l02565"></a>02565 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> epsilon() throw() { <span class="keywordflow">return</span>
+<a name="l02566"></a>02566 0; }
+<a name="l02567"></a>02567 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> round_error() throw() {
+<a name="l02568"></a>02568 <span class="keywordflow">return</span> 0; }
+<a name="l02569"></a>02569
+<a name="l02570"></a>02570 <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="l02571"></a>02571 <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="l02572"></a>02572 <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="l02573"></a>02573 <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="l02574"></a>02574
+<a name="l02575"></a>02575 <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="l02576"></a>02576 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_quiet_NaN;
+<a name="l02577"></a>02577 <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="l02578"></a>02578 <span class="keyword">static</span> <span class="keyword">const</span> float_denorm_style has_denorm; <span class="comment">// N/A</span>
+<a name="l02579"></a>02579 <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="l02580"></a>02580
+<a name="l02581"></a>02581 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> infinity() throw() {
+<a name="l02582"></a>02582 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02583"></a>02583 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> quiet_NaN() throw() {
+<a name="l02584"></a>02584 <span class="keywordflow">if</span> (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a>) <span class="keywordflow">return</span> boost::
+<a name="l02585"></a>02585 xint::detail::get_nan&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;();
+<a name="l02586"></a>02586 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
+<a name="l02587"></a>02587 }
+<a name="l02588"></a>02588 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> signaling_NaN() throw() {
+<a name="l02589"></a>02589 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02590"></a>02590 <span class="keyword">static</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;</a> denorm_min() throw() {
+<a name="l02591"></a>02591 <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
+<a name="l02592"></a>02592
+<a name="l02593"></a>02593 <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="l02594"></a>02594 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_bounded;
+<a name="l02595"></a>02595 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_modulo;
+<a name="l02596"></a>02596
+<a name="l02597"></a>02597 <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="l02598"></a>02598 <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="l02599"></a>02599 <span class="keyword">static</span> <span class="keyword">const</span> float_round_style round_style; <span class="comment">// N/A</span>
+<a name="l02600"></a>02600 };
+<a name="l02601"></a>02601
+<a name="l02602"></a>02602 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02603"></a>02603 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02604"></a>02604 is_specialized = <span class="keyword">true</span>;
+<a name="l02605"></a>02605
+<a name="l02606"></a>02606 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02607"></a>02607 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::digits =
+<a name="l02608"></a>02608 <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>);
+<a name="l02609"></a>02609
+<a name="l02610"></a>02610 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02611"></a>02611 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::digits10
+<a name="l02612"></a>02612 = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(boost::xint::detail::log10_bits(
+<a name="l02613"></a>02613 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a>));
+<a name="l02614"></a>02614
+<a name="l02615"></a>02615 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02616"></a>02616 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02617"></a>02617 is_signed = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Signed</a> ? <span class="keyword">true</span> :
+<a name="l02618"></a>02618 <span class="keyword">false</span>);
+<a name="l02619"></a>02619
+<a name="l02620"></a>02620 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02621"></a>02621 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02622"></a>02622 is_integer = <span class="keyword">true</span>;
+<a name="l02623"></a>02623
+<a name="l02624"></a>02624 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02625"></a>02625 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::is_exact
+<a name="l02626"></a>02626 = <span class="keyword">true</span>;
+<a name="l02627"></a>02627
+<a name="l02628"></a>02628 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02629"></a>02629 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::radix =
+<a name="l02630"></a>02630 2;
+<a name="l02631"></a>02631
+<a name="l02632"></a>02632 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02633"></a>02633 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02634"></a>02634 min_exponent = 0;
+<a name="l02635"></a>02635
+<a name="l02636"></a>02636 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02637"></a>02637 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02638"></a>02638 min_exponent10 = 0;
+<a name="l02639"></a>02639
+<a name="l02640"></a>02640 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02641"></a>02641 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02642"></a>02642 max_exponent = 0;
+<a name="l02643"></a>02643
+<a name="l02644"></a>02644 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02645"></a>02645 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02646"></a>02646 max_exponent10 = 0;
+<a name="l02647"></a>02647
+<a name="l02648"></a>02648 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02649"></a>02649 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02650"></a>02650 has_infinity = <span class="keyword">false</span>;
+<a name="l02651"></a>02651
+<a name="l02652"></a>02652 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02653"></a>02653 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02654"></a>02654 has_quiet_NaN = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a> ? <span class="keyword">true</span>
+<a name="l02655"></a>02655 : <span class="keyword">false</span>);
+<a name="l02656"></a>02656
+<a name="l02657"></a>02657 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02658"></a>02658 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02659"></a>02659 has_signaling_NaN = <span class="keyword">false</span>;
+<a name="l02660"></a>02660
+<a name="l02661"></a>02661 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02662"></a>02662 <span class="keyword">const</span> float_denorm_style numeric_limits&lt;<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;
+<a name="l02663"></a>02663 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; &gt;::has_denorm = denorm_absent;
+<a name="l02664"></a>02664
+<a name="l02665"></a>02665 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02666"></a>02666 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02667"></a>02667 has_denorm_loss = <span class="keyword">false</span>;
+<a name="l02668"></a>02668
+<a name="l02669"></a>02669 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02670"></a>02670 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02671"></a>02671 is_iec559 = <span class="keyword">false</span>;
+<a name="l02672"></a>02672
+<a name="l02673"></a>02673 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02674"></a>02674 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02675"></a>02675 is_bounded = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a> == 0 ? <span class="keyword">false</span>
+<a name="l02676"></a>02676 : <span class="keyword">true</span>);
+<a name="l02677"></a>02677
+<a name="l02678"></a>02678 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02679"></a>02679 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02680"></a>02680 is_modulo = (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Bits</a> == 0 ? <span class="keyword">false</span> :
+<a name="l02681"></a>02681 <span class="keyword">true</span>);
+<a name="l02682"></a>02682
+<a name="l02683"></a>02683 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02684"></a>02684 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::traps =
+<a name="l02685"></a>02685 (<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt;::Nothrow</a> ? <span class="keyword">false</span> : <span class="keyword">true</span>);
+<a name="l02686"></a>02686
+<a name="l02687"></a>02687 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02688"></a>02688 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;boost::xint::integer_t&lt;BOOST_XINT_APARAMS&gt; &gt;::
+<a name="l02689"></a>02689 tinyness_before = <span class="keyword">false</span>;
+<a name="l02690"></a>02690
+<a name="l02691"></a>02691 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l02692"></a>02692 <span class="keyword">const</span> float_round_style numeric_limits&lt;<a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;
+<a name="l02693"></a>02693 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; &gt;::round_style = round_indeterminate;
+<a name="l02694"></a>02694
+<a name="l02695"></a>02695 } <span class="comment">// namespace std</span>
+<a name="l02696"></a>02696 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l02697"></a>02697 <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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -43,14 +43,80 @@
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>The items within this namespace are meant for internal use only. </p>
 <br/></td></tr>
 </p>
+<tr><td colspan="2"><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a>&nbsp;&nbsp;&nbsp;catch (std::exception&amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="internals_8hpp.html#a376c1d9d0cc79d3d74539c6b9c38f304">BOOST_XINT_CATCH_BADALLOC</a>&nbsp;&nbsp;&nbsp;catch (std::bad_alloc&amp;)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="internals_8hpp.html#ab7e46f415e3d76f4d3b7d350bcbe3a85">BOOST_XINT_CATCH_E</a>&nbsp;&nbsp;&nbsp;catch (std::exception&amp; e)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a>&nbsp;&nbsp;&nbsp;try</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Contains the internal definitions required for all XInt types. </p>
 <p>This file will be included by the library itself when needed. </p>
 
 <p>Definition in file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a5117d87820df153f9c26dd5ff8ac318a"></a><!-- doxytag: member="internals.hpp::BOOST_XINT_CATCH" ref="a5117d87820df153f9c26dd5ff8ac318a" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BOOST_XINT_CATCH&nbsp;&nbsp;&nbsp;catch (std::exception&amp;)</td>
+ </tr>
+ </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00034">34</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a376c1d9d0cc79d3d74539c6b9c38f304"></a><!-- doxytag: member="internals.hpp::BOOST_XINT_CATCH_BADALLOC" ref="a376c1d9d0cc79d3d74539c6b9c38f304" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BOOST_XINT_CATCH_BADALLOC&nbsp;&nbsp;&nbsp;catch (std::bad_alloc&amp;)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00033">33</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab7e46f415e3d76f4d3b7d350bcbe3a85"></a><!-- doxytag: member="internals.hpp::BOOST_XINT_CATCH_E" ref="ab7e46f415e3d76f4d3b7d350bcbe3a85" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BOOST_XINT_CATCH_E&nbsp;&nbsp;&nbsp;catch (std::exception&amp; e)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00035">35</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a693c4f473d303c632864f6084c394f03"></a><!-- doxytag: member="internals.hpp::BOOST_XINT_TRY" ref="a693c4f473d303c632864f6084c394f03" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BOOST_XINT_TRY&nbsp;&nbsp;&nbsp;try</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="internals_8hpp_source.html#l00032">32</a> of file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -42,99 +42,111 @@
 <a name="l00023"></a>00023 <span class="comment">// Leave this commented out to use it as a header-only library.</span>
 <a name="l00024"></a>00024 <span class="comment">//#define BOOST_XINT_COMPILED_LIB</span>
 <a name="l00025"></a>00025
-<a name="l00026"></a>00026 <span class="preprocessor">#include &quot;../exceptions.hpp&quot;</span>
-<a name="l00027"></a>00027 <span class="preprocessor">#include &quot;../random.hpp&quot;</span>
-<a name="l00028"></a>00028
-<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;<a class="code" href="basic__types__and__includes_8hpp.html" title="Contains the most basic types, constants, and includes.">basic_types_and_includes.hpp</a>&quot;</span>
-<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;<a class="code" href="bitqueue_8hpp.html" title="Contains the bitqueue_t class, used internally.">bitqueue.hpp</a>&quot;</span>
-<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="policies_8hpp.html" title="Contains the policy classes.">policies.hpp</a>&quot;</span>
-<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="magnitude__manager_8hpp.html" title="Contains the magnitude_manager_t class.">magnitude_manager.hpp</a>&quot;</span>
-<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="raw__integer_8hpp.html" title="Contains the raw_integer class declaration, and miscellaneous definitions for member...">raw_integer.hpp</a>&quot;</span>
-<a name="l00034"></a>00034
-<a name="l00035"></a>00035 <span class="preprocessor">#include &quot;<a class="code" href="log2_8hpp.html" title="Contains the log2 implementations.">log2.hpp</a>&quot;</span>
-<a name="l00036"></a>00036 <span class="preprocessor">#include &quot;<a class="code" href="shift_8hpp.html" title="Contains the bit-shifting function definitions.">shift.hpp</a>&quot;</span>
-<a name="l00037"></a>00037 <span class="preprocessor">#include &quot;<a class="code" href="bitfunctions_8hpp.html" title="Contains the definitions for the bit-manipulation functions.">bitfunctions.hpp</a>&quot;</span>
-<a name="l00038"></a>00038 <span class="preprocessor">#include &quot;<a class="code" href="andorxor_8hpp.html" title="Contains the functions for ANDing, ORing, and XORing.">andorxor.hpp</a>&quot;</span>
-<a name="l00039"></a>00039 <span class="preprocessor">#include &quot;<a class="code" href="randomgen_8hpp.html" title="Contains the function definitions for the random number classes.">randomgen.hpp</a>&quot;</span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include &quot;<a class="code" href="random__by__size_8hpp.html" title="Contains the random_by_size function.">random_by_size.hpp</a>&quot;</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include &quot;<a class="code" href="compare_8hpp.html" title="Contains the definitions for the comparison functions.">compare.hpp</a>&quot;</span>
-<a name="l00042"></a>00042
-<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;<a class="code" href="addsubtract_8hpp.html" title="Contains the definitions of the addition and subtraction functions.">addsubtract.hpp</a>&quot;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;<a class="code" href="multiply_8hpp.html" title="Contains the multiplication and squaring functions.">multiply.hpp</a>&quot;</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;<a class="code" href="divide_8hpp.html" title="Contains the definitions of the divide function, and its supporting functions.">divide.hpp</a>&quot;</span>
+<a name="l00026"></a>00026 <span class="preprocessor">#ifdef BOOST_XINT_NO_EXCEPTIONS</span>
+<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_TRY if (1)</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_BADALLOC else if (0)</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH else</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_E else</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00032"></a><a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">00032</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_TRY try</span>
+<a name="l00033"></a><a class="code" href="internals_8hpp.html#a376c1d9d0cc79d3d74539c6b9c38f304">00033</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_BADALLOC catch (std::bad_alloc&amp;)</span>
+<a name="l00034"></a><a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">00034</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH catch (std::exception&amp;)</span>
+<a name="l00035"></a><a class="code" href="internals_8hpp.html#ab7e46f415e3d76f4d3b7d350bcbe3a85">00035</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CATCH_E catch (std::exception&amp; e)</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include &quot;../exceptions.hpp&quot;</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include &quot;../random.hpp&quot;</span>
+<a name="l00040"></a>00040
+<a name="l00041"></a>00041 <span class="preprocessor">#include &quot;<a class="code" href="basic__types__and__includes_8hpp.html" title="Contains the most basic types, constants, and includes.">basic_types_and_includes.hpp</a>&quot;</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &quot;<a class="code" href="bitqueue_8hpp.html" title="Contains the bitqueue_t class, used internally.">bitqueue.hpp</a>&quot;</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &quot;<a class="code" href="policies_8hpp.html" title="Contains the policy classes.">policies.hpp</a>&quot;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &quot;<a class="code" href="magnitude__manager_8hpp.html" title="Contains the magnitude_manager_t class.">magnitude_manager.hpp</a>&quot;</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;<a class="code" href="raw__integer_8hpp.html" title="Contains the raw_integer class declaration, and miscellaneous definitions for member...">raw_integer.hpp</a>&quot;</span>
 <a name="l00046"></a>00046
-<a name="l00047"></a>00047 <span class="preprocessor">#include &quot;<a class="code" href="convert_8hpp.html" title="Contains the conversion functions.">convert.hpp</a>&quot;</span>
-<a name="l00048"></a>00048 <span class="preprocessor">#include &quot;<a class="code" href="streams_8hpp.html" title="Contains the stream input/output code for raw_integer types.">streams.hpp</a>&quot;</span>
-<a name="l00049"></a>00049
-<a name="l00050"></a>00050 <span class="preprocessor">#include &quot;<a class="code" href="roots_8hpp.html" title="Contains the square-root function definition, and any future root-related ones.">roots.hpp</a>&quot;</span>
-<a name="l00051"></a>00051 <span class="preprocessor">#include &quot;<a class="code" href="powers_8hpp.html" title="Contains functions related to powers of a number.">powers.hpp</a>&quot;</span>
-<a name="l00052"></a>00052 <span class="preprocessor">#include &quot;<a class="code" href="gcd_8hpp.html" title="Contains functions using the Greatest Common Denominator algorithm.">gcd.hpp</a>&quot;</span>
-<a name="l00053"></a>00053 <span class="preprocessor">#include &quot;<a class="code" href="monty_8hpp.html" title="Contains the Montgomery Reduction functions.">monty.hpp</a>&quot;</span>
-<a name="l00054"></a>00054 <span class="preprocessor">#include &quot;<a class="code" href="modular_8hpp.html" title="Contains the modular math functions.">modular.hpp</a>&quot;</span>
-<a name="l00055"></a>00055 <span class="preprocessor">#include &quot;<a class="code" href="prime_8hpp.html" title="Contains the function definitions for the prime number functions.">prime.hpp</a>&quot;</span>
-<a name="l00056"></a>00056
-<a name="l00059"></a>00059
-<a name="l00062"></a>00062
-<a name="l00063"></a>00063 <span class="keyword">namespace </span>boost {
-<a name="l00064"></a>00064 <span class="keyword">namespace </span>xint {
-<a name="l00065"></a>00065 <span class="keyword">namespace </span>detail {
-<a name="l00067"></a>00067
-<a name="l00068"></a>00068 <span class="keyword">inline</span> std::size_t log10_bits(std::size_t bits) {
-<a name="l00069"></a>00069 <span class="comment">// large_step and count_per_large_step are based on a minimum-32-bit integer</span>
-<a name="l00070"></a>00070 assert(std::numeric_limits&lt;boost::intmax_t&gt;::digits &gt;= 32);
+<a name="l00047"></a>00047 <span class="preprocessor">#include &quot;<a class="code" href="log2_8hpp.html" title="Contains the log2 implementations.">log2.hpp</a>&quot;</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include &quot;<a class="code" href="shift_8hpp.html" title="Contains the bit-shifting function definitions.">shift.hpp</a>&quot;</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include &quot;<a class="code" href="bitfunctions_8hpp.html" title="Contains the definitions for the bit-manipulation functions.">bitfunctions.hpp</a>&quot;</span>
+<a name="l00050"></a>00050 <span class="preprocessor">#include &quot;<a class="code" href="andorxor_8hpp.html" title="Contains the functions for ANDing, ORing, and XORing.">andorxor.hpp</a>&quot;</span>
+<a name="l00051"></a>00051 <span class="preprocessor">#include &quot;<a class="code" href="randomgen_8hpp.html" title="Contains the function definitions for the random number classes.">randomgen.hpp</a>&quot;</span>
+<a name="l00052"></a>00052 <span class="preprocessor">#include &quot;<a class="code" href="random__by__size_8hpp.html" title="Contains the random_by_size function.">random_by_size.hpp</a>&quot;</span>
+<a name="l00053"></a>00053 <span class="preprocessor">#include &quot;<a class="code" href="compare_8hpp.html" title="Contains the definitions for the comparison functions.">compare.hpp</a>&quot;</span>
+<a name="l00054"></a>00054
+<a name="l00055"></a>00055 <span class="preprocessor">#include &quot;<a class="code" href="addsubtract_8hpp.html" title="Contains the definitions of the addition and subtraction functions.">addsubtract.hpp</a>&quot;</span>
+<a name="l00056"></a>00056 <span class="preprocessor">#include &quot;<a class="code" href="multiply_8hpp.html" title="Contains the multiplication and squaring functions.">multiply.hpp</a>&quot;</span>
+<a name="l00057"></a>00057 <span class="preprocessor">#include &quot;<a class="code" href="divide_8hpp.html" title="Contains the definitions of the divide function, and its supporting functions.">divide.hpp</a>&quot;</span>
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 <span class="preprocessor">#include &quot;<a class="code" href="convert_8hpp.html" title="Contains the conversion functions.">convert.hpp</a>&quot;</span>
+<a name="l00060"></a>00060 <span class="preprocessor">#include &quot;<a class="code" href="streams_8hpp.html" title="Contains the stream input/output code for raw_integer types.">streams.hpp</a>&quot;</span>
+<a name="l00061"></a>00061
+<a name="l00062"></a>00062 <span class="preprocessor">#include &quot;<a class="code" href="roots_8hpp.html" title="Contains the square-root function definition, and any future root-related ones.">roots.hpp</a>&quot;</span>
+<a name="l00063"></a>00063 <span class="preprocessor">#include &quot;<a class="code" href="powers_8hpp.html" title="Contains functions related to powers of a number.">powers.hpp</a>&quot;</span>
+<a name="l00064"></a>00064 <span class="preprocessor">#include &quot;<a class="code" href="gcd_8hpp.html" title="Contains functions using the Greatest Common Denominator algorithm.">gcd.hpp</a>&quot;</span>
+<a name="l00065"></a>00065 <span class="preprocessor">#include &quot;<a class="code" href="monty_8hpp.html" title="Contains the Montgomery Reduction functions.">monty.hpp</a>&quot;</span>
+<a name="l00066"></a>00066 <span class="preprocessor">#include &quot;<a class="code" href="modular_8hpp.html" title="Contains the modular math functions.">modular.hpp</a>&quot;</span>
+<a name="l00067"></a>00067 <span class="preprocessor">#include &quot;<a class="code" href="prime_8hpp.html" title="Contains the function definitions for the prime number functions.">prime.hpp</a>&quot;</span>
+<a name="l00068"></a>00068
 <a name="l00071"></a>00071
-<a name="l00072"></a>00072 <span class="keyword">typedef</span> raw_integer_t&lt;0, false, std::allocator&lt;digit_t&gt; &gt; T;
-<a name="l00073"></a>00073 <span class="keyword">const</span> T large_step(1000000000), small_step(10);
-<a name="l00074"></a>00074 <span class="keyword">const</span> std::size_t count_per_large_step = 9, count_per_small_step = 1;
-<a name="l00075"></a>00075
-<a name="l00076"></a>00076 T n;
-<a name="l00077"></a>00077 pow2(n, bits);
-<a name="l00078"></a>00078 --n;
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="keyword">namespace </span>boost {
+<a name="l00076"></a>00076 <span class="keyword">namespace </span>xint {
+<a name="l00077"></a>00077 <span class="keyword">namespace </span>detail {
 <a name="l00079"></a>00079
-<a name="l00080"></a>00080 std::size_t r = 0;
-<a name="l00081"></a>00081 <span class="keywordflow">while</span> (n &gt;= large_step) { n /= large_step; r += count_per_large_step; }
-<a name="l00082"></a>00082 <span class="keywordflow">while</span> (n &gt;= small_step) { n /= small_step; r += count_per_small_step; }
-<a name="l00083"></a>00083 <span class="keywordflow">return</span> r;
-<a name="l00084"></a>00084 }
-<a name="l00085"></a>00085
-<a name="l00086"></a>00086 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00087"></a>00087 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; nan_text() {
-<a name="l00088"></a>00088 <span class="keyword">static</span> std::basic_string&lt;charT&gt; r;
-<a name="l00089"></a>00089 <span class="keywordflow">if</span> (r.empty()) {
-<a name="l00090"></a>00090 std::basic_ostringstream&lt;charT&gt; out;
-<a name="l00091"></a>00091 out &lt;&lt; <span class="stringliteral">&quot;#NaN#&quot;</span>;
-<a name="l00092"></a>00092 r = out.str();
-<a name="l00093"></a>00093 }
-<a name="l00094"></a>00094 <span class="keywordflow">return</span> r;
-<a name="l00095"></a>00095 }
-<a name="l00096"></a>00096
-<a name="l00097"></a>00097 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00098"></a>00098 <span class="keywordtype">bool</span> is_nan_text(<span class="keyword">const</span> std::basic_string&lt;charT&gt; str) {
-<a name="l00099"></a>00099 <span class="keywordflow">return</span> (str == nan_text&lt;charT&gt;());
-<a name="l00100"></a>00100 }
-<a name="l00101"></a>00101
-<a name="l00102"></a>00102 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00103"></a>00103 T get_nan() {
-<a name="l00104"></a>00104 <span class="keyword">static</span> T r;
-<a name="l00105"></a>00105 <span class="keyword">static</span> <span class="keywordtype">bool</span> init = <span class="keyword">false</span>;
-<a name="l00106"></a>00106
-<a name="l00107"></a>00107 <span class="keywordflow">if</span> (!init) {
-<a name="l00108"></a>00108 init = <span class="keyword">true</span>;
-<a name="l00109"></a>00109 r._data().make_nan();
-<a name="l00110"></a>00110 }
-<a name="l00111"></a>00111
-<a name="l00112"></a>00112 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00113"></a>00113 }
-<a name="l00114"></a>00114
-<a name="l00116"></a>00116 } <span class="comment">// namespace detail</span>
-<a name="l00117"></a>00117 } <span class="comment">// namespace xint</span>
-<a name="l00118"></a>00118 } <span class="comment">// namespace boost</span>
-<a name="l00119"></a>00119
-<a name="l00120"></a>00120 <span class="preprocessor">#include &quot;<a class="code" href="options_8hpp.html" title="Declares the integer_t template options.">options.hpp</a>&quot;</span>
-<a name="l00121"></a>00121
-<a name="l00122"></a>00122 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
+<a name="l00080"></a>00080 <span class="keyword">inline</span> std::size_t log10_bits(std::size_t bits) {
+<a name="l00081"></a>00081 <span class="comment">// large_step and count_per_large_step are based on a minimum-32-bit integer</span>
+<a name="l00082"></a>00082 assert(std::numeric_limits&lt;boost::intmax_t&gt;::digits &gt;= 32);
+<a name="l00083"></a>00083
+<a name="l00084"></a>00084 <span class="keyword">typedef</span> raw_integer_t&lt;0, false, std::allocator&lt;digit_t&gt; &gt; T;
+<a name="l00085"></a>00085 <span class="keyword">const</span> T large_step(1000000000), small_step(10);
+<a name="l00086"></a>00086 <span class="keyword">const</span> std::size_t count_per_large_step = 9, count_per_small_step = 1;
+<a name="l00087"></a>00087
+<a name="l00088"></a>00088 T n;
+<a name="l00089"></a>00089 pow2(n, bits);
+<a name="l00090"></a>00090 --n;
+<a name="l00091"></a>00091
+<a name="l00092"></a>00092 std::size_t r = 0;
+<a name="l00093"></a>00093 <span class="keywordflow">while</span> (n &gt;= large_step) { n /= large_step; r += count_per_large_step; }
+<a name="l00094"></a>00094 <span class="keywordflow">while</span> (n &gt;= small_step) { n /= small_step; r += count_per_small_step; }
+<a name="l00095"></a>00095 <span class="keywordflow">return</span> r;
+<a name="l00096"></a>00096 }
+<a name="l00097"></a>00097
+<a name="l00098"></a>00098 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
+<a name="l00099"></a>00099 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; nan_text() {
+<a name="l00100"></a>00100 <span class="keyword">static</span> std::basic_string&lt;charT&gt; r;
+<a name="l00101"></a>00101 <span class="keywordflow">if</span> (r.empty()) {
+<a name="l00102"></a>00102 std::basic_ostringstream&lt;charT&gt; out;
+<a name="l00103"></a>00103 out &lt;&lt; <span class="stringliteral">&quot;#NaN#&quot;</span>;
+<a name="l00104"></a>00104 r = out.str();
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106 <span class="keywordflow">return</span> r;
+<a name="l00107"></a>00107 }
+<a name="l00108"></a>00108
+<a name="l00109"></a>00109 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
+<a name="l00110"></a>00110 <span class="keywordtype">bool</span> is_nan_text(<span class="keyword">const</span> std::basic_string&lt;charT&gt; str) {
+<a name="l00111"></a>00111 <span class="keywordflow">return</span> (str == nan_text&lt;charT&gt;());
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113
+<a name="l00114"></a>00114 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00115"></a>00115 T get_nan() {
+<a name="l00116"></a>00116 <span class="keyword">static</span> T r;
+<a name="l00117"></a>00117 <span class="keyword">static</span> <span class="keywordtype">bool</span> init = <span class="keyword">false</span>;
+<a name="l00118"></a>00118
+<a name="l00119"></a>00119 <span class="keywordflow">if</span> (!init) {
+<a name="l00120"></a>00120 init = <span class="keyword">true</span>;
+<a name="l00121"></a>00121 r._data().make_nan();
+<a name="l00122"></a>00122 }
+<a name="l00123"></a>00123
+<a name="l00124"></a>00124 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
+<a name="l00125"></a>00125 }
+<a name="l00126"></a>00126
+<a name="l00128"></a>00128 } <span class="comment">// namespace detail</span>
+<a name="l00129"></a>00129 } <span class="comment">// namespace xint</span>
+<a name="l00130"></a>00130 } <span class="comment">// namespace boost</span>
+<a name="l00131"></a>00131
+<a name="l00132"></a>00132 <span class="preprocessor">#include &quot;<a class="code" href="options_8hpp.html" title="Declares the integer_t template options.">options.hpp</a>&quot;</span>
+<a name="l00133"></a>00133
+<a name="l00134"></a>00134 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -61,47 +61,48 @@
 <a name="l00043"></a>00043 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">const</span> BOOST_XINT_RAWINT e,
 <a name="l00044"></a>00044 <span class="keyword">const</span> BOOST_XINT_RAWINT m, <span class="keywordtype">bool</span> no_montgomery = <span class="keyword">false</span>)
 <a name="l00045"></a>00045 {
-<a name="l00046"></a>00046 <span class="keywordflow">if</span> (m.is_zero() || m.negative) <span class="keywordflow">throw</span> exceptions::invalid_modulus();
-<a name="l00047"></a>00047 <span class="keywordflow">if</span> (e.is_zero()) <span class="keywordflow">return</span> 1;
-<a name="l00048"></a>00048
-<a name="l00049"></a>00049 <span class="keywordtype">bool</span> neg = (n.negative &amp;&amp; e.is_odd());
-<a name="l00050"></a>00050
-<a name="l00051"></a>00051 <span class="comment">// Montgomery&#39;s method is often noticeably faster, but only works if the</span>
-<a name="l00052"></a>00052 <span class="comment">// m is odd.</span>
-<a name="l00053"></a>00053 <span class="keywordflow">if</span> (m.is_odd() &amp;&amp; !no_montgomery) {
-<a name="l00054"></a>00054 <span class="keywordflow">return</span> montgomeryPowerMod(n.abs() % m, e.abs(), m);
-<a name="l00055"></a>00055 } <span class="keywordflow">else</span> {
-<a name="l00056"></a>00056 BOOST_XINT_RAWINT answer(1), p(n.abs());
-<a name="l00057"></a>00057
-<a name="l00058"></a>00058 std::size_t lastBitCount = 0;
-<a name="l00059"></a>00059 detail::digit_t ee(e[e.length - 1]);
-<a name="l00060"></a>00060 <span class="keywordflow">while</span> (ee != 0) { ee &gt;&gt;= 1; ++lastBitCount; }
-<a name="l00061"></a>00061
-<a name="l00062"></a>00062 <span class="keywordflow">for</span> (std::size_t eIndex = 0; eIndex &lt; e.length; ++eIndex) {
-<a name="l00063"></a>00063 detail::digit_t ee(e[eIndex]);
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 <span class="keywordtype">int</span> bitCount(<span class="keywordtype">int</span>(eIndex == e.length - 1 ? lastBitCount :
-<a name="l00066"></a>00066 detail::bits_per_digit));
-<a name="l00067"></a>00067 <span class="keywordflow">while</span> (bitCount-- &gt; 0) {
-<a name="l00068"></a>00068 <span class="keywordflow">if</span> (ee &amp; 0x01) answer = <a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(answer, p, m);
-<a name="l00069"></a>00069 p = <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(p, m);
-<a name="l00070"></a>00070 ee &gt;&gt;= 1;
-<a name="l00071"></a>00071 }
-<a name="l00072"></a>00072 }
-<a name="l00073"></a>00073 answer.negative = neg;
-<a name="l00074"></a>00074 answer.trim();
-<a name="l00075"></a>00075
-<a name="l00076"></a>00076 <span class="keywordflow">return</span> answer;
-<a name="l00077"></a>00077 }
-<a name="l00078"></a>00078 }
-<a name="l00079"></a>00079
-<a name="l00080"></a>00080 } <span class="comment">// namespace detail</span>
-<a name="l00081"></a>00081 } <span class="comment">// namespace xint</span>
-<a name="l00082"></a>00082 } <span class="comment">// namespace boost</span>
-<a name="l00084"></a>00084 <span class="comment"></span>
-<a name="l00085"></a>00085 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MODULAR_HPP</span>
+<a name="l00046"></a>00046 <span class="keywordflow">if</span> (m.is_zero() || m.negative) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00047"></a>00047 exceptions::invalid_modulus());
+<a name="l00048"></a>00048 <span class="keywordflow">if</span> (e.is_zero()) <span class="keywordflow">return</span> 1;
+<a name="l00049"></a>00049
+<a name="l00050"></a>00050 <span class="keywordtype">bool</span> neg = (n.negative &amp;&amp; e.is_odd());
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="comment">// Montgomery&#39;s method is often noticeably faster, but only works if the</span>
+<a name="l00053"></a>00053 <span class="comment">// m is odd.</span>
+<a name="l00054"></a>00054 <span class="keywordflow">if</span> (m.is_odd() &amp;&amp; !no_montgomery) {
+<a name="l00055"></a>00055 <span class="keywordflow">return</span> montgomeryPowerMod(n.abs() % m, e.abs(), m);
+<a name="l00056"></a>00056 } <span class="keywordflow">else</span> {
+<a name="l00057"></a>00057 BOOST_XINT_RAWINT answer(1), p(n.abs());
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 std::size_t lastBitCount = 0;
+<a name="l00060"></a>00060 detail::digit_t ee(e[e.length - 1]);
+<a name="l00061"></a>00061 <span class="keywordflow">while</span> (ee != 0) { ee &gt;&gt;= 1; ++lastBitCount; }
+<a name="l00062"></a>00062
+<a name="l00063"></a>00063 <span class="keywordflow">for</span> (std::size_t eIndex = 0; eIndex &lt; e.length; ++eIndex) {
+<a name="l00064"></a>00064 detail::digit_t ee(e[eIndex]);
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 <span class="keywordtype">int</span> bitCount(<span class="keywordtype">int</span>(eIndex == e.length - 1 ? lastBitCount :
+<a name="l00067"></a>00067 detail::bits_per_digit));
+<a name="l00068"></a>00068 <span class="keywordflow">while</span> (bitCount-- &gt; 0) {
+<a name="l00069"></a>00069 <span class="keywordflow">if</span> (ee &amp; 0x01) answer = <a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(answer, p, m);
+<a name="l00070"></a>00070 p = <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(p, m);
+<a name="l00071"></a>00071 ee &gt;&gt;= 1;
+<a name="l00072"></a>00072 }
+<a name="l00073"></a>00073 }
+<a name="l00074"></a>00074 answer.negative = neg;
+<a name="l00075"></a>00075 answer.trim();
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 <span class="keywordflow">return</span> answer;
+<a name="l00078"></a>00078 }
+<a name="l00079"></a>00079 }
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 } <span class="comment">// namespace detail</span>
+<a name="l00082"></a>00082 } <span class="comment">// namespace xint</span>
+<a name="l00083"></a>00083 } <span class="comment">// namespace boost</span>
+<a name="l00085"></a>00085 <span class="comment"></span>
+<a name="l00086"></a>00086 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MODULAR_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -200,8 +200,8 @@
 <a name="l00191"></a>00191 <span class="keyword">const</span> TUTable&lt;&gt; &amp;tuTable(TUTable&lt;&gt;::get());
 <a name="l00192"></a>00192
 <a name="l00193"></a>00193 <span class="keywordflow">if</span> (e.is_zero()) <span class="keywordflow">return</span> 1;
-<a name="l00194"></a>00194 <span class="keywordflow">if</span> (n.is_even()) <span class="keywordflow">throw</span> exceptions::invalid_modulus(<span class="stringliteral">&quot;montgomeryPowerMod &quot;</span>
-<a name="l00195"></a>00195 <span class="stringliteral">&quot;requires an odd modulus&quot;</span>);
+<a name="l00194"></a>00194 <span class="keywordflow">if</span> (n.is_even()) exception_handler&lt;&gt;::call(__FILE__, __LINE__, exceptions::
+<a name="l00195"></a>00195 invalid_modulus(<span class="stringliteral">&quot;montgomeryPowerMod requires an odd modulus&quot;</span>));
 <a name="l00196"></a>00196
 <a name="l00197"></a>00197 <span class="comment">// Precalculate some values</span>
 <a name="l00198"></a>00198 <span class="keyword">const</span> std::size_t k(mostEfficientK(e));
@@ -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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -182,7 +182,7 @@
 <a name="l00165"></a>00165 <span class="comment"></span>
 <a name="l00166"></a>00166 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MULTIPLY_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -34,7 +34,7 @@
 </p>
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -67,10 +67,16 @@
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a><br class="typebreak"/>
 &lt; <a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">options::nothrow</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2">nothrow_integer</a></td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The default arbitrary-length nothrow_integer type. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef boost::function&lt; void(const <br class="typebreak"/>
+char *file, std::size_t line, <br class="typebreak"/>
+const std::exception &amp;e)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c">on_exception_t</a> )</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The function type for <a class="el" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">on_exception</a>. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
 detail::strong_random_generator_t&nbsp;</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">&nbsp;</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">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">on_exception</a> (<a class="el" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c">on_exception_t</a> fn=<a class="el" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c">on_exception_t</a>())</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or resets the global exception handler for the library. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a> (<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;left, <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;right)</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Mathematical primitives</div></td></tr>
@@ -252,7 +258,7 @@
 
 <p>The format for the binary representations of integers. </p>
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00082">82</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#l00098">98</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -269,7 +275,7 @@
 
 <p>This makes it easier to tell when an item is measured in bits. </p>
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00089">89</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>
@@ -286,7 +292,7 @@
 
 <p>A callback function takes no parameters and returns a bool. </p>
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00076">76</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>
@@ -304,7 +310,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#l02520">2520</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#l02521">2521</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -322,7 +328,34 @@
 <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#l02527">2527</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#l02528">2528</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a28995bf7780dba52b4150cf1911c0c4c"></a><!-- doxytag: member="boost::xint::on_exception_t" ref="a28995bf7780dba52b4150cf1911c0c4c" args=")" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef boost::function&lt;void (const char *file, std::size_t line, const std::exception&amp; e) <a class="el" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c">boost::xint::on_exception_t</a>)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>The function type for <a class="el" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">on_exception</a>. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>file</em>&nbsp;</td><td>The source code file that the exception originated from, as reported by the __FILE__ macro. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>line</em>&nbsp;</td><td>The line (in that file) where the exception originated, as reported by the __LINE__ macro. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>e</em>&nbsp;</td><td>The exception that was thrown.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>If this function returns, the exception will be thrown as normal, or (if BOOST_XINT_NO_EXCEPTIONS is used) <code>abort()</code> will be called.</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="exception__handler.html">The <code>on_exception</code> Function And <code>-fno-exceptions</code> Support</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00089">89</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -379,7 +412,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#l01215">1215</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#l01216">1216</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -423,7 +456,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#l01605">1605</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#l01606">1606</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -473,7 +506,7 @@
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>-1 if <code>n1</code> &lt; <code>n2</code>; zero if <code>n1</code> == <code>n2</code>, or 1 if <code>n1</code> &gt; <code>n2</code>. The nothrow version returns 2 instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02312">2312</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#l02313">2313</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -517,7 +550,7 @@
 <dl class="return"><dt><b>Returns:</b></dt><dd>The absolute difference between the parameters.</dd></dl>
 <p>This function is especially useful when using unsigned types, because it's faster than doing a comparison to see which integer is larger before doing a subtraction. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01297">1297</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#l01298">1298</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -573,7 +606,7 @@
 <dd>
 <a class="el" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">integer_t::operator%=</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01253">1253</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#l01254">1254</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -616,7 +649,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#l02242">2242</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#l02243">2243</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -660,7 +693,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 version returns <code>false</code> instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01558">1558</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#l01559">1559</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -704,7 +737,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 version returns <code>return_if_zero</code> instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01662">1662</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#l01663">1663</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -754,7 +787,7 @@
   </dd>
 </dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01824">1824</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#l01825">1825</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -806,7 +839,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#l01878">1878</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#l01879">1879</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -849,7 +882,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#l02276">2276</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#l02277">2277</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -885,7 +918,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#adee99f516c2480b2381f6c9b1a2abc6e" 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#l02344">2344</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#l02345">2345</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -929,7 +962,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 version returns <code>return_if_zero</code> instead of throwing. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01633">1633</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#l01634">1634</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -980,7 +1013,37 @@
 <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#l01703">1703</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#l01704">1704</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac2b936b22084368c66e62f8181c08241"></a><!-- doxytag: member="boost::xint::on_exception" ref="ac2b936b22084368c66e62f8181c08241" args="(on_exception_t fn=on_exception_t())" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void boost::xint::on_exception </td>
+ <td>(</td>
+ <td class="paramtype">on_exception_t&nbsp;</td>
+ <td class="paramname"> <em>fn</em> = <code>on_exception_t()</code></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Sets or resets the global exception handler for the library. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>fn</em>&nbsp;</td><td>The function to set as the exception handler, of type <a class="el" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c">on_exception_t</a>. If not specified, removes any previous exception handler.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="note"><dt><b>Note:</b></dt><dd>This function, and the underlying exception handler system, is <em>not</em> thread-safe. It is your responsibility to ensure that no other threads are using the library while calling this function.</dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="exception__handler.html">The <code>on_exception</code> Function And <code>-fno-exceptions</code> Support</a> </dd></dl>
+
+<p>Definition at line <a class="el" href="exceptions_8hpp_source.html#l00039">39</a> of file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 
 </div>
 </div>
@@ -1011,7 +1074,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01976">1976</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#l01977">1977</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1055,7 +1118,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#l02126">2126</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#l02127">2127</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1098,7 +1161,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#l02154">2154</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#l02155">2155</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1142,7 +1205,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#l02069">2069</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#l02070">2070</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1185,7 +1248,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#l02007">2007</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#l02008">2008</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1228,7 +1291,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#l02034">2034</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#l02035">2035</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1277,7 +1340,7 @@
   </dd>
 </dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02098">2098</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#l02099">2099</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1308,7 +1371,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01901">1901</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>
@@ -1339,7 +1402,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02469">2469</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#l02470">2470</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1370,7 +1433,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01931">1931</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>
@@ -1401,7 +1464,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01961">1961</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>
@@ -1432,7 +1495,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01916">1916</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>
@@ -1463,7 +1526,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01946">1946</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>
@@ -1494,7 +1557,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02478">2478</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#l02479">2479</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1537,7 +1600,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#l02210">2210</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#l02211">2211</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1580,7 +1643,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#l02182">2182</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#l02183">2183</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1623,7 +1686,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#l01353">1353</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#l01354">1354</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1689,7 +1752,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#l01787">1787</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#l01788">1788</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1733,7 +1796,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#l01581">1581</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#l01582">1582</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1778,7 +1841,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#l01742">1742</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#l01743">1743</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1813,7 +1876,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#l01326">1326</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#l01327">1327</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1853,7 +1916,7 @@
   </dd>
 </dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01389">1389</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#l01390">1390</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1884,7 +1947,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02510">2510</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#l02511">2511</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1928,7 +1991,7 @@
 </dl>
 <p>This function provides the most efficient means of converting to a built-in integral type. The nothrow version returns T(0) instead of throwing. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01429">1429</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#l01430">1430</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1981,7 +2044,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#l01528">1528</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#l01529">1529</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -2020,7 +2083,7 @@
 
 <p>A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">to_stringtype&lt;char&gt;</a>. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01484">1484</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#l01485">1485</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -2084,7 +2147,7 @@
 </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#l01465">1465</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#l01466">1466</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -2123,7 +2186,7 @@
 
 <p>A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">to_stringtype&lt;wchar_t&gt;</a>. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01494">1494</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#l01495">1495</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -2141,7 +2204,7 @@
 
 <p>A value that can be used for the 'base' parameter of the string-to-integer constructor functions. </p>
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00086">86</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#l00102">102</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -2158,12 +2221,12 @@
 
 <p>An empty callback_t, used as a default parameter for some functions. </p>
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00079">79</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#l00095">95</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -61,7 +61,7 @@
 <p>There are several options for an unsigned type, which not only tell the library to make the type unsigned, but also what to do if a calculation would result in a negative number. You can only use one of them in a specific <code><a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a></code>. If none of them are specified, the default is a signed type.</p>
 <p>In addition to these options, you can also specify an allocator, which is just passed to the <code><a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a></code> template directly. If specified, it must be for the <code>boost::xint::detail::digit_t</code> type. Defaults to <code>std::allocator&lt;digit_t&gt;</code>, the standard allocator provided by the STL. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -157,6 +157,12 @@
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>on_exception()
+: <a class="el" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">boost::xint</a>
+</li>
+<li>on_exception_t
+: <a class="el" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c">boost::xint</a>
+</li>
 <li>operator!=()
 : <a class="el" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">boost::xint</a>
 </li>
@@ -258,7 +264,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -126,6 +126,9 @@
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>on_exception()
+: <a class="el" href="namespaceboost_1_1xint.html#ac2b936b22084368c66e62f8181c08241">boost::xint</a>
+</li>
 <li>operator!=()
 : <a class="el" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">boost::xint</a>
 </li>
@@ -224,7 +227,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -49,12 +49,15 @@
 <li>nothrow_integer
 : <a class="el" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2">boost::xint</a>
 </li>
+<li>on_exception_t
+: <a class="el" href="namespaceboost_1_1xint.html#a28995bf7780dba52b4150cf1911c0c4c">boost::xint</a>
+</li>
 <li>strong_random_generator
 : <a class="el" href="namespaceboost_1_1xint.html#ac38b0aafb375c80ff42b5488a52d9e8f">boost::xint</a>
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -42,7 +42,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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/no__exceptions_8dox.html (from r63090, /sandbox/xint/libs/xint/doc/complexity_8dox.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/complexity_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/no__exceptions_8dox.html 2010-06-25 12:11:30 EDT (Fri, 25 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: /home/chad/projects/xint/libs/xint/doc/dox/complexity.dox File Reference</title>
+<title>The Extended Integer (XInt) Library: /home/chad/projects/xint/libs/xint/doc/dox/no_exceptions.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -25,10 +25,10 @@
   </div>
 </div>
 <div class="contents">
-<h1>/home/chad/projects/xint/libs/xint/doc/dox/complexity.dox File Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<h1>/home/chad/projects/xint/libs/xint/doc/dox/no_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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -159,7 +159,7 @@
 </div>
 </div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -264,20 +264,20 @@
 <a name="l00354"></a>00354 <span class="keywordflow">if</span> (Nothrow) {
 <a name="l00355"></a>00355 <span class="keywordflow">if</span> (integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data.is_nan())
 <a name="l00356"></a>00356 <span class="keywordflow">return</span> detail::get_nan&lt;T&gt;();
-<a name="l00357"></a>00357 <span class="keywordflow">try</span> {
+<a name="l00357"></a>00357 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
 <a name="l00358"></a>00358 T r(~integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data);
 <a name="l00359"></a>00359 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
 <a name="l00360"></a>00360 <span class="keywordflow">if</span> (!Signed) r.data.negative = <span class="keyword">false</span>;
-<a name="l00361"></a>00361 <span class="keywordflow">else</span> r.data.negative = ~r.data.negative;
+<a name="l00361"></a>00361 <span class="keywordflow">else</span> r.data.negative = !r.data.negative;
 <a name="l00362"></a>00362 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00363"></a>00363 } <span class="keywordflow">catch</span> (std::exception&amp;) {
+<a name="l00363"></a>00363 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
 <a name="l00364"></a>00364 <span class="keywordflow">return</span> detail::get_nan&lt;T&gt;();
 <a name="l00365"></a>00365 }
 <a name="l00366"></a>00366 } <span class="keywordflow">else</span> {
 <a name="l00367"></a>00367 T r(~integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data);
 <a name="l00368"></a>00368 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
 <a name="l00369"></a>00369 <span class="keywordflow">if</span> (!Signed) r.data.negative = <span class="keyword">false</span>;
-<a name="l00370"></a>00370 <span class="keywordflow">else</span> r.data.negative = ~r.data.negative;
+<a name="l00370"></a>00370 <span class="keywordflow">else</span> r.data.negative = !r.data.negative;
 <a name="l00371"></a>00371 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
 <a name="l00372"></a>00372 }
 <a name="l00373"></a>00373 }
@@ -337,44 +337,45 @@
 <a name="l00428"></a>00428 <span class="keywordflow">if</span> (integer_t_data&lt;BOOST_XINT_APARAMS&gt;::NothrowType::value) {
 <a name="l00429"></a>00429 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data().make_nan();
 <a name="l00430"></a>00430 } <span class="keywordflow">else</span> {
-<a name="l00431"></a>00431 <span class="keywordflow">throw</span> exceptions::cannot_represent(<span class="stringliteral">&quot;unsigned negative value&quot;</span>);
-<a name="l00432"></a>00432 }
-<a name="l00433"></a>00433 }
-<a name="l00434"></a>00434 };
-<a name="l00435"></a>00435
-<a name="l00436"></a>00436 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00437"></a>00437 <span class="keyword">class </span>unsigned_negative_functions&lt;p_force_zero, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span>
-<a name="l00438"></a>00438 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
-<a name="l00439"></a>00439 {
-<a name="l00440"></a>00440 <span class="keyword">public</span>:
-<a name="l00441"></a>00441 <span class="keywordtype">void</span> _fix_negative_unsigned() {
-<a name="l00442"></a>00442 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
-<a name="l00443"></a>00443 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
-<a name="l00444"></a>00444 data.set(0);
-<a name="l00445"></a>00445 }
-<a name="l00446"></a>00446 };
-<a name="l00447"></a>00447
-<a name="l00448"></a>00448 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
-<a name="l00449"></a>00449 <span class="keyword">class </span>unsigned_negative_functions&lt;p_force_absolute, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span>
-<a name="l00450"></a>00450 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
-<a name="l00451"></a>00451 {
-<a name="l00452"></a>00452 <span class="keyword">public</span>:
-<a name="l00453"></a>00453 <span class="keywordtype">void</span> _fix_negative_unsigned() {
-<a name="l00454"></a>00454 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
-<a name="l00455"></a>00455 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
-<a name="l00456"></a>00456 data.negative = <span class="keyword">false</span>;
-<a name="l00457"></a>00457 }
-<a name="l00458"></a>00458 };
-<a name="l00459"></a>00459
-<a name="l00460"></a>00460 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00461"></a>00461 <span class="preprocessor"></span>
-<a name="l00462"></a>00462 } <span class="comment">// namespace detail</span>
-<a name="l00463"></a>00463 } <span class="comment">// namespace xint</span>
-<a name="l00464"></a>00464 } <span class="comment">// namespace boost</span>
-<a name="l00465"></a>00465
-<a name="l00466"></a>00466 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_OPTIONS_HPP</span>
+<a name="l00431"></a>00431 exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00432"></a>00432 exceptions::cannot_represent(<span class="stringliteral">&quot;unsigned negative value&quot;</span>));
+<a name="l00433"></a>00433 }
+<a name="l00434"></a>00434 }
+<a name="l00435"></a>00435 };
+<a name="l00436"></a>00436
+<a name="l00437"></a>00437 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00438"></a>00438 <span class="keyword">class </span>unsigned_negative_functions&lt;p_force_zero, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span>
+<a name="l00439"></a>00439 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00440"></a>00440 {
+<a name="l00441"></a>00441 <span class="keyword">public</span>:
+<a name="l00442"></a>00442 <span class="keywordtype">void</span> _fix_negative_unsigned() {
+<a name="l00443"></a>00443 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
+<a name="l00444"></a>00444 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
+<a name="l00445"></a>00445 data.set(0);
+<a name="l00446"></a>00446 }
+<a name="l00447"></a>00447 };
+<a name="l00448"></a>00448
+<a name="l00449"></a>00449 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00450"></a>00450 <span class="keyword">class </span>unsigned_negative_functions&lt;p_force_absolute, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span>
+<a name="l00451"></a>00451 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00452"></a>00452 {
+<a name="l00453"></a>00453 <span class="keyword">public</span>:
+<a name="l00454"></a>00454 <span class="keywordtype">void</span> _fix_negative_unsigned() {
+<a name="l00455"></a>00455 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
+<a name="l00456"></a>00456 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
+<a name="l00457"></a>00457 data.negative = <span class="keyword">false</span>;
+<a name="l00458"></a>00458 }
+<a name="l00459"></a>00459 };
+<a name="l00460"></a>00460
+<a name="l00461"></a>00461 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00462"></a>00462 <span class="preprocessor"></span>
+<a name="l00463"></a>00463 } <span class="comment">// namespace detail</span>
+<a name="l00464"></a>00464 } <span class="comment">// namespace xint</span>
+<a name="l00465"></a>00465 } <span class="comment">// namespace boost</span>
+<a name="l00466"></a>00466
+<a name="l00467"></a>00467 <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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -117,102 +117,106 @@
 <a name="l00102"></a>00102 <span class="keyword">const</span> std::size_t count = size - minimum_digits + magnitude_datasize;
 <a name="l00103"></a>00103
 <a name="l00104"></a>00104 digit_t *storage = 0;
-<a name="l00105"></a>00105 <span class="keywordflow">try</span> {
+<a name="l00105"></a>00105 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
 <a name="l00106"></a>00106 storage = allocator.allocate(count);
 <a name="l00107"></a>00107 <span class="keywordflow">if</span> (readonly) <span class="keywordflow">return</span> <span class="keyword">new</span>(storage) magnitude_t(size, readonly, 0);
 <a name="l00108"></a>00108 <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">new</span>(storage) magnitude_t(size, readonly);
-<a name="l00109"></a>00109 } <span class="keywordflow">catch</span> (std::bad_alloc&amp;) {
-<a name="l00110"></a>00110 <span class="keywordflow">throw</span> exceptions::overflow_error(<span class="stringliteral">&quot;Out of memory allocating integer&quot;</span>);
-<a name="l00111"></a>00111 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00112"></a>00112 <span class="comment">// To make it exception-safe, we&#39;ve got to ensure that the allocated</span>
-<a name="l00113"></a>00113 <span class="comment">// data is properly disposed of if there&#39;s an exception, before passing</span>
-<a name="l00114"></a>00114 <span class="comment">// the exception on.</span>
-<a name="l00115"></a>00115 <span class="keywordflow">if</span> (storage) allocator.deallocate(storage, size);
-<a name="l00116"></a>00116 <span class="keywordflow">throw</span>;
-<a name="l00117"></a>00117 }
-<a name="l00118"></a>00118 }
+<a name="l00109"></a>00109 } <a class="code" href="internals_8hpp.html#a376c1d9d0cc79d3d74539c6b9c38f304">BOOST_XINT_CATCH_BADALLOC</a> {
+<a name="l00110"></a>00110 exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00111"></a>00111 exceptions::overflow_error(<span class="stringliteral">&quot;Out of memory allocating integer&quot;</span>));
+<a name="l00112"></a>00112 } <a class="code" href="internals_8hpp.html#ab7e46f415e3d76f4d3b7d350bcbe3a85">BOOST_XINT_CATCH_E</a> {
+<a name="l00113"></a>00113 <span class="comment">// To make it exception-safe, we&#39;ve got to ensure that the allocated</span>
+<a name="l00114"></a>00114 <span class="comment">// data is properly disposed of if there&#39;s an exception, before passing</span>
+<a name="l00115"></a>00115 <span class="comment">// the exception on.</span>
+<a name="l00116"></a>00116 <span class="keywordflow">if</span> (storage) allocator.deallocate(storage, size);
+<a name="l00117"></a>00117 exception_handler&lt;&gt;::call(__FILE__, __LINE__, e);
+<a name="l00118"></a>00118 }
 <a name="l00119"></a>00119
-<a name="l00120"></a>00120 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
-<a name="l00121"></a>00121 magnitude_t *allocator_t&lt;Bits, Secure, Alloc&gt;::realloc_and_uniquify(magnitude_t
-<a name="l00122"></a>00122 *old, std::size_t newsize, realloc::strategy strategy)
-<a name="l00123"></a>00123 {
-<a name="l00124"></a>00124 <span class="keywordflow">if</span> (fixed_length) {
-<a name="l00125"></a>00125 newsize = fixed_length;
-<a name="l00126"></a>00126 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newsize == 0) {
-<a name="l00127"></a>00127 <span class="keywordflow">if</span> (old) newsize = old-&gt;max_length;
-<a name="l00128"></a>00128 <span class="keywordflow">else</span> newsize = minimum_digits;
-<a name="l00129"></a>00129 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newsize &lt; minimum_digits) newsize = minimum_digits;
-<a name="l00130"></a>00130
-<a name="l00131"></a>00131 magnitude_t *r = old;
-<a name="l00132"></a>00132 <span class="keywordflow">if</span> (old == 0 || newsize &gt; old-&gt;max_length || old-&gt;copies() &gt; 1) {
-<a name="l00133"></a>00133 r = alloc(newsize);
-<a name="l00134"></a>00134 attach(r);
-<a name="l00135"></a>00135
-<a name="l00136"></a>00136 <span class="keywordflow">if</span> (strategy == realloc::ignore) {
-<a name="l00137"></a>00137 <span class="comment">// Do nothing.</span>
-<a name="l00138"></a>00138 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((strategy == realloc::extend || strategy == realloc::copy) &amp;&amp;
-<a name="l00139"></a>00139 old != 0)
-<a name="l00140"></a>00140 {
-<a name="l00141"></a>00141 <span class="keyword">const</span> digit_t *s = old-&gt;digits, *se = s + old-&gt;max_length;
-<a name="l00142"></a>00142 digit_t *t = r-&gt;digits, *te = t + r-&gt;max_length;
-<a name="l00143"></a>00143 <span class="keywordflow">while</span> (s != se &amp;&amp; t != te) *t++ = *s++;
-<a name="l00144"></a>00144 } <span class="keywordflow">else</span> {
-<a name="l00145"></a>00145 <span class="comment">// It&#39;s realloc::zero, old == 0. Zero it.</span>
+<a name="l00120"></a>00120 <span class="comment">// It will never get here, but the compilers can&#39;t tell that.</span>
+<a name="l00121"></a>00121 <span class="keywordflow">return</span> 0;
+<a name="l00122"></a>00122 }
+<a name="l00123"></a>00123
+<a name="l00124"></a>00124 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
+<a name="l00125"></a>00125 magnitude_t *allocator_t&lt;Bits, Secure, Alloc&gt;::realloc_and_uniquify(magnitude_t
+<a name="l00126"></a>00126 *old, std::size_t newsize, realloc::strategy strategy)
+<a name="l00127"></a>00127 {
+<a name="l00128"></a>00128 <span class="keywordflow">if</span> (fixed_length) {
+<a name="l00129"></a>00129 newsize = fixed_length;
+<a name="l00130"></a>00130 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newsize == 0) {
+<a name="l00131"></a>00131 <span class="keywordflow">if</span> (old) newsize = old-&gt;max_length;
+<a name="l00132"></a>00132 <span class="keywordflow">else</span> newsize = minimum_digits;
+<a name="l00133"></a>00133 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (newsize &lt; minimum_digits) newsize = minimum_digits;
+<a name="l00134"></a>00134
+<a name="l00135"></a>00135 magnitude_t *r = old;
+<a name="l00136"></a>00136 <span class="keywordflow">if</span> (old == 0 || newsize &gt; old-&gt;max_length || old-&gt;copies() &gt; 1) {
+<a name="l00137"></a>00137 r = alloc(newsize);
+<a name="l00138"></a>00138 attach(r);
+<a name="l00139"></a>00139
+<a name="l00140"></a>00140 <span class="keywordflow">if</span> (strategy == realloc::ignore) {
+<a name="l00141"></a>00141 <span class="comment">// Do nothing.</span>
+<a name="l00142"></a>00142 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((strategy == realloc::extend || strategy == realloc::copy) &amp;&amp;
+<a name="l00143"></a>00143 old != 0)
+<a name="l00144"></a>00144 {
+<a name="l00145"></a>00145 <span class="keyword">const</span> digit_t *s = old-&gt;digits, *se = s + old-&gt;max_length;
 <a name="l00146"></a>00146 digit_t *t = r-&gt;digits, *te = t + r-&gt;max_length;
-<a name="l00147"></a>00147 <span class="keywordflow">while</span> (t != te) *t++ = 0;
-<a name="l00148"></a>00148 }
-<a name="l00149"></a>00149
-<a name="l00150"></a>00150 detach(old);
-<a name="l00151"></a>00151 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strategy == realloc::zero) {
-<a name="l00152"></a>00152 digit_t *t = r-&gt;digits, *te = t + r-&gt;max_length;
-<a name="l00153"></a>00153 <span class="keywordflow">while</span> (t != te) *t++ = 0;
-<a name="l00154"></a>00154 }
-<a name="l00155"></a>00155
-<a name="l00156"></a>00156 <span class="keywordflow">return</span> r;
-<a name="l00157"></a>00157 }
-<a name="l00158"></a>00158
-<a name="l00159"></a>00159 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
-<a name="l00160"></a>00160 magnitude_t *allocator_t&lt;Bits, Secure, Alloc&gt;::duplicate(magnitude_t *source,
-<a name="l00161"></a>00161 std::size_t newsize)
-<a name="l00162"></a>00162 {
-<a name="l00163"></a>00163 attach(source);
-<a name="l00164"></a>00164 <span class="keywordflow">return</span> realloc_and_uniquify(source, newsize, realloc::copy);
-<a name="l00165"></a>00165 }
-<a name="l00166"></a>00166
-<a name="l00167"></a>00167 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
-<a name="l00168"></a>00168 <span class="keywordtype">void</span> allocator_t&lt;Bits, Secure, Alloc&gt;::dealloc(magnitude_t *data) {
-<a name="l00169"></a>00169 <span class="keywordflow">if</span> (data == 0) <span class="keywordflow">return</span>;
+<a name="l00147"></a>00147 <span class="keywordflow">while</span> (s != se &amp;&amp; t != te) *t++ = *s++;
+<a name="l00148"></a>00148 } <span class="keywordflow">else</span> {
+<a name="l00149"></a>00149 <span class="comment">// It&#39;s realloc::zero, old == 0. Zero it.</span>
+<a name="l00150"></a>00150 digit_t *t = r-&gt;digits, *te = t + r-&gt;max_length;
+<a name="l00151"></a>00151 <span class="keywordflow">while</span> (t != te) *t++ = 0;
+<a name="l00152"></a>00152 }
+<a name="l00153"></a>00153
+<a name="l00154"></a>00154 detach(old);
+<a name="l00155"></a>00155 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strategy == realloc::zero) {
+<a name="l00156"></a>00156 digit_t *t = r-&gt;digits, *te = t + r-&gt;max_length;
+<a name="l00157"></a>00157 <span class="keywordflow">while</span> (t != te) *t++ = 0;
+<a name="l00158"></a>00158 }
+<a name="l00159"></a>00159
+<a name="l00160"></a>00160 <span class="keywordflow">return</span> r;
+<a name="l00161"></a>00161 }
+<a name="l00162"></a>00162
+<a name="l00163"></a>00163 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
+<a name="l00164"></a>00164 magnitude_t *allocator_t&lt;Bits, Secure, Alloc&gt;::duplicate(magnitude_t *source,
+<a name="l00165"></a>00165 std::size_t newsize)
+<a name="l00166"></a>00166 {
+<a name="l00167"></a>00167 attach(source);
+<a name="l00168"></a>00168 <span class="keywordflow">return</span> realloc_and_uniquify(source, newsize, realloc::copy);
+<a name="l00169"></a>00169 }
 <a name="l00170"></a>00170
-<a name="l00171"></a>00171 <span class="keyword">const</span> std::size_t len = (data-&gt;max_length + magnitude_datasize -
-<a name="l00172"></a>00172 minimum_digits);
-<a name="l00173"></a>00173
-<a name="l00174"></a>00174 <span class="comment">// Since the data was initialized with placement-new, we have to manually</span>
-<a name="l00175"></a>00175 <span class="comment">// call the destructor.</span>
-<a name="l00176"></a>00176 data-&gt; ~magnitude_t();
+<a name="l00171"></a>00171 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
+<a name="l00172"></a>00172 <span class="keywordtype">void</span> allocator_t&lt;Bits, Secure, Alloc&gt;::dealloc(magnitude_t *data) {
+<a name="l00173"></a>00173 <span class="keywordflow">if</span> (data == 0) <span class="keywordflow">return</span>;
+<a name="l00174"></a>00174
+<a name="l00175"></a>00175 <span class="keyword">const</span> std::size_t len = (data-&gt;max_length + magnitude_datasize -
+<a name="l00176"></a>00176 minimum_digits);
 <a name="l00177"></a>00177
-<a name="l00178"></a>00178 <span class="comment">// Finally, dispose of it.</span>
-<a name="l00179"></a>00179 digit_t *p = <span class="keyword">reinterpret_cast&lt;</span>digit_t*<span class="keyword">&gt;</span>(data);
-<a name="l00180"></a>00180 <span class="keywordflow">if</span> (Secure) memset(p, 0, len * <span class="keyword">sizeof</span>(digit_t));
-<a name="l00181"></a>00181 allocator.deallocate(p, len);
-<a name="l00182"></a>00182 }
-<a name="l00183"></a>00183
-<a name="l00184"></a>00184 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
-<a name="l00185"></a>00185 <span class="keywordtype">void</span> allocator_t&lt;Bits, Secure, Alloc&gt;::attach(magnitude_t *p) {
-<a name="l00186"></a>00186 p-&gt;inc();
-<a name="l00187"></a>00187 }
-<a name="l00188"></a>00188
-<a name="l00189"></a>00189 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
-<a name="l00190"></a>00190 <span class="keywordtype">void</span> allocator_t&lt;Bits, Secure, Alloc&gt;::detach(magnitude_t *p) {
-<a name="l00191"></a>00191 <span class="keywordflow">if</span> (p-&gt;dec()) dealloc(p);
-<a name="l00192"></a>00192 }
-<a name="l00193"></a>00193
-<a name="l00195"></a>00195 } <span class="comment">// namespace detail</span>
-<a name="l00196"></a>00196 } <span class="comment">// namespace xint</span>
-<a name="l00197"></a>00197 } <span class="comment">// namespace boost</span>
-<a name="l00198"></a>00198
-<a name="l00199"></a>00199 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_POLICY_HPP</span>
+<a name="l00178"></a>00178 <span class="comment">// Since the data was initialized with placement-new, we have to manually</span>
+<a name="l00179"></a>00179 <span class="comment">// call the destructor.</span>
+<a name="l00180"></a>00180 data-&gt; ~magnitude_t();
+<a name="l00181"></a>00181
+<a name="l00182"></a>00182 <span class="comment">// Finally, dispose of it.</span>
+<a name="l00183"></a>00183 digit_t *p = <span class="keyword">reinterpret_cast&lt;</span>digit_t*<span class="keyword">&gt;</span>(data);
+<a name="l00184"></a>00184 <span class="keywordflow">if</span> (Secure) memset(p, 0, len * <span class="keyword">sizeof</span>(digit_t));
+<a name="l00185"></a>00185 allocator.deallocate(p, len);
+<a name="l00186"></a>00186 }
+<a name="l00187"></a>00187
+<a name="l00188"></a>00188 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
+<a name="l00189"></a>00189 <span class="keywordtype">void</span> allocator_t&lt;Bits, Secure, Alloc&gt;::attach(magnitude_t *p) {
+<a name="l00190"></a>00190 p-&gt;inc();
+<a name="l00191"></a>00191 }
+<a name="l00192"></a>00192
+<a name="l00193"></a>00193 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
+<a name="l00194"></a>00194 <span class="keywordtype">void</span> allocator_t&lt;Bits, Secure, Alloc&gt;::detach(magnitude_t *p) {
+<a name="l00195"></a>00195 <span class="keywordflow">if</span> (p-&gt;dec()) dealloc(p);
+<a name="l00196"></a>00196 }
+<a name="l00197"></a>00197
+<a name="l00199"></a>00199 } <span class="comment">// namespace detail</span>
+<a name="l00200"></a>00200 } <span class="comment">// namespace xint</span>
+<a name="l00201"></a>00201 } <span class="comment">// namespace boost</span>
+<a name="l00202"></a>00202
+<a name="l00203"></a>00203 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_POLICY_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -104,7 +104,7 @@
 <a name="l00087"></a>00087
 <a name="l00088"></a>00088 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_POWERS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -100,73 +100,75 @@
 <a name="l00082"></a>00082 BOOST_XINT_RAWINT_TPL
 <a name="l00083"></a>00083 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT 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 name="l00084"></a>00084 BOOST_XINT_RAWINT tmp(2);
-<a name="l00085"></a>00085 <span class="keywordflow">if</span> (n &lt; tmp) <span class="keywordflow">throw</span> exceptions::invalid_argument(<span class="stringliteral">&quot;xint::is_prime cannot &quot;</span>
-<a name="l00086"></a>00086 <span class="stringliteral">&quot;test numbers below 2&quot;</span>);
-<a name="l00087"></a>00087
-<a name="l00088"></a>00088 <span class="comment">// First we trial-divide it by the primes below 2000</span>
-<a name="l00089"></a>00089 <span class="keyword">static</span> <span class="keyword">const</span> std::vector&lt;int&gt; low_primes(sieveOfEratosthenes(2000));
-<a name="l00090"></a>00090 <span class="keyword">const</span> BOOST_XINT_RAWINT zero;
-<a name="l00091"></a>00091 std::vector&lt;int&gt;::const_iterator i = low_primes.begin(), ie =
-<a name="l00092"></a>00092 low_primes.end();
-<a name="l00093"></a>00093 <span class="keywordflow">for</span> (; i != ie; ++i) {
-<a name="l00094"></a>00094 tmp.set_unsigned(*i);
-<a name="l00095"></a>00095 <span class="keywordflow">if</span> ((n % tmp) == zero)
-<a name="l00096"></a>00096 <span class="keywordflow">return</span> (n == tmp);
-<a name="l00097"></a>00097 }
-<a name="l00098"></a>00098
-<a name="l00099"></a>00099 <span class="comment">// Ensure that we&#39;ve got a random generator.</span>
-<a name="l00100"></a>00100 <span class="keyword">static</span> std::auto_ptr&lt;default_random_generator&gt; gen(<span class="keyword">new</span>
-<a name="l00101"></a>00101 default_random_generator);
-<a name="l00102"></a>00102 detail::random_generator&lt;default_random_generator&gt; random(*gen.get());
-<a name="l00103"></a>00103
-<a name="l00104"></a>00104 <span class="comment">// Run the number through the Miller-Rabin Probabilistic Test of Primality</span>
-<a name="l00105"></a>00105 <span class="comment">// a few times to see if it&#39;s actually (probably) prime.</span>
-<a name="l00106"></a>00106 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> count = 0; count &lt; 5; ++count) {
-<a name="l00107"></a>00107 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k = random();
-<a name="l00108"></a>00108 tmp.set_unsigned(k);
-<a name="l00109"></a>00109 <span class="keywordtype">int</span> isP = isProbablePrimeBaseB(n, tmp, callback);
-<a name="l00110"></a>00110 <span class="keywordflow">if</span> (isP &lt;= 0) <span class="keywordflow">return</span> isP;
-<a name="l00111"></a>00111 }
-<a name="l00112"></a>00112 <span class="keywordflow">return</span> 1; <span class="comment">// Appears to be prime!</span>
-<a name="l00113"></a>00113 }
-<a name="l00114"></a>00114
-<a name="l00115"></a>00115 BOOST_XINT_RAWINT_TPL
-<a name="l00116"></a>00116 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> GenType&gt;
-<a name="l00117"></a>00117 BOOST_XINT_RAWINT BOOST_XINT_RAWINT::random_prime(GenType&amp; gen, std::size_t
-<a name="l00118"></a>00118 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="l00119"></a>00119 {
-<a name="l00120"></a>00120 <span class="keywordflow">if</span> (size_in_bits &lt; 2) <span class="keywordflow">throw</span> exceptions::invalid_argument(<span class="stringliteral">&quot;cannot create &quot;</span>
-<a name="l00121"></a>00121 <span class="stringliteral">&quot;prime numbers smaller than two bits&quot;</span>);
-<a name="l00122"></a>00122
-<a name="l00123"></a>00123 <span class="comment">// Call the callback for the first time</span>
-<a name="l00124"></a>00124 <span class="keywordflow">if</span> (callback &amp;&amp; !callback()) <span class="keywordflow">return</span> 0;
-<a name="l00125"></a>00125
-<a name="l00126"></a>00126 <span class="comment">// If, by rare chance, the number we&#39;re testing gets larger than the number</span>
-<a name="l00127"></a>00127 <span class="comment">// of bits requested, we have to start over with a new random number of the</span>
-<a name="l00128"></a>00128 <span class="comment">// proper size.</span>
-<a name="l00129"></a>00129 BOOST_XINT_RAWINT pe;
-<a name="l00130"></a>00130 pow2(pe, size_in_bits + 1);
-<a name="l00131"></a>00131
-<a name="l00132"></a>00132 <span class="keyword">const</span> BOOST_XINT_RAWINT two(2);
-<a name="l00133"></a>00133 <span class="keywordflow">while</span> (1) {
-<a name="l00134"></a>00134 BOOST_XINT_RAWINT target = random_by_size(gen, size_in_bits, <span class="keyword">true</span>, <span class="keyword">true</span>,
-<a name="l00135"></a>00135 <span class="keyword">false</span>);
-<a name="l00136"></a>00136 <span class="keywordflow">while</span> (target &lt; pe) {
-<a name="l00137"></a>00137 <span class="keywordtype">int</span> r = <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(target, callback);
-<a name="l00138"></a>00138 <span class="keywordflow">if</span> (r &lt; 0) <span class="keywordflow">return</span> 0;
-<a name="l00139"></a>00139 <span class="keywordflow">if</span> (r == 1) <span class="keywordflow">return</span> target;
-<a name="l00140"></a>00140 target += two;
-<a name="l00141"></a>00141 }
-<a name="l00142"></a>00142 }
-<a name="l00143"></a>00143 }
-<a name="l00144"></a>00144
-<a name="l00145"></a>00145 } <span class="comment">// namespace detail</span>
-<a name="l00146"></a>00146 } <span class="comment">// namespace xint</span>
-<a name="l00147"></a>00147 } <span class="comment">// namespace boost</span>
-<a name="l00149"></a>00149 <span class="comment"></span>
-<a name="l00150"></a>00150 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_PRIME_HPP</span>
+<a name="l00085"></a>00085 <span class="keywordflow">if</span> (n &lt; tmp) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00086"></a>00086 exceptions::invalid_argument(<span class="stringliteral">&quot;xint::is_prime cannot test numbers below &quot;</span>
+<a name="l00087"></a>00087 <span class="stringliteral">&quot;2&quot;</span>));
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="comment">// First we trial-divide it by the primes below 2000</span>
+<a name="l00090"></a>00090 <span class="keyword">static</span> <span class="keyword">const</span> std::vector&lt;int&gt; low_primes(sieveOfEratosthenes(2000));
+<a name="l00091"></a>00091 <span class="keyword">const</span> BOOST_XINT_RAWINT zero;
+<a name="l00092"></a>00092 std::vector&lt;int&gt;::const_iterator i = low_primes.begin(), ie =
+<a name="l00093"></a>00093 low_primes.end();
+<a name="l00094"></a>00094 <span class="keywordflow">for</span> (; i != ie; ++i) {
+<a name="l00095"></a>00095 tmp.set_unsigned(*i);
+<a name="l00096"></a>00096 <span class="keywordflow">if</span> ((n % tmp) == zero)
+<a name="l00097"></a>00097 <span class="keywordflow">return</span> (n == tmp);
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099
+<a name="l00100"></a>00100 <span class="comment">// Ensure that we&#39;ve got a random generator.</span>
+<a name="l00101"></a>00101 <span class="keyword">static</span> std::auto_ptr&lt;default_random_generator&gt; gen(<span class="keyword">new</span>
+<a name="l00102"></a>00102 default_random_generator);
+<a name="l00103"></a>00103 detail::random_generator&lt;default_random_generator&gt; random(*gen.get());
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 <span class="comment">// Run the number through the Miller-Rabin Probabilistic Test of Primality</span>
+<a name="l00106"></a>00106 <span class="comment">// a few times to see if it&#39;s actually (probably) prime.</span>
+<a name="l00107"></a>00107 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> count = 0; count &lt; 5; ++count) {
+<a name="l00108"></a>00108 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k = random();
+<a name="l00109"></a>00109 tmp.set_unsigned(k);
+<a name="l00110"></a>00110 <span class="keywordtype">int</span> isP = isProbablePrimeBaseB(n, tmp, callback);
+<a name="l00111"></a>00111 <span class="keywordflow">if</span> (isP &lt;= 0) <span class="keywordflow">return</span> isP;
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 <span class="keywordflow">return</span> 1; <span class="comment">// Appears to be prime!</span>
+<a name="l00114"></a>00114 }
+<a name="l00115"></a>00115
+<a name="l00116"></a>00116 BOOST_XINT_RAWINT_TPL
+<a name="l00117"></a>00117 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> GenType&gt;
+<a name="l00118"></a>00118 BOOST_XINT_RAWINT BOOST_XINT_RAWINT::random_prime(GenType&amp; gen, std::size_t
+<a name="l00119"></a>00119 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="l00120"></a>00120 {
+<a name="l00121"></a>00121 <span class="keywordflow">if</span> (size_in_bits &lt; 2) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00122"></a>00122 exceptions::invalid_argument(<span class="stringliteral">&quot;cannot create prime numbers smaller than &quot;</span>
+<a name="l00123"></a>00123 <span class="stringliteral">&quot;two bits&quot;</span>));
+<a name="l00124"></a>00124
+<a name="l00125"></a>00125 <span class="comment">// Call the callback for the first time</span>
+<a name="l00126"></a>00126 <span class="keywordflow">if</span> (callback &amp;&amp; !callback()) <span class="keywordflow">return</span> 0;
+<a name="l00127"></a>00127
+<a name="l00128"></a>00128 <span class="comment">// If, by rare chance, the number we&#39;re testing gets larger than the number</span>
+<a name="l00129"></a>00129 <span class="comment">// of bits requested, we have to start over with a new random number of the</span>
+<a name="l00130"></a>00130 <span class="comment">// proper size.</span>
+<a name="l00131"></a>00131 BOOST_XINT_RAWINT pe;
+<a name="l00132"></a>00132 pow2(pe, size_in_bits + 1);
+<a name="l00133"></a>00133
+<a name="l00134"></a>00134 <span class="keyword">const</span> BOOST_XINT_RAWINT two(2);
+<a name="l00135"></a>00135 <span class="keywordflow">while</span> (1) {
+<a name="l00136"></a>00136 BOOST_XINT_RAWINT target = random_by_size(gen, size_in_bits, <span class="keyword">true</span>, <span class="keyword">true</span>,
+<a name="l00137"></a>00137 <span class="keyword">false</span>);
+<a name="l00138"></a>00138 <span class="keywordflow">while</span> (target &lt; pe) {
+<a name="l00139"></a>00139 <span class="keywordtype">int</span> r = <a class="code" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">is_prime</a>(target, callback);
+<a name="l00140"></a>00140 <span class="keywordflow">if</span> (r &lt; 0) <span class="keywordflow">return</span> 0;
+<a name="l00141"></a>00141 <span class="keywordflow">if</span> (r == 1) <span class="keywordflow">return</span> target;
+<a name="l00142"></a>00142 target += two;
+<a name="l00143"></a>00143 }
+<a name="l00144"></a>00144 }
+<a name="l00145"></a>00145 }
+<a name="l00146"></a>00146
+<a name="l00147"></a>00147 } <span class="comment">// namespace detail</span>
+<a name="l00148"></a>00148 } <span class="comment">// namespace xint</span>
+<a name="l00149"></a>00149 } <span class="comment">// namespace boost</span>
+<a name="l00151"></a>00151 <span class="comment"></span>
+<a name="l00152"></a>00152 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_PRIME_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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. As of Boost 1.43, it now supports Windows as well. But, also as of Boost 1.43, it requires a compiled library, making it more difficult to use in examples. As such, I've left the <code>xint::strong_random_generator</code> class here as well. Anyone using the library is free to use <code>boost::random_device</code> (or any other Boost.Random device) if they wish. </p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -66,99 +66,102 @@
 <a name="l00049"></a>00049 <span class="stringliteral">&quot;SystemFunction036&quot;</span>));
 <a name="l00050"></a>00050 <span class="keywordflow">if</span> (fn == 0) {
 <a name="l00051"></a>00051 destroy();
-<a name="l00052"></a>00052 <span class="keywordflow">throw</span> exceptions::no_strong_random();
-<a name="l00053"></a>00053 }
-<a name="l00054"></a>00054 }
-<a name="l00055"></a>00055
-<a name="l00056"></a>00056 ~impl_t() { destroy(); }
-<a name="l00057"></a>00057
-<a name="l00058"></a>00058 result_type operator()() {
-<a name="l00059"></a>00059 result_type r=0;
-<a name="l00060"></a>00060 <span class="keywordflow">if</span> (!fn(&amp;r, <span class="keyword">sizeof</span>(result_type)))
-<a name="l00061"></a>00061 <span class="keywordflow">throw</span> exceptions::no_strong_random(<span class="stringliteral">&quot;RtlGenRandom failed&quot;</span>);
-<a name="l00062"></a>00062 <span class="keywordflow">return</span> r;
-<a name="l00063"></a>00063 }
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 <span class="keywordtype">void</span> destroy() { <span class="keywordflow">if</span> (dll) FreeLibrary(dll); }
+<a name="l00052"></a>00052 exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00053"></a>00053 exceptions::no_strong_random());
+<a name="l00054"></a>00054 }
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056
+<a name="l00057"></a>00057 ~impl_t() { destroy(); }
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 result_type operator()() {
+<a name="l00060"></a>00060 result_type r=0;
+<a name="l00061"></a>00061 <span class="keywordflow">if</span> (!fn(&amp;r, <span class="keyword">sizeof</span>(result_type)))
+<a name="l00062"></a>00062 exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00063"></a>00063 exceptions::no_strong_random(<span class="stringliteral">&quot;RtlGenRandom failed&quot;</span>));
+<a name="l00064"></a>00064 <span class="keywordflow">return</span> r;
+<a name="l00065"></a>00065 }
 <a name="l00066"></a>00066
-<a name="l00067"></a>00067 HMODULE dll;
-<a name="l00068"></a>00068 RtlGenRandomFn fn;
-<a name="l00069"></a>00069 };
-<a name="l00070"></a>00070
-<a name="l00071"></a>00071 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00072"></a>00072 BOOST_XINT_INLINE <span class="keywordtype">double</span> strong_random_generator_t&lt;T&gt;::entropy()<span class="keyword"> const</span>
-<a name="l00073"></a>00073 <span class="keyword"> </span>{ <span class="keywordflow">return</span> 32; }
-<a name="l00074"></a>00074 <span class="preprocessor">#else</span>
-<a name="l00075"></a>00075 <span class="preprocessor"></span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00076"></a>00076 <span class="keyword">struct </span>strong_random_generator_t&lt;T&gt;::impl_t {
-<a name="l00077"></a>00077 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> result_type;
-<a name="l00078"></a>00078
-<a name="l00079"></a>00079 impl_t(): rng(<span class="stringliteral">&quot;/dev/urandom&quot;</span>, std::ios::binary) {
-<a name="l00080"></a>00080 <span class="comment">// This should be supported under most non-Windows systems. Note</span>
-<a name="l00081"></a>00081 <span class="comment">// that we&#39;re using /dev/urandom, not /dev/random -- /dev/random is</span>
-<a name="l00082"></a>00082 <span class="comment">// more secure, but it can be VERY slow.</span>
-<a name="l00083"></a>00083 <span class="keywordflow">if</span> (!rng) <span class="keywordflow">throw</span> exceptions::no_strong_random();
-<a name="l00084"></a>00084 }
-<a name="l00085"></a>00085
-<a name="l00086"></a>00086 result_type operator()() {
-<a name="l00087"></a>00087 <span class="keywordtype">int</span> r=rng.get();
-<a name="l00088"></a>00088 <span class="keywordflow">if</span> (r==EOF) <span class="keywordflow">throw</span> exceptions::no_strong_random(<span class="stringliteral">&quot;/dev/urandom &quot;</span>
-<a name="l00089"></a>00089 <span class="stringliteral">&quot;returned EOF&quot;</span>);
-<a name="l00090"></a>00090 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>result_type<span class="keyword">&gt;</span>(r);
-<a name="l00091"></a>00091 }
-<a name="l00092"></a>00092
-<a name="l00093"></a>00093 std::ifstream rng;
-<a name="l00094"></a>00094 };
+<a name="l00067"></a>00067 <span class="keywordtype">void</span> destroy() { <span class="keywordflow">if</span> (dll) FreeLibrary(dll); }
+<a name="l00068"></a>00068
+<a name="l00069"></a>00069 HMODULE dll;
+<a name="l00070"></a>00070 RtlGenRandomFn fn;
+<a name="l00071"></a>00071 };
+<a name="l00072"></a>00072
+<a name="l00073"></a>00073 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00074"></a>00074 BOOST_XINT_INLINE <span class="keywordtype">double</span> strong_random_generator_t&lt;T&gt;::entropy()<span class="keyword"> const</span>
+<a name="l00075"></a>00075 <span class="keyword"> </span>{ <span class="keywordflow">return</span> 32; }
+<a name="l00076"></a>00076 <span class="preprocessor">#else</span>
+<a name="l00077"></a>00077 <span class="preprocessor"></span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00078"></a>00078 <span class="keyword">struct </span>strong_random_generator_t&lt;T&gt;::impl_t {
+<a name="l00079"></a>00079 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> result_type;
+<a name="l00080"></a>00080
+<a name="l00081"></a>00081 impl_t(): rng(<span class="stringliteral">&quot;/dev/urandom&quot;</span>, std::ios::binary) {
+<a name="l00082"></a>00082 <span class="comment">// This should be supported under most non-Windows systems. Note</span>
+<a name="l00083"></a>00083 <span class="comment">// that we&#39;re using /dev/urandom, not /dev/random -- /dev/random is</span>
+<a name="l00084"></a>00084 <span class="comment">// more secure, but it can be VERY slow.</span>
+<a name="l00085"></a>00085 <span class="keywordflow">if</span> (!rng) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00086"></a>00086 exceptions::no_strong_random());
+<a name="l00087"></a>00087 }
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 result_type operator()() {
+<a name="l00090"></a>00090 <span class="keywordtype">int</span> r=rng.get();
+<a name="l00091"></a>00091 <span class="keywordflow">if</span> (r==EOF) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00092"></a>00092 exceptions::no_strong_random(<span class="stringliteral">&quot;/dev/urandom returned EOF&quot;</span>));
+<a name="l00093"></a>00093 <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>result_type<span class="keyword">&gt;</span>(r);
+<a name="l00094"></a>00094 }
 <a name="l00095"></a>00095
-<a name="l00096"></a>00096 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00097"></a>00097 BOOST_XINT_INLINE <span class="keywordtype">double</span> strong_random_generator_t&lt;T&gt;::entropy()<span class="keyword"> const</span>
-<a name="l00098"></a>00098 <span class="keyword"> </span>{ <span class="keywordflow">return</span> 8; }
-<a name="l00099"></a>00099 <span class="preprocessor">#endif</span>
-<a name="l00100"></a>00100 <span class="preprocessor"></span>
-<a name="l00101"></a>00101 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00102"></a>00102 <span class="keyword">const</span> <span class="keywordtype">bool</span> strong_random_generator_t&lt;T&gt;::has_fixed_range = <span class="keyword">true</span>;
-<a name="l00103"></a>00103
+<a name="l00096"></a>00096 std::ifstream rng;
+<a name="l00097"></a>00097 };
+<a name="l00098"></a>00098
+<a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00100"></a>00100 BOOST_XINT_INLINE <span class="keywordtype">double</span> strong_random_generator_t&lt;T&gt;::entropy()<span class="keyword"> const</span>
+<a name="l00101"></a>00101 <span class="keyword"> </span>{ <span class="keywordflow">return</span> 8; }
+<a name="l00102"></a>00102 <span class="preprocessor">#endif</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span>
 <a name="l00104"></a>00104 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00105"></a>00105 <span class="keyword">const</span> <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
-<a name="l00106"></a>00106 strong_random_generator_t&lt;T&gt;::min_value =
-<a name="l00107"></a>00107 (std::numeric_limits&lt;<span class="keyword">typename</span>
-<a name="l00108"></a>00108 strong_random_generator_t&lt;T&gt;::impl_t::result_type&gt;::min)();
-<a name="l00109"></a>00109
-<a name="l00110"></a>00110 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00111"></a>00111 <span class="keyword">const</span> <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
-<a name="l00112"></a>00112 strong_random_generator_t&lt;T&gt;::max_value =
-<a name="l00113"></a>00113 (std::numeric_limits&lt;<span class="keyword">typename</span>
-<a name="l00114"></a>00114 strong_random_generator_t&lt;T&gt;::impl_t::result_type&gt;::max)();
-<a name="l00115"></a>00115
-<a name="l00116"></a>00116 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00117"></a>00117 BOOST_XINT_INLINE strong_random_generator_t&lt;T&gt;::strong_random_generator_t():
-<a name="l00118"></a>00118 impl(new impl_t) { }
-<a name="l00119"></a>00119
-<a name="l00120"></a>00120 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00121"></a>00121 BOOST_XINT_INLINE strong_random_generator_t&lt;T&gt;::~strong_random_generator_t() {
-<a name="l00122"></a>00122 <span class="keyword">delete</span> impl; }
-<a name="l00123"></a>00123
-<a name="l00124"></a>00124 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00125"></a>00125 BOOST_XINT_INLINE <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
-<a name="l00126"></a>00126 strong_random_generator_t&lt;T&gt;::operator()() { <span class="keywordflow">return</span> (*impl)(); }
-<a name="l00127"></a>00127
-<a name="l00128"></a>00128 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00129"></a>00129 BOOST_XINT_INLINE <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
-<a name="l00130"></a>00130 strong_random_generator_t&lt;T&gt;::min BOOST_PREVENT_MACRO_SUBSTITUTION ()<span class="keyword"> const</span>
-<a name="l00131"></a>00131 <span class="keyword"> </span>{ <span class="keywordflow">return</span> min_value; }
-<a name="l00132"></a>00132
-<a name="l00133"></a>00133 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00134"></a>00134 BOOST_XINT_INLINE <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
-<a name="l00135"></a>00135 strong_random_generator_t&lt;T&gt;::max BOOST_PREVENT_MACRO_SUBSTITUTION ()<span class="keyword"> const</span>
-<a name="l00136"></a>00136 <span class="keyword"> </span>{ <span class="keywordflow">return</span> max_value; }
-<a name="l00137"></a>00137
-<a name="l00138"></a>00138 } <span class="comment">// namespace detail</span>
-<a name="l00139"></a>00139 } <span class="comment">// namespace xint</span>
-<a name="l00140"></a>00140 } <span class="comment">// namespace boost</span>
-<a name="l00142"></a>00142 <span class="comment"></span>
-<a name="l00143"></a>00143 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOMGEN_HPP</span>
+<a name="l00105"></a>00105 <span class="keyword">const</span> <span class="keywordtype">bool</span> strong_random_generator_t&lt;T&gt;::has_fixed_range = <span class="keyword">true</span>;
+<a name="l00106"></a>00106
+<a name="l00107"></a>00107 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00108"></a>00108 <span class="keyword">const</span> <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
+<a name="l00109"></a>00109 strong_random_generator_t&lt;T&gt;::min_value =
+<a name="l00110"></a>00110 (std::numeric_limits&lt;<span class="keyword">typename</span>
+<a name="l00111"></a>00111 strong_random_generator_t&lt;T&gt;::impl_t::result_type&gt;::min)();
+<a name="l00112"></a>00112
+<a name="l00113"></a>00113 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00114"></a>00114 <span class="keyword">const</span> <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
+<a name="l00115"></a>00115 strong_random_generator_t&lt;T&gt;::max_value =
+<a name="l00116"></a>00116 (std::numeric_limits&lt;<span class="keyword">typename</span>
+<a name="l00117"></a>00117 strong_random_generator_t&lt;T&gt;::impl_t::result_type&gt;::max)();
+<a name="l00118"></a>00118
+<a name="l00119"></a>00119 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00120"></a>00120 BOOST_XINT_INLINE strong_random_generator_t&lt;T&gt;::strong_random_generator_t():
+<a name="l00121"></a>00121 impl(new impl_t) { }
+<a name="l00122"></a>00122
+<a name="l00123"></a>00123 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00124"></a>00124 BOOST_XINT_INLINE strong_random_generator_t&lt;T&gt;::~strong_random_generator_t() {
+<a name="l00125"></a>00125 <span class="keyword">delete</span> impl; }
+<a name="l00126"></a>00126
+<a name="l00127"></a>00127 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00128"></a>00128 BOOST_XINT_INLINE <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
+<a name="l00129"></a>00129 strong_random_generator_t&lt;T&gt;::operator()() { <span class="keywordflow">return</span> (*impl)(); }
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00132"></a>00132 BOOST_XINT_INLINE <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
+<a name="l00133"></a>00133 strong_random_generator_t&lt;T&gt;::min BOOST_PREVENT_MACRO_SUBSTITUTION ()<span class="keyword"> const</span>
+<a name="l00134"></a>00134 <span class="keyword"> </span>{ <span class="keywordflow">return</span> min_value; }
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
+<a name="l00137"></a>00137 BOOST_XINT_INLINE <span class="keyword">typename</span> strong_random_generator_t&lt;T&gt;::result_type
+<a name="l00138"></a>00138 strong_random_generator_t&lt;T&gt;::max BOOST_PREVENT_MACRO_SUBSTITUTION ()<span class="keyword"> const</span>
+<a name="l00139"></a>00139 <span class="keyword"> </span>{ <span class="keywordflow">return</span> max_value; }
+<a name="l00140"></a>00140
+<a name="l00141"></a>00141 } <span class="comment">// namespace detail</span>
+<a name="l00142"></a>00142 } <span class="comment">// namespace xint</span>
+<a name="l00143"></a>00143 } <span class="comment">// namespace boost</span>
+<a name="l00145"></a>00145 <span class="comment"></span>
+<a name="l00146"></a>00146 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOMGEN_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -283,7 +283,7 @@
 <a name="l00268"></a>00268
 <a name="l00269"></a>00269 <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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -46,39 +46,40 @@
 <a name="l00029"></a>00029 BOOST_XINT_RAWINT_TPL
 <a name="l00030"></a>00030 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42" title="Calculate the square root of an integer.">square_root</a>(BOOST_XINT_RAWINT n) {
 <a name="l00031"></a>00031 <span class="keywordflow">if</span> (n.is_zero()) <span class="keywordflow">return</span> 0;
-<a name="l00032"></a>00032 <span class="keywordflow">if</span> (n.negative) <span class="keywordflow">throw</span> exceptions::cannot_represent(<span class="stringliteral">&quot;cannot represent &quot;</span>
-<a name="l00033"></a>00033 <span class="stringliteral">&quot;imaginary values (tried to take square_root of negative number)&quot;</span>);
-<a name="l00034"></a>00034
-<a name="l00035"></a>00035 <span class="comment">// A naive implementation using pure integers can result in an endless loop,</span>
-<a name="l00036"></a>00036 <span class="comment">// cycling between two numbers that are approximately correct (try</span>
-<a name="l00037"></a>00037 <span class="comment">// sqrt(23)). To deal with that, we multiply everything by an even power of</span>
-<a name="l00038"></a>00038 <span class="comment">// two.</span>
-<a name="l00039"></a>00039 <span class="keyword">const</span> std::size_t extra_bits = 1;
-<a name="l00040"></a>00040 n &lt;&lt;= (extra_bits * 2);
-<a name="l00041"></a>00041
-<a name="l00042"></a>00042 <span class="comment">// Initial guess is half the length of n, in bits</span>
-<a name="l00043"></a>00043 BOOST_XINT_RAWINT target;
-<a name="l00044"></a>00044 <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(target, <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n) / 2);
-<a name="l00045"></a>00045
-<a name="l00046"></a>00046 <span class="comment">// Now refine it until we&#39;re as close as we can get.</span>
-<a name="l00047"></a>00047 <span class="keywordflow">while</span> (1) {
-<a name="l00048"></a>00048 BOOST_XINT_RAWINT guess((target + (n / target)) &gt;&gt; 1);
-<a name="l00049"></a>00049 <span class="keywordflow">if</span> ((target &gt;&gt; extra_bits) == (guess &gt;&gt; extra_bits)) <span class="keywordflow">break</span>;
-<a name="l00050"></a>00050 target = guess;
-<a name="l00051"></a>00051 }
-<a name="l00052"></a>00052
-<a name="l00053"></a>00053 <span class="comment">// Remove half of the added bits.</span>
-<a name="l00054"></a>00054 target &gt;&gt;= extra_bits;
-<a name="l00055"></a>00055 <span class="keywordflow">return</span> target;
-<a name="l00056"></a>00056 }
-<a name="l00057"></a>00057
-<a name="l00058"></a>00058 } <span class="comment">// namespace detail</span>
-<a name="l00059"></a>00059 } <span class="comment">// namespace xint</span>
-<a name="l00060"></a>00060 } <span class="comment">// namespace boost</span>
-<a name="l00062"></a>00062 <span class="comment"></span>
-<a name="l00063"></a>00063 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_ROOTS_HPP</span>
+<a name="l00032"></a>00032 <span class="keywordflow">if</span> (n.negative) exception_handler&lt;&gt;::call(__FILE__, __LINE__,
+<a name="l00033"></a>00033 exceptions::cannot_represent(<span class="stringliteral">&quot;cannot represent imaginary values (tried &quot;</span>
+<a name="l00034"></a>00034 <span class="stringliteral">&quot;to take square_root of negative number)&quot;</span>));
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <span class="comment">// A naive implementation using pure integers can result in an endless loop,</span>
+<a name="l00037"></a>00037 <span class="comment">// cycling between two numbers that are approximately correct (try</span>
+<a name="l00038"></a>00038 <span class="comment">// sqrt(23)). To deal with that, we multiply everything by an even power of</span>
+<a name="l00039"></a>00039 <span class="comment">// two.</span>
+<a name="l00040"></a>00040 <span class="keyword">const</span> std::size_t extra_bits = 1;
+<a name="l00041"></a>00041 n &lt;&lt;= (extra_bits * 2);
+<a name="l00042"></a>00042
+<a name="l00043"></a>00043 <span class="comment">// Initial guess is half the length of n, in bits</span>
+<a name="l00044"></a>00044 BOOST_XINT_RAWINT target;
+<a name="l00045"></a>00045 <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(target, <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n) / 2);
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 <span class="comment">// Now refine it until we&#39;re as close as we can get.</span>
+<a name="l00048"></a>00048 <span class="keywordflow">while</span> (1) {
+<a name="l00049"></a>00049 BOOST_XINT_RAWINT guess((target + (n / target)) &gt;&gt; 1);
+<a name="l00050"></a>00050 <span class="keywordflow">if</span> ((target &gt;&gt; extra_bits) == (guess &gt;&gt; extra_bits)) <span class="keywordflow">break</span>;
+<a name="l00051"></a>00051 target = guess;
+<a name="l00052"></a>00052 }
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054 <span class="comment">// Remove half of the added bits.</span>
+<a name="l00055"></a>00055 target &gt;&gt;= extra_bits;
+<a name="l00056"></a>00056 <span class="keywordflow">return</span> target;
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 } <span class="comment">// namespace detail</span>
+<a name="l00060"></a>00060 } <span class="comment">// namespace xint</span>
+<a name="l00061"></a>00061 } <span class="comment">// namespace boost</span>
+<a name="l00063"></a>00063 <span class="comment"></span>
+<a name="l00064"></a>00064 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_ROOTS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -128,7 +128,7 @@
 <a name="l00111"></a>00111 <span class="comment"></span>
 <a name="l00112"></a>00112 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_SHIFT_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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/streams_8hpp.html
==============================================================================
--- sandbox/xint/libs/xint/doc/streams_8hpp.html (original)
+++ sandbox/xint/libs/xint/doc/streams_8hpp.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -50,7 +50,7 @@
 
 <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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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/streams_8hpp_source.html
==============================================================================
--- sandbox/xint/libs/xint/doc/streams_8hpp_source.html (original)
+++ sandbox/xint/libs/xint/doc/streams_8hpp_source.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -119,9 +119,9 @@
 <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="l00104"></a>00104 <a class="code" href="internals_8hpp.html#a693c4f473d303c632864f6084c394f03">BOOST_XINT_TRY</a> {
 <a name="l00105"></a>00105 n.from_string(s, base);
-<a name="l00106"></a>00106 } <span class="keywordflow">catch</span> (std::exception&amp;) {
+<a name="l00106"></a>00106 } <a class="code" href="internals_8hpp.html#a5117d87820df153f9c26dd5ff8ac318a">BOOST_XINT_CATCH</a> {
 <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 }
@@ -135,7 +135,7 @@
 <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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:28 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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_1copy__on__write.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1copy__on__write.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1copy__on__write.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -42,7 +42,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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.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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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_1negative__absolute.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -41,7 +41,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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_1negative__allowed.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -41,7 +41,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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_1negative__exception.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -41,7 +41,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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_1negative__modulus.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -41,7 +41,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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_1negative__not__allowed.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -41,7 +41,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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_1negative__zero.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.html 2010-06-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -42,7 +42,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -41,7 +41,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -41,7 +41,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 Jun 2010)
@@ -42,7 +42,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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 using the <code>copy_on_write</code> option. 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <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-25 12:11:30 EDT (Fri, 25 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 Fri Jun 18 20:03:13 2010 for The Extended Integer (XInt) Library by&nbsp;
+<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Jun 25 12:04:29 2010 for The Extended Integer (XInt) Library by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>


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