Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r63090 - in sandbox/xint: boost/xint boost/xint/detail dev libs/xint/doc libs/xint/doc/dox libs/xint/test
From: chad.thecomfychair_at_[hidden]
Date: 2010-06-18 20:22:20


Author: chadnelson
Date: 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
New Revision: 63090
URL: http://svn.boost.org/trac/boost/changeset/63090

Log:
Many changes:
- Refined the use of Boost.Parameter. Now only fixedlength takes a
parameter.
- Minor redesign. nan() and operator~() are now only available on nothrow
and fixedlength types, respectively.
- Added unsigned support, by request, with a variety of options.
- Added the difference function.
- Added support for wide-character strings, by request.
- Added the safe-bool idiom, by request.
Added:
   sandbox/xint/libs/xint/doc/fixedlength__type.html (contents, props changed)
      - copied, changed from r62997, /sandbox/xint/libs/xint/doc/fixedlength.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1copy__on__write.html
      - copied, changed from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html (contents, props changed)
      - copied, changed from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html
      - copied, changed from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html (contents, props changed)
      - copied, changed from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html (contents, props changed)
      - copied, changed from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html
      - copied, changed from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.html (contents, props changed)
      - copied, changed from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html
Removed:
   sandbox/xint/libs/xint/doc/fixedlength.html
   sandbox/xint/libs/xint/doc/hierarchy.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength.png
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.png
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow.png
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.png
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure.png
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.png
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe.png
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.png
Text files modified:
   sandbox/xint/boost/xint/detail/basic_types_and_includes.hpp | 7
   sandbox/xint/boost/xint/detail/internals.hpp | 17
   sandbox/xint/boost/xint/detail/options.hpp | 420 ++++
   sandbox/xint/boost/xint/integer.hpp | 1477 ++++++++-------
   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 | 8
   sandbox/xint/libs/xint/doc/andorxor_8hpp.html | 2
   sandbox/xint/libs/xint/doc/andorxor_8hpp_source.html | 8
   sandbox/xint/libs/xint/doc/annotated.html | 22
   sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp.html | 12
   sandbox/xint/libs/xint/doc/basic__types__and__includes_8hpp_source.html | 241 +-
   sandbox/xint/libs/xint/doc/bitfunctions_8hpp.html | 2
   sandbox/xint/libs/xint/doc/bitfunctions_8hpp_source.html | 14
   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 | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1base__divide__t.html | 21
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1default__random__generator.html | 7
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1cannot__represent.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__argument.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__base.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__digit.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1no__strong__random.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1not__a__number.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1overflow__error.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big-members.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1exceptions_1_1too__big.html | 3
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t-members.html | 64
   sandbox/xint/libs/xint/doc/classboost_1_1xint_1_1integer__t.html | 393 ++--
   sandbox/xint/libs/xint/doc/classdisable__boost__rv__ref.html | 5
   sandbox/xint/libs/xint/doc/classes.html | 21
   sandbox/xint/libs/xint/doc/compare_8hpp.html | 2
   sandbox/xint/libs/xint/doc/compare_8hpp_source.html | 30
   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 | 12
   sandbox/xint/libs/xint/doc/copyonwrite_8dox.html | 2
   sandbox/xint/libs/xint/doc/cow.html | 4
   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 | 22
   sandbox/xint/libs/xint/doc/dox/Doxyfile | 10
   sandbox/xint/libs/xint/doc/dox/copyonwrite.dox | 2
   sandbox/xint/libs/xint/doc/dox/fixedlength.dox | 33
   sandbox/xint/libs/xint/doc/dox/history.dox | 15
   sandbox/xint/libs/xint/doc/dox/index.dox | 2
   sandbox/xint/libs/xint/doc/dox/r_random.dox | 12
   sandbox/xint/libs/xint/doc/dox/random.dox | 6
   sandbox/xint/libs/xint/doc/dox/threadsafe.dox | 15
   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 | 4
   sandbox/xint/libs/xint/doc/exceptions_8dox.html | 2
   sandbox/xint/libs/xint/doc/exceptions_8hpp.html | 2
   sandbox/xint/libs/xint/doc/exceptions_8hpp_source.html | 2
   sandbox/xint/libs/xint/doc/files.html | 4
   sandbox/xint/libs/xint/doc/fixedlength_8dox.html | 2
   sandbox/xint/libs/xint/doc/fixedlength__type.html | 7
   sandbox/xint/libs/xint/doc/functions.html | 58
   sandbox/xint/libs/xint/doc/functions_func.html | 56
   sandbox/xint/libs/xint/doc/functions_type.html | 5
   sandbox/xint/libs/xint/doc/functions_vars.html | 3
   sandbox/xint/libs/xint/doc/gcd_8hpp.html | 2
   sandbox/xint/libs/xint/doc/gcd_8hpp_source.html | 22
   sandbox/xint/libs/xint/doc/globals.html | 30
   sandbox/xint/libs/xint/doc/globals_defs.html | 30
   sandbox/xint/libs/xint/doc/history.html | 14
   sandbox/xint/libs/xint/doc/history_8dox.html | 2
   sandbox/xint/libs/xint/doc/index.html | 4
   sandbox/xint/libs/xint/doc/index_8dox.html | 2
   sandbox/xint/libs/xint/doc/integer_8hpp.html | 275 +-
   sandbox/xint/libs/xint/doc/integer_8hpp_source.html | 3586 ++++++++++++++++++++-------------------
   sandbox/xint/libs/xint/doc/internals_8hpp.html | 2
   sandbox/xint/libs/xint/doc/internals_8hpp_source.html | 109
   sandbox/xint/libs/xint/doc/log2_8hpp.html | 2
   sandbox/xint/libs/xint/doc/log2_8hpp_source.html | 8
   sandbox/xint/libs/xint/doc/magnitude__manager_8hpp.html | 2
   sandbox/xint/libs/xint/doc/magnitude__manager_8hpp_source.html | 8
   sandbox/xint/libs/xint/doc/modular_8hpp.html | 2
   sandbox/xint/libs/xint/doc/modular_8hpp_source.html | 14
   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 | 10
   sandbox/xint/libs/xint/doc/namespaceboost.html | 2
   sandbox/xint/libs/xint/doc/namespaceboost_1_1xint.html | 629 +++---
   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 | 60
   sandbox/xint/libs/xint/doc/namespacemembers.html | 92
   sandbox/xint/libs/xint/doc/namespacemembers_func.html | 87
   sandbox/xint/libs/xint/doc/namespacemembers_type.html | 7
   sandbox/xint/libs/xint/doc/namespacemembers_vars.html | 2
   sandbox/xint/libs/xint/doc/namespaces.html | 2
   sandbox/xint/libs/xint/doc/nan.html | 2
   sandbox/xint/libs/xint/doc/nan_8dox.html | 2
   sandbox/xint/libs/xint/doc/options_8hpp.html | 138 +
   sandbox/xint/libs/xint/doc/options_8hpp_source.html | 373 +++
   sandbox/xint/libs/xint/doc/policies_8hpp.html | 2
   sandbox/xint/libs/xint/doc/policies_8hpp_source.html | 2
   sandbox/xint/libs/xint/doc/powers_8hpp.html | 2
   sandbox/xint/libs/xint/doc/powers_8hpp_source.html | 8
   sandbox/xint/libs/xint/doc/prime_8hpp.html | 2
   sandbox/xint/libs/xint/doc/prime_8hpp_source.html | 10
   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 | 4
   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 | 4
   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 | 6
   sandbox/xint/libs/xint/doc/randomgen_8hpp.html | 2
   sandbox/xint/libs/xint/doc/randomgen_8hpp_source.html | 2
   sandbox/xint/libs/xint/doc/rationale.html | 2
   sandbox/xint/libs/xint/doc/rationale_8dox.html | 2
   sandbox/xint/libs/xint/doc/raw__integer_8hpp.html | 2
   sandbox/xint/libs/xint/doc/raw__integer_8hpp_source.html | 24
   sandbox/xint/libs/xint/doc/roots_8hpp.html | 2
   sandbox/xint/libs/xint/doc/roots_8hpp_source.html | 6
   sandbox/xint/libs/xint/doc/shift_8hpp.html | 2
   sandbox/xint/libs/xint/doc/shift_8hpp_source.html | 6
   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 | 25
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength.html | 26
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html | 24
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html | 24
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html | 24
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html | 24
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html | 24
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.html | 25
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow.html | 25
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure.html | 25
   sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe.html | 26
   sandbox/xint/libs/xint/doc/testing.html | 2
   sandbox/xint/libs/xint/doc/testing_8dox.html | 2
   sandbox/xint/libs/xint/doc/threadsafe.html | 6
   sandbox/xint/libs/xint/doc/threadsafe_8dox.html | 2
   sandbox/xint/libs/xint/doc/xint_8hpp.html | 2
   sandbox/xint/libs/xint/doc/xint_8hpp_source.html | 2
   sandbox/xint/libs/xint/doc/zero.html | 2
   sandbox/xint/libs/xint/doc/zero_8dox.html | 2
   sandbox/xint/libs/xint/test/test_add.cpp | 8
   sandbox/xint/libs/xint/test/test_fixed.cpp | 26
   sandbox/xint/libs/xint/test/test_main.cpp | 22
   sandbox/xint/libs/xint/test/test_misc.cpp | 71
   sandbox/xint/libs/xint/test/test_nothrow.cpp | 2
   191 files changed, 5122 insertions(+), 4140 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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -27,6 +27,10 @@
     #include <windows.h>
 #endif
 
+#ifndef BOOST_PARAMETER_MAX_ARITY
+#define BOOST_PARAMETER_MAX_ARITY 6
+#endif
+
 #include <string>
 #include <vector>
 #include <queue>
@@ -45,7 +49,8 @@
 #include <boost/static_assert.hpp>
 
 // Uncomment this to use Boost.Move, which can improve the speed when using
-// extremely large numbers.
+// extremely large numbers. Note that using options::copy_on_write gives a much
+// more noticeable speed improvement.
 //#define BOOST_XINT_USE_MOVE
 
 #ifdef BOOST_XINT_USE_MOVE

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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -54,8 +54,6 @@
 #include "modular.hpp"
 #include "prime.hpp"
 
-#include "options.hpp"
-
 //! \namespace boost::xint
 //! \brief All the types and functions of the library are within this namespace.
 
@@ -101,9 +99,24 @@
     return (str == nan_text<charT>());
 }
 
+template <typename T>
+T get_nan() {
+ static T r;
+ static bool init = false;
+
+ if (!init) {
+ init = true;
+ r._data().make_nan();
+ }
+
+ return BOOST_XINT_MOVE(r);
+}
+
 //! @endcond detail
 } // namespace detail
 } // namespace xint
 } // namespace boost
 
+#include "options.hpp"
+
 #endif // BOOST_INCLUDED_XINT_INTERNALS_HPP

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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -11,7 +11,7 @@
 */
 
 /*! \file
- \brief Declares the arbitrary-length integer type.
+ \brief Declares the integer_t template options.
 */
 
 #ifndef BOOST_INCLUDED_XINT_INTEGER_OPTIONS_HPP
@@ -20,11 +20,14 @@
 namespace boost {
 namespace xint {
 
+#ifndef BOOST_XINT_DOXYGEN_IGNORE
 BOOST_PARAMETER_TEMPLATE_KEYWORD(fixedlength_tag)
 BOOST_PARAMETER_TEMPLATE_KEYWORD(threadsafe_tag)
 BOOST_PARAMETER_TEMPLATE_KEYWORD(secure_tag)
 BOOST_PARAMETER_TEMPLATE_KEYWORD(nothrow_tag)
 BOOST_PARAMETER_TEMPLATE_KEYWORD(allocator_tag)
+BOOST_PARAMETER_TEMPLATE_KEYWORD(sign_tag)
+#endif // BOOST_XINT_DOXYGEN_IGNORE
 
 using boost::is_base_of;
 using boost::mpl::_;
@@ -32,32 +35,431 @@
 using boost::parameter::optional;
 using boost::parameter::deduced;
 
-//! \brief Options for the integer_t template are stored in this namespace.
+#ifndef BOOST_XINT_DOXYGEN_IGNORE
+namespace detail {
+enum negative_policy {
+ // This says it's signed, and is the default.
+ p_signed_type,
+
+ // This says it's unsigned, and to use the default negative policy (modulus
+ // for fixed-length, throw_exception for variable-length).
+ p_unsigned_type,
+
+ // These say that it's unsigned, and to use the specific negative policy
+ // named.
+ p_modulus,
+ p_throw_exception, // or return Not-a-Number for nothrow types
+ p_force_zero,
+ p_force_absolute,
+};
+} // namespace detail
+#endif // BOOST_XINT_DOXYGEN_IGNORE
+
+/*! \brief Options for the integer_t template are stored in this namespace.
+
+Thanks to the magic of Boost.Parameter, you can use as few or as many options as
+you need, and in any order.
+
+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 \c integer_t. If
+none of them are specified, the default is a signed type.
+
+In addition to these options, you can also specify an allocator, which is just
+passed to the \c integer_t template directly. If specified, it must be for the
+\c boost::xint::detail::digit_t type. Defaults to \c std::allocator<digit_t>,
+the standard allocator provided by the STL.
+*/
 namespace options {
 
+#ifndef BOOST_XINT_DOXYGEN_IGNORE
 struct fixedlength_base { };
 struct threadsafe_base { };
 struct secure_base { };
 struct nothrow_base { };
+struct sign_base { };
+#endif // BOOST_XINT_DOXYGEN_IGNORE
 
+//! \name Fixed-Length Integers
+//!@{
+/*! \brief Make fixed-length integers.
+
+\tparam Bits The number of bits to limit it to, or zero for unlimited-length.
+
+If \c Bits is non-zero, integers of this type are \ref fixedlength_type
+"fixed-length", limited to the specified number of bits. If
+zero (the default), the %integer is limited only by your system's memory.
+See also the \ref boost::xint::options::negative_modulus "negative_modulus"
+option.
+*/
 template <bitsize_t Bits> struct fixedlength: public fixedlength_base, public
- boost::mpl::integral_c<bitsize_t, Bits> { };
-template <bool Value> struct threadsafe: public threadsafe_base, public
- boost::mpl::bool_<Value> { };
-template <bool Value> struct secure: public secure_base, public
- boost::mpl::bool_<Value> { };
-template <bool Value> struct nothrow: public nothrow_base, public
- boost::mpl::bool_<Value> { };
+ boost::mpl::integral_c<bitsize_t, Bits> { };
+//!@}
+
+//! \name Miscellaneous Options
+//!@{
+/*! \brief Ensures that the integer_t objects can be safely used by multiple
+ threads.
+
+This is the opposite of the \ref
+boost::xint::options::copy_on_write "copy_on_write" option. It is the default
+behavior; the option is provided only to make it easier to write
+self-documenting code.
+
+Note that even with this option, it is still your responsibility to ensure that
+only one thread accesses a particular integer object at a time.
+*/
+struct threadsafe: public threadsafe_base, public boost::mpl::bool_<true> { };
+
+/*! \brief Allows faster operations, at a price.
+
+This is the opposite of the \ref boost::xint::options::threadsafe "threadsafe"
+option.
+
+By default, the library ensures that each object has its own unique storage
+before returning it. If this option is used, identical objects are allowed to
+share storage using a copy-on-write design, potentially increasing the speed of
+the library, but making it unsafe for multithreaded use (with \ref
+threadsafe "some exceptions"). The library allows copy-on-write for internal
+functions regardless of this parameter, which is safe because the internal
+functions only use one thread at a time.
+*/
+struct copy_on_write: public threadsafe_base, public boost::mpl::bool_<false>{};
+//!@}
+
+//! \name Miscellaneous Options
+//!@{
+/*! \brief Zeros memory before deallocating.
+
+If used, the library zeros out all memory before deallocating it, for maximum
+security. The default is not to do so, for maximum speed.
+*/
+struct secure: public secure_base, public boost::mpl::bool_<true> { };
+
+/*! \brief Disables exceptions from the library.
+
+If used, then operations using this library do not throw exceptions, they return
+special values (most often \ref nan "Not-a-Number") to indicate failures. The
+default is to allow exceptions.
+*/
+struct nothrow: public nothrow_base, public boost::mpl::bool_<true> { };
+//!@}
+
+//! \name Signed/Unsigned Options
+//!@{
+/*! \brief Creates a signed integer type.
+
+If none of the other \c negative_* options is specified, this one is used by
+default. It can also be explicitly specified, to make self-documenting code
+easier to write.
+*/
+struct negative_allowed: public sign_base, public
+ boost::mpl::integral_c<detail::negative_policy, detail::p_signed_type>
+ { };
 
+/*! \brief Creates an unsigned integer with the most common negative-value
+ handling.
+
+This is a sort of default unsigned option. If the type is fixed-length, it acts
+like \c negative_modulus; if not, it acts like \c negative_exception.
+*/
+struct negative_not_allowed: public sign_base, public
+ boost::mpl::integral_c<detail::negative_policy, detail::p_unsigned_type>
+ { };
+
+/*! \brief Make a fixedlength integer wrap like a built-in unsigned type.
+
+This option can only be used with fixed-length types. If a calculation would
+result in a negative number, the number is "wrapped" in the same way that the
+built-in unsigned types are. For example, decrementing a zero will give you the
+maximum value for the type.
+*/
+struct negative_modulus: public sign_base, public
+ boost::mpl::integral_c<detail::negative_policy, detail::p_modulus>
+ { };
+
+/*! \brief Creates an integer type that considers unsigned values invalid.
+
+When using this option, if a calculation would result in a negative number, the
+library throws a \c cannot_represent exception. If exceptions are blocked, the
+calculation results in a Not-a-Number value instead.
+*/
+struct negative_exception: public sign_base, public
+ boost::mpl::integral_c<detail::negative_policy, detail::p_throw_exception>
+ { };
+
+/*! \brief Creates an integer type that forces any negative number to zero.
+
+This is useful for saturation arithmetic, though you'll have to handle the upper
+bound yourself.
+
+\see http://en.wikipedia.org/wiki/Saturation_arithmetic
+*/
+struct negative_zero: public sign_base, public
+ boost::mpl::integral_c<detail::negative_policy, detail::p_force_zero>
+ { };
+
+/*! \brief Creates an integer type that forces any negative number to its
+ absolute value.
+
+A negative result while using this option is automatically changed to its
+positive counterpart.
+*/
+struct negative_absolute: public sign_base, public
+ boost::mpl::integral_c<detail::negative_policy, detail::p_force_absolute>
+ { };
+//!@}
+
+#ifndef BOOST_XINT_DOXYGEN_IGNORE
 typedef parameter::parameters<
     optional<deduced<tag::fixedlength_tag>, is_base_of<fixedlength_base, _> >,
     optional<deduced<tag::threadsafe_tag>, is_base_of<threadsafe_base, _> >,
     optional<deduced<tag::secure_tag>, is_base_of<secure_base, _> >,
     optional<deduced<tag::nothrow_tag>, is_base_of<nothrow_base, _> >,
+ optional<deduced<tag::sign_tag>, is_base_of<sign_base, _> >,
     optional<deduced<tag::allocator_tag>, is_class<_> >
> integer_signature;
+#endif
 
 } // namespace options
+
+namespace detail {
+
+////////////////////////////////////////////////////////////////////////////////
+// integer_t data
+
+#ifdef BOOST_XINT_DOXYGEN_IGNORE
+ // The documentation should see a simplified version of the template
+ // parameters.
+ #define BOOST_XINT_INITIAL_APARAMS ...
+ #define BOOST_XINT_CLASS_APARAMS ...
+ #define BOOST_XINT_CLASS_BPARAMS other
+ #define BOOST_XINT_APARAMS ...
+ #define BOOST_XINT_BPARAMS other
+#else
+ #define BOOST_XINT_INITIAL_APARAMS \
+ class A0 = parameter::void_, \
+ class A1 = parameter::void_, \
+ class A2 = parameter::void_, \
+ class A3 = parameter::void_, \
+ class A4 = parameter::void_, \
+ class A5 = parameter::void_
+ #define BOOST_XINT_CLASS_APARAMS class A0, class A1, class A2, class A3, \
+ class A4, class A5
+ #define BOOST_XINT_APARAMS A0, A1, A2, A3, A4, A5
+ #define BOOST_XINT_CLASS_BPARAMS class B0, class B1, class B2, class B3, \
+ class B4, class B5
+ #define BOOST_XINT_BPARAMS B0, B1, B2, B3, B4, B5
+#endif
+
+#ifndef BOOST_XINT_DOXYGEN_IGNORE
+
+template<BOOST_XINT_CLASS_APARAMS>
+class integer_t_data {
+ public:
+ typedef typename options::integer_signature::bind<BOOST_XINT_APARAMS>::type
+ args;
+ typedef const typename binding<args, tag::fixedlength_tag,
+ options::fixedlength<0> >::type BitsType;
+ typedef const typename binding<args, tag::threadsafe_tag, mpl::true_>::type
+ ThreadsafeType;
+ typedef const typename binding<args, tag::secure_tag, mpl::false_>::type
+ SecureType;
+ typedef const typename binding<args, tag::nothrow_tag, mpl::false_>::type
+ NothrowType;
+ typedef const typename binding<args, tag::sign_tag,
+ options::negative_allowed>::type SignType;
+
+ static const bitsize_t Bits;
+ static const bool Threadsafe, Secure, Nothrow, Signed;
+ typedef typename binding<args, tag::allocator_tag,
+ std::allocator<detail::digit_t> >::type Alloc;
+ typedef raw_integer_t<BitsType::value, SecureType::value, Alloc> datatype;
+
+ integer_t_data() { }
+ integer_t_data(const datatype& copy): data(copy) { }
+ template <bitsize_t B, bool S, class A>
+ integer_t_data(const raw_integer_t<B,S,A>& copy): data(copy) { }
+
+ //! \name Internal Functions
+ //@{
+ datatype& _data() { return data; }
+ const datatype& _data() const { return data; }
+ std::size_t _get_length() const { return data.length; }
+ detail::digit_t _get_digit(std::size_t i) const { return data[i]; }
+ void _make_unique() { data.make_unique(); }
+ //@}
+
+ protected:
+ datatype data;
+};
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bitsize_t integer_t_data<BOOST_XINT_APARAMS>::Bits =
+ integer_t_data<BOOST_XINT_APARAMS>::BitsType::value;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool integer_t_data<BOOST_XINT_APARAMS>::Threadsafe =
+ integer_t_data<BOOST_XINT_APARAMS>::ThreadsafeType::value;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool integer_t_data<BOOST_XINT_APARAMS>::Secure =
+ integer_t_data<BOOST_XINT_APARAMS>::SecureType::value;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool integer_t_data<BOOST_XINT_APARAMS>::Nothrow =
+ integer_t_data<BOOST_XINT_APARAMS>::NothrowType::value;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool integer_t_data<BOOST_XINT_APARAMS>::Signed =
+ (integer_t_data<BOOST_XINT_APARAMS>::SignType::value == p_signed_type);
+
+////////////////////////////////////////////////////////////////////////////////
+// class nan_functions, to handle nothrow-specific Not-a-Number stuff
+
+template <bool Nothrow, typename T, BOOST_XINT_CLASS_APARAMS>
+class nan_functions { };
+
+template <typename T, BOOST_XINT_CLASS_APARAMS>
+class nan_functions<false, T, BOOST_XINT_APARAMS>: virtual public
+ integer_t_data<BOOST_XINT_APARAMS>
+{
+ public:
+ bool is_nan() const { return false; }
+};
+
+template <typename T, BOOST_XINT_CLASS_APARAMS>
+class nan_functions<true, T, BOOST_XINT_APARAMS>: virtual public
+ integer_t_data<BOOST_XINT_APARAMS>
+{
+ public:
+ bool is_nan() const {
+ return integer_t_data<BOOST_XINT_APARAMS>::data.is_nan();
+ }
+
+ static T nan() { return get_nan<T>(); }
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// class fixed_functions, to handle fixed-specific stuff
+
+template <bitsize_t Bits, typename T, BOOST_XINT_CLASS_APARAMS>
+class fixed_functions: virtual public integer_t_data<BOOST_XINT_APARAMS> {
+ using integer_t_data<BOOST_XINT_APARAMS>::Threadsafe;
+ using integer_t_data<BOOST_XINT_APARAMS>::Nothrow;
+ using integer_t_data<BOOST_XINT_APARAMS>::Signed;
+
+ public:
+ T operator~() const {
+ if (Nothrow) {
+ if (integer_t_data<BOOST_XINT_APARAMS>::data.is_nan())
+ return detail::get_nan<T>();
+ 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&) {
+ return detail::get_nan<T>();
+ }
+ } else {
+ 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);
+ }
+ }
+};
+
+template <typename T, BOOST_XINT_CLASS_APARAMS>
+class fixed_functions<0, T, BOOST_XINT_APARAMS>: virtual public
+ integer_t_data<BOOST_XINT_APARAMS>
+{
+ // Nothing needed here at present.
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// class unsigned_negative_functions, for... well, unsigned negatives. :-)
+
+template <negative_policy P, BOOST_XINT_CLASS_APARAMS>
+class unsigned_negative_functions { };
+
+template <BOOST_XINT_CLASS_APARAMS>
+class unsigned_negative_functions<p_signed_type, BOOST_XINT_APARAMS> {
+ public:
+ void _fix_negative_unsigned() { } // Nothing to do for signed numbers
+};
+
+template <BOOST_XINT_CLASS_APARAMS>
+class unsigned_negative_functions<p_unsigned_type, BOOST_XINT_APARAMS>: virtual
+ public integer_t_data<BOOST_XINT_APARAMS>, public
+ unsigned_negative_functions<(integer_t_data<BOOST_XINT_APARAMS>::BitsType::
+ value != 0 ? p_modulus : p_throw_exception), BOOST_XINT_APARAMS>
+{
+ // Don't need anything here, it inherits from the proper default item
+ // (modulus for fixed-length, throw_exception for variable-length)
+};
+
+template <BOOST_XINT_CLASS_APARAMS>
+class unsigned_negative_functions<p_modulus, BOOST_XINT_APARAMS>: virtual
+ public integer_t_data<BOOST_XINT_APARAMS>
+{
+ // Types using unsigned_modulus must be fixedlength too.
+ typedef typename integer_t_data<BOOST_XINT_APARAMS>::BitsType BitsType;
+ BOOST_STATIC_ASSERT(BitsType::value != 0);
+
+ public:
+ void _fix_negative_unsigned() {
+ typename integer_t_data<BOOST_XINT_APARAMS>::datatype&
+ data(integer_t_data<BOOST_XINT_APARAMS>::_data());
+ data = ~data;
+ ++data;
+ }
+};
+
+template <BOOST_XINT_CLASS_APARAMS>
+class unsigned_negative_functions<p_throw_exception, BOOST_XINT_APARAMS>:
+ virtual public integer_t_data<BOOST_XINT_APARAMS>
+{
+ public:
+ void _fix_negative_unsigned() {
+ 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");
+ }
+ }
+};
+
+template <BOOST_XINT_CLASS_APARAMS>
+class unsigned_negative_functions<p_force_zero, BOOST_XINT_APARAMS>: virtual
+ public integer_t_data<BOOST_XINT_APARAMS>
+{
+ public:
+ void _fix_negative_unsigned() {
+ typename integer_t_data<BOOST_XINT_APARAMS>::datatype&
+ data(integer_t_data<BOOST_XINT_APARAMS>::_data());
+ data.set(0);
+ }
+};
+
+template <BOOST_XINT_CLASS_APARAMS>
+class unsigned_negative_functions<p_force_absolute, BOOST_XINT_APARAMS>: virtual
+ public integer_t_data<BOOST_XINT_APARAMS>
+{
+ public:
+ void _fix_negative_unsigned() {
+ typename integer_t_data<BOOST_XINT_APARAMS>::datatype&
+ data(integer_t_data<BOOST_XINT_APARAMS>::_data());
+ data.negative = false;
+ }
+};
+
+#endif // BOOST_XINT_DOXYGEN_IGNORE
+
+} // namespace detail
 } // namespace xint
 } // namespace boost
 

Modified: sandbox/xint/boost/xint/integer.hpp
==============================================================================
--- sandbox/xint/boost/xint/integer.hpp (original)
+++ sandbox/xint/boost/xint/integer.hpp 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -21,29 +21,6 @@
 #include "detail/internals.hpp"
 #include "random.hpp"
 
-#ifdef BOOST_XINT_DOXYGEN_IGNORE
- // The documentation should see a simplified version of the functions.
- #define BOOST_XINT_INTEGER_INITIAL_TPL template<...>
- #define BOOST_XINT_INTEGER_TPL template<...>
- #define BOOST_XINT_INTEGER_TYPE integer_t
- #define BOOST_XINT_OTHER_TPL template<...>
- #define BOOST_XINT_OTHER_TYPE integer_t<other>
-#else
- #define BOOST_XINT_INTEGER_INITIAL_TPL template < \
- class A0 = parameter::void_, \
- class A1 = parameter::void_, \
- class A2 = parameter::void_, \
- class A3 = parameter::void_, \
- class A4 = parameter::void_>
- #define BOOST_XINT_INTEGER_TPL template<class A0, class A1, class A2, \
- class A3, class A4>
- #define BOOST_XINT_INTEGER_TYPE integer_t<A0, A1, A2, A3, A4>
-
- #define BOOST_XINT_OTHER_TPL template <class B0, class B1, class B2, class \
- B3, class B4>
- #define BOOST_XINT_OTHER_TYPE integer_t<B0, B1, B2, B3, B4>
-#endif
-
 namespace boost {
 namespace xint {
 
@@ -55,80 +32,69 @@
 functionality is implemented using standalone functions.
 
 You can specify several template parameters for the type. Most of these
-parameters must be specified via helper classes defined in the \c
-boost::xint::options namespace. Thanks to the magic of Boost.Parameter, you can
-use as few or as many as you need, and in any order. The parameters are:
-
- \tparam fixedlength<Bits> If \c Bits is non-zero, integers of this type are
- \ref fixedlength "fixed-length", limited to the specified number of bits. If
- zero (the default), the %integer is limited only by your system's memory.
-
- \tparam threadsafe<T> If \c T is \c true, the library ensures that each
- object has its own unique storage before returning it. If \c false,
- identical objects are allowed to share storage using a copy-on-write design,
- potentially increasing the speed of the library, but making it unsafe for
- multithreaded use (with \ref threadsafe "some exceptions"). The library
- allows copy-on-write for internal functions regardless of this parameter,
- which is safe because the internal functions only use one thread at a time.
- Defaults to \c true.
-
- \tparam secure<T> If \c T is \c true, the library zeros out all memory
- before deallocating it, for maximum security. Defaults to \c false.
-
- \tparam nothrow<T> If \c T is \c true, then operations using this class do
- not throw exceptions, they return special values (most often \ref
- nan "Not-a-Number") to indicate failures. Defaults to \c false.
-
-You can also specify an allocator, which is just passed to the \c integer_t
-template directly. If specified, it must be for the \c
-boost::xint::detail::digit_t type. Defaults to \c std::allocator<digit_t>.
+parameters must be specified via helper classes defined in the
+#boost::xint::options namespace. See the list and descriptions there.
 
 Here are some examples of how to specify an integer type:
 
 <code><pre>
     namespace xopts = boost::xint::options;
- typedef boost::xint::integer_t<xopts::fixedlength<512>,
- xopts::secure<true> > secureint512;
- typedef boost::xint::integer_t<xopts::threadsafe<false>,
- my_allocator<boost::xint::detail::digit_t> > my_integer;
+ typedef boost::xint::integer_t<xopts::fixedlength<512>, xopts::secure,
+ xopts::negative_modulus> secure_uint512;
+ typedef boost::xint::integer_t<my_allocator<boost::xint::detail::digit_t>,
+ xopts::copy_on_write> my_integer;
 </pre></code>
 
-Note that the \ref boost::xint::integer "integer" and \ref
+Note that the basic \ref boost::xint::integer "integer" and \ref
 boost::xint::nothrow_integer "nothrow_integer" types are already typedef'd for
 you.
 */
-BOOST_XINT_INTEGER_INITIAL_TPL
-class integer_t {
- #ifndef BOOST_XINT_DOXYGEN_IGNORE
- typedef typename options::integer_signature::bind<A0,A1,A2,A3,A4>::type
- args;
- typedef const typename binding<args, tag::fixedlength_tag,
- options::fixedlength<0> >::type BitsType;
- typedef const typename binding<args, tag::threadsafe_tag, mpl::true_>::type
- ThreadsafeType;
- typedef const typename binding<args, tag::secure_tag, mpl::false_>::type
+template<BOOST_XINT_INITIAL_APARAMS>
+class integer_t: virtual public detail::integer_t_data<BOOST_XINT_APARAMS>,
+ public detail::nan_functions<detail::integer_t_data<BOOST_XINT_APARAMS>::
+ NothrowType::value, integer_t<BOOST_XINT_APARAMS>, BOOST_XINT_APARAMS>,
+ public detail::fixed_functions<detail::integer_t_data<BOOST_XINT_APARAMS>::
+ BitsType::value, integer_t<BOOST_XINT_APARAMS>, BOOST_XINT_APARAMS>, public
+ detail::unsigned_negative_functions<detail::integer_t_data<
+ BOOST_XINT_APARAMS>::SignType::value, BOOST_XINT_APARAMS>
+{
+ typedef typename detail::integer_t_data<BOOST_XINT_APARAMS>::BitsType
+ BitsType;
+ typedef typename detail::integer_t_data<BOOST_XINT_APARAMS>::SecureType
         SecureType;
- typedef const typename binding<args, tag::nothrow_tag, mpl::false_>::type
- NothrowType;
- #endif // BOOST_XINT_DOXYGEN_IGNORE
+ typedef typename detail::integer_t_data<BOOST_XINT_APARAMS>::SignType
+ SignType;
+ typedef typename detail::integer_t_data<BOOST_XINT_APARAMS>::Alloc Alloc;
 
     public:
     #ifndef BOOST_XINT_DOXYGEN_IGNORE
- static const bitsize_t Bits;
- static const bool Threadsafe, Secure, Nothrow;
- typedef typename binding<args, tag::allocator_tag,
- std::allocator<detail::digit_t> >::type Alloc;
- typedef BOOST_XINT_INTEGER_TYPE type;
- typedef detail::raw_integer_t<BitsType::value, SecureType::value, Alloc>
- datatype;
- typedef void (BOOST_XINT_INTEGER_TYPE::*safe_bool_type)() const;
+ typedef integer_t<BOOST_XINT_APARAMS> type;
+ typedef void (integer_t<BOOST_XINT_APARAMS>::*safe_bool_type)() const;
     void this_is_a_safe_bool_type() const { }
+
+ typedef typename detail::integer_t_data<BOOST_XINT_APARAMS>::datatype
+ datatype;
+
+ using detail::integer_t_data<BOOST_XINT_APARAMS>::Threadsafe;
+ using detail::integer_t_data<BOOST_XINT_APARAMS>::Nothrow;
+ using detail::integer_t_data<BOOST_XINT_APARAMS>::Signed;
+
+ using detail::integer_t_data<BOOST_XINT_APARAMS>::data;
+ using detail::integer_t_data<BOOST_XINT_APARAMS>::_data;
+
+ using typename detail::nan_functions<detail::integer_t_data<
+ BOOST_XINT_APARAMS>::NothrowType::value, integer_t<
+ BOOST_XINT_APARAMS>, BOOST_XINT_APARAMS>::is_nan;
+
+ using typename detail::unsigned_negative_functions<detail::integer_t_data<
+ BOOST_XINT_APARAMS>::SignType::value, BOOST_XINT_APARAMS>::
+ _fix_negative_unsigned;
     #endif // BOOST_XINT_DOXYGEN_IGNORE
 
     //! \name Constructors & Destructors
     //!@{
     integer_t();
- integer_t(const BOOST_XINT_INTEGER_TYPE& b, bool force_thread_safety =
+ integer_t(const integer_t<BOOST_XINT_APARAMS>& b, bool force_thread_safety =
         false);
     integer_t(BOOST_XINT_RV_REF(type) b) { _swap(b); }
     template <typename charT>
@@ -139,19 +105,17 @@
     explicit integer_t(const std::basic_string<charT, traitsT, allocT>& str,
         std::size_t base = 10);
     explicit integer_t(const xint::binary_t b, bitsize_t bits = 0);
- BOOST_XINT_OTHER_TPL explicit integer_t(const BOOST_XINT_OTHER_TYPE& other,
- bool force_thread_safety = false);
- template <typename Type> integer_t(const Type n,
- typename boost::enable_if<boost::is_integral<Type> >::type* = 0);
+ template <BOOST_XINT_CLASS_BPARAMS> explicit integer_t(const
+ integer_t<BOOST_XINT_BPARAMS>& other, bool force_thread_safety = false);
+ template <typename Type> integer_t(const Type n, typename
+ boost::enable_if<boost::is_integral<Type> >::type* = 0);
 
     #ifndef BOOST_XINT_DOXYGEN_IGNORE
- //! These are used internally.
+ //! This is used internally.
     explicit integer_t(const detail::raw_integer_t<BitsType::value,
- SecureType::value, Alloc> c): data(c) { if (Threadsafe == true)
- data.make_unique(); }
- integer_t(const detail::raw_integer_t<BitsType::value, SecureType::value,
- Alloc> c, bool negative): data(c, negative) { if (Threadsafe == true)
- data.make_unique(); }
+ SecureType::value, Alloc> c):
+ detail::integer_t_data<BOOST_XINT_APARAMS>(c) { if (Threadsafe == true)
+ _data().make_unique(); }
     #endif // BOOST_XINT_DOXYGEN_IGNORE
     //!@}
 
@@ -160,50 +124,65 @@
                %integer types.
     */
     //@{
- BOOST_XINT_INTEGER_TYPE& operator=(BOOST_XINT_COPY_ASSIGN_REF(type) c);
- BOOST_XINT_INTEGER_TYPE& operator=(BOOST_XINT_RV_REF(type) c) {
+ integer_t<BOOST_XINT_APARAMS>& operator=(BOOST_XINT_COPY_ASSIGN_REF(type)
+ c);
+ integer_t<BOOST_XINT_APARAMS>& operator=(BOOST_XINT_RV_REF(type) c) {
         _swap(c); return *this; }
- template <typename Type> BOOST_XINT_INTEGER_TYPE& operator=(const Type n) {
- BOOST_XINT_INTEGER_TYPE nn(n); _swap(nn); return *this; }
+ template <typename Type> integer_t<BOOST_XINT_APARAMS>& operator=(const Type
+ n) { integer_t<BOOST_XINT_APARAMS> nn(n); _swap(nn); return *this; }
 
     operator safe_bool_type() const { return (data.is_zero() ? 0 :
- &BOOST_XINT_INTEGER_TYPE::this_is_a_safe_bool_type); }
+ &integer_t<BOOST_XINT_APARAMS>::this_is_a_safe_bool_type); }
     bool operator!() const { return data.is_zero(); }
- BOOST_XINT_INTEGER_TYPE operator-() const;
- BOOST_XINT_INTEGER_TYPE& operator+() { return *this; }
- const BOOST_XINT_INTEGER_TYPE& operator+() const { return *this; }
- BOOST_XINT_INTEGER_TYPE operator~() const;
-
- BOOST_XINT_INTEGER_TYPE& operator+=(const BOOST_XINT_INTEGER_TYPE b);
- BOOST_XINT_INTEGER_TYPE& operator-=(const BOOST_XINT_INTEGER_TYPE b);
- BOOST_XINT_INTEGER_TYPE& operator*=(const BOOST_XINT_INTEGER_TYPE b);
- BOOST_XINT_INTEGER_TYPE& operator/=(const BOOST_XINT_INTEGER_TYPE b);
- BOOST_XINT_INTEGER_TYPE& operator%=(const BOOST_XINT_INTEGER_TYPE b);
-
- BOOST_XINT_INTEGER_TYPE& operator++();
- BOOST_XINT_INTEGER_TYPE& operator--();
- BOOST_XINT_INTEGER_TYPE operator++(int);
- BOOST_XINT_INTEGER_TYPE operator--(int);
-
- BOOST_XINT_INTEGER_TYPE& operator&=(const BOOST_XINT_INTEGER_TYPE n);
- BOOST_XINT_INTEGER_TYPE& operator|=(const BOOST_XINT_INTEGER_TYPE n);
- BOOST_XINT_INTEGER_TYPE& operator^=(const BOOST_XINT_INTEGER_TYPE n);
- BOOST_XINT_INTEGER_TYPE operator<<(bitsize_t shift) const;
- BOOST_XINT_INTEGER_TYPE operator>>(bitsize_t shift) const;
- BOOST_XINT_INTEGER_TYPE& operator<<=(bitsize_t shift);
- BOOST_XINT_INTEGER_TYPE& operator>>=(bitsize_t shift);
+ integer_t<BOOST_XINT_APARAMS> operator-() const;
+ integer_t<BOOST_XINT_APARAMS>& operator+() { return *this; }
+ const integer_t<BOOST_XINT_APARAMS>& operator+() const { return *this; }
+
+ #ifdef BOOST_XINT_DOXYGEN_IGNORE // inherited, only here for doxygen
+ integer_t<BOOST_XINT_APARAMS> operator~() const;
+ #endif
+
+ integer_t<BOOST_XINT_APARAMS>& operator+=(const
+ integer_t<BOOST_XINT_APARAMS> b);
+ integer_t<BOOST_XINT_APARAMS>& operator-=(const
+ integer_t<BOOST_XINT_APARAMS> b);
+ integer_t<BOOST_XINT_APARAMS>& operator*=(const
+ integer_t<BOOST_XINT_APARAMS> b);
+ integer_t<BOOST_XINT_APARAMS>& operator/=(const
+ integer_t<BOOST_XINT_APARAMS> b);
+ integer_t<BOOST_XINT_APARAMS>& operator%=(const
+ integer_t<BOOST_XINT_APARAMS> b);
+
+ integer_t<BOOST_XINT_APARAMS>& operator++();
+ integer_t<BOOST_XINT_APARAMS>& operator--();
+ integer_t<BOOST_XINT_APARAMS> operator++(int);
+ integer_t<BOOST_XINT_APARAMS> operator--(int);
+
+ integer_t<BOOST_XINT_APARAMS>& operator&=(const
+ integer_t<BOOST_XINT_APARAMS> n);
+ integer_t<BOOST_XINT_APARAMS>& operator|=(const
+ integer_t<BOOST_XINT_APARAMS> n);
+ integer_t<BOOST_XINT_APARAMS>& operator^=(const
+ integer_t<BOOST_XINT_APARAMS> n);
+ integer_t<BOOST_XINT_APARAMS> operator<<(bitsize_t shift) const;
+ integer_t<BOOST_XINT_APARAMS> operator>>(bitsize_t shift) const;
+ integer_t<BOOST_XINT_APARAMS>& operator<<=(bitsize_t shift);
+ integer_t<BOOST_XINT_APARAMS>& operator>>=(bitsize_t shift);
     //@}
 
     //! \name Miscellaneous Functions
     //!@{
     bool is_odd() const;
     bool is_even() const;
- bool is_nan() const;
     int sign(bool signed_zero = false) const;
     std::size_t hex_digits() const;
+
+ #ifdef BOOST_XINT_DOXYGEN_IGNORE // inherited, only here for doxygen
+ bool is_nan() const;
+ #endif
     //!@}
 
- typedef base_divide_t<BOOST_XINT_INTEGER_TYPE > divide_t;
+ typedef base_divide_t<integer_t<BOOST_XINT_APARAMS> > divide_t;
 
     /*! \name Static Member Functions
 
@@ -213,56 +192,39 @@
         instead.
     */
     //!@{
- static BOOST_XINT_INTEGER_TYPE pow2(std::size_t exponent);
- static BOOST_XINT_INTEGER_TYPE factorial(std::size_t n);
- static BOOST_XINT_INTEGER_TYPE nan();
- template <class Type> static BOOST_XINT_INTEGER_TYPE random_by_size(Type&
- gen, bitsize_t size_in_bits, bool high_bit_on = false, bool low_bit_on =
- false, bool can_be_negative = false);
- template <class Type> static BOOST_XINT_INTEGER_TYPE random_prime(Type& gen,
- bitsize_t size_in_bits, callback_t callback = no_callback);
+ static integer_t<BOOST_XINT_APARAMS> pow2(std::size_t exponent);
+ static integer_t<BOOST_XINT_APARAMS> factorial(std::size_t n);
+
+ #ifdef BOOST_XINT_DOXYGEN_IGNORE // inherited, only here for doxygen
+ static integer_t<BOOST_XINT_APARAMS> nan();
+ #endif
+
+ template <class Type> static integer_t<BOOST_XINT_APARAMS>
+ random_by_size(Type& gen, bitsize_t size_in_bits, bool high_bit_on =
+ false, bool low_bit_on = false, bool can_be_negative = false);
+ template <class Type> static integer_t<BOOST_XINT_APARAMS>
+ random_prime(Type& gen, bitsize_t size_in_bits, callback_t callback =
+ no_callback);
     //!@}
 
     #ifndef BOOST_XINT_DOXYGEN_IGNORE
     //! \name Internal Functions
     //@{
- void _swap(BOOST_XINT_INTEGER_TYPE& s) { using std::swap;
+ void _swap(integer_t<BOOST_XINT_APARAMS>& s) { using std::swap;
         swap(data, s.data); }
- datatype& _data() { return data; }
- const datatype& _data() const { return data; }
- std::size_t _get_length() const { return data.length; }
- detail::digit_t _get_digit(std::size_t i) const { return data[i]; }
- void _make_unique() { data.make_unique(); }
     //@}
     #endif
 
     private:
- datatype data;
-
     BOOST_XINT_COPYABLE_AND_MOVABLE(type)
 };
 
-#ifndef BOOST_XINT_DOXYGEN_IGNORE
-BOOST_XINT_INTEGER_TPL
-const bitsize_t BOOST_XINT_INTEGER_TYPE::Bits =
- BOOST_XINT_INTEGER_TYPE::BitsType::value;
-BOOST_XINT_INTEGER_TPL
-const bool BOOST_XINT_INTEGER_TYPE::Threadsafe =
- BOOST_XINT_INTEGER_TYPE::ThreadsafeType::value;
-BOOST_XINT_INTEGER_TPL
-const bool BOOST_XINT_INTEGER_TYPE::Secure =
- BOOST_XINT_INTEGER_TYPE::SecureType::value;
-BOOST_XINT_INTEGER_TPL
-const bool BOOST_XINT_INTEGER_TYPE::Nothrow =
- BOOST_XINT_INTEGER_TYPE::NothrowType::value;
-#endif // BOOST_XINT_DOXYGEN_IGNORE
-
 ////////////////////////////////////////////////////////////////////////////////
 // Member function template definitions
 
 //! \brief Creates a new integer with an initial value of zero.
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE::integer_t() {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>::integer_t() {
     // Don't need to do anything, already preinitialized to zero.
 }
 
@@ -276,9 +238,9 @@
 
 \overload
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE::integer_t(const BOOST_XINT_INTEGER_TYPE& b, bool
- force_thread_safety)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>::integer_t(const integer_t<BOOST_XINT_APARAMS>& b,
+ bool force_thread_safety)
 {
     if (Nothrow) {
         try {
@@ -297,9 +259,9 @@
 }
 
 //! \copydoc integer_t(const std::basic_string<charT, traitsT, allocT>&, std::size_t)
-BOOST_XINT_INTEGER_TPL
+template<BOOST_XINT_CLASS_APARAMS>
 template <typename charT>
-BOOST_XINT_INTEGER_TYPE::integer_t(const charT *str, std::size_t base) {
+integer_t<BOOST_XINT_APARAMS>::integer_t(const charT *str, std::size_t base) {
     if (Nothrow) {
         try {
             const std::basic_string<charT>& tnan = detail::nan_text<charT>();
@@ -307,12 +269,14 @@
                 data.make_nan();
             } else {
                 data.from_string(str, base);
+ if (!Signed && data.negative) _fix_negative_unsigned();
             }
         } catch (std::exception&) {
             data.make_nan();
         }
     } else {
         data.from_string(str, base);
+ if (!Signed && data.negative) _fix_negative_unsigned();
     }
 }
 
@@ -344,9 +308,9 @@
 
 \overload
 */
-BOOST_XINT_INTEGER_TPL
+template<BOOST_XINT_CLASS_APARAMS>
 template <typename charT>
-BOOST_XINT_INTEGER_TYPE::integer_t(const charT *str, const charT*& endptr,
+integer_t<BOOST_XINT_APARAMS>::integer_t(const charT *str, const charT*& endptr,
     std::size_t base)
 {
     if (Nothrow) {
@@ -361,11 +325,13 @@
                 }
             }
             data.from_string(str, endptr, base);
+ if (!Signed && data.negative) _fix_negative_unsigned();
         } catch (std::exception&) {
             data.make_nan();
         }
     } else {
         data.from_string(str, endptr, base);
+ if (!Signed && data.negative) _fix_negative_unsigned();
     }
 }
 
@@ -393,20 +359,24 @@
 
 \overload
 */
-BOOST_XINT_INTEGER_TPL
+template<BOOST_XINT_CLASS_APARAMS>
 template <typename charT, typename traitsT, typename allocT>
-BOOST_XINT_INTEGER_TYPE::integer_t(const std::basic_string<charT, traitsT,
+integer_t<BOOST_XINT_APARAMS>::integer_t(const std::basic_string<charT, traitsT,
     allocT>& str, std::size_t base)
 {
     if (Nothrow) {
         try {
             if (str == detail::nan_text<charT>()) data.make_nan();
- else data.from_string(str, base);
+ else {
+ data.from_string(str, base);
+ if (!Signed && data.negative) _fix_negative_unsigned();
+ }
         } catch (std::exception&) {
             data.make_nan();
         }
     } else {
         data.from_string(str, base);
+ if (!Signed && data.negative) _fix_negative_unsigned();
     }
 }
 
@@ -431,8 +401,9 @@
 
 \overload
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE::integer_t(const xint::binary_t b, bitsize_t bits) {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>::integer_t(const xint::binary_t b, bitsize_t bits)
+{
     if (Nothrow) {
         try {
             data.from_binary(b, bits);
@@ -456,10 +427,10 @@
 
 \overload
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_OTHER_TPL
-BOOST_XINT_INTEGER_TYPE::integer_t(const BOOST_XINT_OTHER_TYPE& b, bool
- force_thread_safety)
+template<BOOST_XINT_CLASS_APARAMS>
+template <BOOST_XINT_CLASS_BPARAMS>
+integer_t<BOOST_XINT_APARAMS>::integer_t(const integer_t<BOOST_XINT_BPARAMS>& b,
+ bool force_thread_safety)
 {
     if (Nothrow) {
         try {
@@ -467,8 +438,11 @@
                 data.make_nan();
             } else {
                 data = b._data();
- if (!data.is_nan() && force_thread_safety && Threadsafe ==
- false) data.make_unique();
+ if (!data.is_nan()) {
+ if (force_thread_safety && Threadsafe == false)
+ data.make_unique();
+ if (!Signed && data.negative) _fix_negative_unsigned();
+ }
             }
         } catch (std::exception&) {
             data.make_nan();
@@ -477,6 +451,7 @@
         if (b._data().is_nan()) throw exceptions::not_a_number();
         data = b._data();
         if (force_thread_safety && Threadsafe == false) data.make_unique();
+ if (!Signed && data.negative) _fix_negative_unsigned();
     }
 }
 
@@ -492,25 +467,29 @@
 
     \overload
 */
-BOOST_XINT_INTEGER_TPL
-template <typename Type> BOOST_XINT_INTEGER_TYPE::integer_t(const Type n,
+template<BOOST_XINT_CLASS_APARAMS>
+template <typename Type> integer_t<BOOST_XINT_APARAMS>::integer_t(const Type n,
     typename boost::enable_if<boost::is_integral<Type> >::type*)
 {
     if (Nothrow) {
         try {
- if (std::numeric_limits<Type>::is_signed) data.set_signed(n);
- else data.set_unsigned(n);
+ 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&) {
             data.make_nan();
         }
     } else {
- if (std::numeric_limits<Type>::is_signed) data.set_signed(n);
- else data.set_unsigned(n);
+ if (std::numeric_limits<Type>::is_signed) {
+ data.set_signed(n);
+ if (!Signed && data.negative) _fix_negative_unsigned();
+ } else data.set_unsigned(n);
     }
 }
 
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::
     operator=(BOOST_XINT_COPY_ASSIGN_REF(type) c)
 {
     if (Nothrow) {
@@ -530,31 +509,26 @@
     return *this;
 }
 
-/*! \brief The Bitwise Ones' Complement (i.e. bitwise NOT) operator.
+#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn't really exist, this is here for docs
+/*! \brief The Bitwise Ones Complement (i.e. bitwise NOT) operator.
 
 - Complexity: O(n)
 
-Note that this operator is only useful with fixed-size integers. If used with a
-variable-size integer, it will throw a \c too_big exception, because a proper
-implementation would result in an infinitely long number.
+\note
+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.
+
+\par
+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>.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::operator~() const {
- if (Nothrow) {
- if (is_nan()) return *this;
- try {
- BOOST_XINT_INTEGER_TYPE r(~data);
- if (Threadsafe == true) r._make_unique();
- return BOOST_XINT_MOVE(r);
- } catch (std::exception&) {
- return nan();
- }
- } else {
- BOOST_XINT_INTEGER_TYPE r(~data);
- if (Threadsafe == true) r._make_unique();
- return BOOST_XINT_MOVE(r);
- }
-}
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::operator~() const;
+#endif // BOOST_XINT_DOXYGEN_IGNORE
 
 /*! \brief Return the additive inverse of an integer.
 
@@ -562,30 +536,32 @@
 
 \returns \c *this with the sign reversed.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::operator-() const {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::operator-() const {
     if (Nothrow) {
         if (is_nan()) return *this;
         try {
- BOOST_XINT_INTEGER_TYPE r(*this);
+ 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&) {
- return nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(*this);
+ 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);
     }
 }
 
 //! \see operator+(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator+=(const
- BOOST_XINT_INTEGER_TYPE b)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator+=(const
+ integer_t<BOOST_XINT_APARAMS> b)
 {
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
@@ -605,9 +581,9 @@
 }
 
 //! \see operator-(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator-=(const
- BOOST_XINT_INTEGER_TYPE b)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator-=(const
+ integer_t<BOOST_XINT_APARAMS> b)
 {
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
@@ -615,6 +591,7 @@
             try {
                 data -= b.data;
                 if (Threadsafe == true) data.make_unique();
+ if (!Signed && data.negative) _fix_negative_unsigned();
             } catch (std::exception&) {
                 data.make_nan();
             }
@@ -622,14 +599,15 @@
     } else {
         data -= b.data;
         if (Threadsafe == true) data.make_unique();
+ if (!Signed && data.negative) _fix_negative_unsigned();
     }
     return *this;
 }
 
 //! \see operator*(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator*=(const
- BOOST_XINT_INTEGER_TYPE b)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator*=(const
+ integer_t<BOOST_XINT_APARAMS> b)
 {
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
@@ -649,9 +627,9 @@
 }
 
 //! \see operator/(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator/=(const
- BOOST_XINT_INTEGER_TYPE b)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator/=(const
+ integer_t<BOOST_XINT_APARAMS> b)
 {
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
@@ -671,9 +649,9 @@
 }
 
 //! \see operator%(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator%=(const
- BOOST_XINT_INTEGER_TYPE b)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator%=(const
+ integer_t<BOOST_XINT_APARAMS> b)
 {
     if (Nothrow) {
         if (b.is_nan()) data.make_nan();
@@ -696,8 +674,8 @@
 
 - Complexity: amortized O(1)
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator++() {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator++() {
     if (Nothrow) {
         if (!is_nan()) {
             try {
@@ -718,13 +696,14 @@
 
 - Complexity: amortized O(1)
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator--() {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator--() {
     if (Nothrow) {
         if (!is_nan()) {
             try {
                 --data;
                 if (Threadsafe == true) data.make_unique();
+ if (!Signed && data.negative) _fix_negative_unsigned();
             } catch (std::exception&) {
                 data.make_nan();
             }
@@ -732,6 +711,7 @@
     } else {
         --data;
         if (Threadsafe == true) data.make_unique();
+ if (!Signed && data.negative) _fix_negative_unsigned();
     }
     return *this;
 }
@@ -743,19 +723,19 @@
 This is not recommended. It must make a copy before incrementing the \c *this
 object, making it noticeably less efficient than the preincrement operator.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::operator++(int) {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::operator++(int) {
     if (Nothrow) {
         if (is_nan()) return *this;
         try {
- BOOST_XINT_INTEGER_TYPE r(data++);
+ integer_t<BOOST_XINT_APARAMS> r(data++);
             if (Threadsafe == true) { r._make_unique(); data.make_unique(); }
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
             data.make_nan();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(data++);
+ integer_t<BOOST_XINT_APARAMS> r(data++);
         if (Threadsafe == true) { r._make_unique(); data.make_unique(); }
         return BOOST_XINT_MOVE(r);
     }
@@ -768,28 +748,30 @@
 This is not recommended. It must make a copy before decrementing the \c *this
 object, making it noticeably less efficient than the predecrement operator.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::operator--(int) {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::operator--(int) {
     if (Nothrow) {
         if (is_nan()) return *this;
         try {
- BOOST_XINT_INTEGER_TYPE r(data--);
+ 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&) {
             data.make_nan();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(data--);
+ 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);
     }
 }
 
 //! \see operator&(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator&=(const
- BOOST_XINT_INTEGER_TYPE n)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator&=(const
+ integer_t<BOOST_XINT_APARAMS> n)
 {
     if (Nothrow) {
         if (n.is_nan()) data.make_nan();
@@ -809,9 +791,9 @@
 }
 
 //! \see operator|(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator|=(const
- BOOST_XINT_INTEGER_TYPE n)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator|=(const
+ integer_t<BOOST_XINT_APARAMS> n)
 {
     if (Nothrow) {
         if (n.is_nan()) data.make_nan();
@@ -831,9 +813,9 @@
 }
 
 //! \see operator^(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator^=(const
- BOOST_XINT_INTEGER_TYPE n)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>& integer_t<BOOST_XINT_APARAMS>::operator^=(const
+ integer_t<BOOST_XINT_APARAMS> n)
 {
     if (Nothrow) {
         if (n.is_nan()) data.make_nan();
@@ -860,21 +842,20 @@
 
 \returns The bit-shifted integer.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::operator<<(bitsize_t shift)
- const
-{
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>
+integer_t<BOOST_XINT_APARAMS>::operator<<(bitsize_t shift) const {
     if (Nothrow) {
         if (is_nan()) return *this;
         try {
- BOOST_XINT_INTEGER_TYPE r(data << shift);
+ integer_t<BOOST_XINT_APARAMS> r(data << shift);
             if (Threadsafe == true) r._make_unique();
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(data << shift);
+ integer_t<BOOST_XINT_APARAMS> r(data << shift);
         if (Threadsafe == true) r._make_unique();
         return BOOST_XINT_MOVE(r);
     }
@@ -888,29 +869,29 @@
 
 \returns The bit-shifted integer.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::operator>>(bitsize_t shift)
- const
-{
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>
+integer_t<BOOST_XINT_APARAMS>::operator>>(bitsize_t shift) const {
     if (Nothrow) {
         if (is_nan()) return *this;
         try {
- BOOST_XINT_INTEGER_TYPE r(data >> shift);
+ integer_t<BOOST_XINT_APARAMS> r(data >> shift);
             if (Threadsafe == true) r._make_unique();
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(data >> shift);
+ integer_t<BOOST_XINT_APARAMS> r(data >> shift);
         if (Threadsafe == true) r._make_unique();
         return BOOST_XINT_MOVE(r);
     }
 }
 
 //! \see operator<<(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator<<=(bitsize_t shift) {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>&
+integer_t<BOOST_XINT_APARAMS>::operator<<=(bitsize_t shift) {
     if (Nothrow) {
         if (!is_nan()) {
             try {
@@ -928,8 +909,9 @@
 }
 
 //! \see operator>>(integer_t, integer_t)
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE& BOOST_XINT_INTEGER_TYPE::operator>>=(bitsize_t shift) {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>&
+integer_t<BOOST_XINT_APARAMS>::operator>>=(bitsize_t shift) {
     if (Nothrow) {
         if (!is_nan()) {
             try {
@@ -950,11 +932,11 @@
 
 - Complexity: O(1)
 
-\returns \c true if \c *this is odd, otherwise \c false. The nothrow<true>
-version returns false instead of throwing.
+\returns \c true if \c *this is odd, otherwise \c false. The nothrow version
+returns false instead of throwing.
 */
-BOOST_XINT_INTEGER_TPL
-bool BOOST_XINT_INTEGER_TYPE::is_odd() const {
+template<BOOST_XINT_CLASS_APARAMS>
+bool integer_t<BOOST_XINT_APARAMS>::is_odd() const {
     if (Nothrow) {
         if (is_nan()) return false;
         return data.is_odd();
@@ -967,11 +949,11 @@
 
 - Complexity: O(1)
 
-\returns \c true if \c *this is even, otherwise \c false. The nothrow<true>
-version returns false instead of throwing.
+\returns \c true if \c *this is even, otherwise \c false. The nothrow version
+returns false instead of throwing.
 */
-BOOST_XINT_INTEGER_TPL
-bool BOOST_XINT_INTEGER_TYPE::is_even() const {
+template<BOOST_XINT_CLASS_APARAMS>
+bool integer_t<BOOST_XINT_APARAMS>::is_even() const {
     if (Nothrow) {
         if (is_nan()) return false;
         return data.is_even();
@@ -980,6 +962,7 @@
     }
 }
 
+#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn't really exist, this is here for docs
 /*! \brief Tests whether the object is a Not-a-Number.
 
 - Complexity: O(1)
@@ -991,10 +974,9 @@
 \note This will always return \c false on any type where the \c nothrow template
 parameter is \c false.
 */
-BOOST_XINT_INTEGER_TPL
-bool BOOST_XINT_INTEGER_TYPE::is_nan() const {
- return data.is_nan();
-}
+template<BOOST_XINT_CLASS_APARAMS>
+bool integer_t<BOOST_XINT_APARAMS>::is_nan() const;
+#endif // BOOST_XINT_DOXYGEN_IGNORE
 
 /*! \brief Tests the sign of \c *this.
 
@@ -1005,10 +987,10 @@
 to identify a \ref zero "negative zero".
 
 \returns -1 if \c *this is negative, 0 if it's zero, or 1 if it's greater than
-zero. The nothrow<true> version returns zero instead of throwing.
+zero. The nothrow version returns zero instead of throwing.
 */
-BOOST_XINT_INTEGER_TPL
-int BOOST_XINT_INTEGER_TYPE::sign(bool signed_zero) const {
+template<BOOST_XINT_CLASS_APARAMS>
+int integer_t<BOOST_XINT_APARAMS>::sign(bool signed_zero) const {
     if (Nothrow) {
         if (is_nan()) return 0;
         try {
@@ -1026,10 +1008,10 @@
 - Complexity: O(1)
 
 \returns The number of hexadecimal digits that would be required to encode \c
-*this. The nothrow<true> version returns zero instead of throwing.
+*this. The nothrow version returns zero instead of throwing.
 */
-BOOST_XINT_INTEGER_TPL
-size_t BOOST_XINT_INTEGER_TYPE::hex_digits() const {
+template<BOOST_XINT_CLASS_APARAMS>
+size_t integer_t<BOOST_XINT_APARAMS>::hex_digits() const {
     if (Nothrow) {
         if (is_nan()) return 0;
         try {
@@ -1055,19 +1037,21 @@
 more efficient than using bit-shifting or the \c pow function to get the same
 result.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::pow2(std::size_t exponent) {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::pow2(std::size_t
+ exponent)
+{
     if (Nothrow) {
         try {
- BOOST_XINT_INTEGER_TYPE r;
+ 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&) {
- return nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r;
+ integer_t<BOOST_XINT_APARAMS> r;
         detail::pow2(r.data, exponent);
         if (Threadsafe == true) r._make_unique();
         return BOOST_XINT_MOVE(r);
@@ -1087,25 +1071,27 @@
 function, when used on an unlimited-size integer and with a large parameter, is
 the easiest way to exhaust the system's memory.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::factorial(std::size_t n) {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS>
+integer_t<BOOST_XINT_APARAMS>::factorial(std::size_t n) {
     if (Nothrow) {
         try {
- BOOST_XINT_INTEGER_TYPE r;
+ 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&) {
- return nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r;
+ integer_t<BOOST_XINT_APARAMS> r;
         detail::factorial(r.data, n);
         if (Threadsafe == true) r._make_unique();
         return BOOST_XINT_MOVE(r);
     }
 }
 
+#ifdef BOOST_XINT_DOXYGEN_IGNORE // Doesn't really exist, this is here for docs
 /*! \brief Returns a Not-a-Number value, for types that support it.
 
 - Complexity: O(1)
@@ -1113,22 +1099,14 @@
 \returns A Not-a-Number value of the specified type.
 
 \note
-If called on a type that does not support Not-a-Number values (i.e. any type
-whose \c nothrow template parameter is <code>false</code>), it will throw a
-\c not_a_number exception.
+This function only exists on types whose \c nothrow template parameter is \c
+true.
 
 \see \ref nan
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::nan() {
- if (Nothrow) {
- BOOST_XINT_INTEGER_TYPE r;
- r._data().make_nan();
- return BOOST_XINT_MOVE(r);
- } else {
- throw exceptions::not_a_number();
- }
-}
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::nan();
+#endif // BOOST_XINT_DOXYGEN_IGNORE
 
 /*! \brief Generates a random integer with specific attributes.
 
@@ -1146,27 +1124,30 @@
 \param[in] low_bit_on If \c true, the returned number will always be odd. If
 \c false, it has an equal chance of being odd or even.
 \param[in] can_be_negative If \c true, the returned value has an equal chance
-of being positive or negative. If \c false, it will always be positive.
+of being positive or negative. If \c false, it will always be positive. Note
+that on unsigned types, this parameter is ignored; the result will always be
+positive regardless of it.
 
 \returns A random integer with the requested attributes.
 
 \see \ref random
 */
-BOOST_XINT_INTEGER_TPL
+template<BOOST_XINT_CLASS_APARAMS>
 template <class Type>
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::random_by_size(Type& gen,
- bitsize_t size_in_bits, bool high_bit_on, bool low_bit_on, bool
+integer_t<BOOST_XINT_APARAMS>integer_t<BOOST_XINT_APARAMS>::random_by_size(Type&
+ gen, bitsize_t size_in_bits, bool high_bit_on, bool low_bit_on, bool
     can_be_negative)
 {
+ if (!Signed) can_be_negative = false;
     if (Nothrow) {
         try {
- return BOOST_XINT_INTEGER_TYPE(datatype::random_by_size(gen,
+ 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&) {
- return nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- return BOOST_XINT_INTEGER_TYPE(datatype::random_by_size(gen,
+ return integer_t<BOOST_XINT_APARAMS>(datatype::random_by_size(gen,
             size_in_bits, high_bit_on, low_bit_on, can_be_negative));
     }
 }
@@ -1198,19 +1179,21 @@
 
 \see \ref primes
 */
-BOOST_XINT_INTEGER_TPL
+template<BOOST_XINT_CLASS_APARAMS>
 template <class Type>
-BOOST_XINT_INTEGER_TYPE BOOST_XINT_INTEGER_TYPE::random_prime(Type& gen,
- bitsize_t size_in_bits, callback_t callback)
+integer_t<BOOST_XINT_APARAMS> integer_t<BOOST_XINT_APARAMS>::random_prime(Type&
+ gen, bitsize_t size_in_bits, callback_t callback)
 {
     if (Nothrow) {
         try {
- return datatype::random_prime(gen, size_in_bits, callback);
+ return integer_t<BOOST_XINT_APARAMS>(datatype::random_prime(gen,
+ size_in_bits, callback));
         } catch (std::exception&) {
- return nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- return datatype::random_prime(gen, size_in_bits, callback);
+ return integer_t<BOOST_XINT_APARAMS>(datatype::random_prime(gen,
+ size_in_bits, callback));
     }
 }
 
@@ -1218,7 +1201,7 @@
 // Free function template definitions
 /*! \name Mathematical primitives
 
- There are only a couple of functions here because almost all mathematical
+ There are only a few functions here because almost all mathematical
     primitives are implemented as operators.
 */
 //!@{
@@ -1231,20 +1214,22 @@
 
 \returns If \c n is zero or positive, returns \c n. Otherwise returns \c -n.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE abs(const BOOST_XINT_INTEGER_TYPE n) {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n.is_nan()) return BOOST_XINT_INTEGER_TYPE::nan();
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> abs(const integer_t<BOOST_XINT_APARAMS> n) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
+ if (n.is_nan())
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         try {
- BOOST_XINT_INTEGER_TYPE r(n._data().abs());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(n._data().abs());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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);
     }
 }
@@ -1257,8 +1242,8 @@
 \param[in] dividend, divisor The integers to operate on.
 
 \returns A \c divide_t class containing the quotient and remainder of \c
-dividend divided by \c divisor. The nothrow<true> version returns a \c divide_t
-with both items set to Not-a-Number instead of throwing.
+dividend divided by \c divisor. The nothrow version returns a \c divide_t with
+both items set to Not-a-Number instead of throwing.
 
 \exception exceptions::divide_by_zero if \c d2 is zero.
 
@@ -1267,34 +1252,59 @@
 \see integer_t::operator/=
 \see integer_t::operator%=
 */
-BOOST_XINT_INTEGER_TPL
-typename BOOST_XINT_INTEGER_TYPE::divide_t divide(const BOOST_XINT_INTEGER_TYPE
- dividend, const BOOST_XINT_INTEGER_TYPE divisor)
+template<BOOST_XINT_CLASS_APARAMS>
+typename integer_t<BOOST_XINT_APARAMS>::divide_t divide(const
+ integer_t<BOOST_XINT_APARAMS> dividend, const integer_t<BOOST_XINT_APARAMS>
+ divisor)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (dividend.is_nan() || divisor.is_nan()) return typename
- BOOST_XINT_INTEGER_TYPE::divide_t(BOOST_XINT_INTEGER_TYPE::nan(),
- BOOST_XINT_INTEGER_TYPE::nan());
+ integer_t<BOOST_XINT_APARAMS>::divide_t(detail::get_nan<
+ integer_t<BOOST_XINT_APARAMS> >(), detail::get_nan<
+ integer_t<BOOST_XINT_APARAMS> >());
         try {
- typename BOOST_XINT_INTEGER_TYPE::datatype::divide_t rr =
+ typename integer_t<BOOST_XINT_APARAMS>::datatype::divide_t rr =
                 detail::divide(dividend._data(), divisor._data());
- typename BOOST_XINT_INTEGER_TYPE::divide_t
- r(BOOST_XINT_INTEGER_TYPE(rr.quotient),
- BOOST_XINT_INTEGER_TYPE(rr.remainder));
+ 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&) {
- return typename BOOST_XINT_INTEGER_TYPE::divide_t(
- BOOST_XINT_INTEGER_TYPE::nan(), BOOST_XINT_INTEGER_TYPE::nan());
+ 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> >());
         }
     } else {
- typename BOOST_XINT_INTEGER_TYPE::datatype::divide_t rr =
+ typename integer_t<BOOST_XINT_APARAMS>::datatype::divide_t rr =
             detail::divide(dividend._data(), divisor._data());
- typename BOOST_XINT_INTEGER_TYPE::divide_t
- r(BOOST_XINT_INTEGER_TYPE(rr.quotient),
- BOOST_XINT_INTEGER_TYPE(rr.remainder));
+ 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);
     }
 }
+
+/*! \brief Calculate the absolute difference between two integers.
+
+- Complexity: O(n)
+
+\param[in] n1, n2 The integers to operate on.
+
+\returns The absolute difference between the parameters.
+
+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.
+*/
+template <BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> difference(const integer_t<BOOST_XINT_APARAMS> n1,
+ const integer_t<BOOST_XINT_APARAMS> n2)
+{
+ typename integer_t<BOOST_XINT_APARAMS>::datatype rdata = n1._data() -
+ n2._data();
+ rdata.negative = false;
+ return integer_t<BOOST_XINT_APARAMS>(rdata);
+}
 //!@}
 
 /*! \name Powers and roots
@@ -1315,20 +1325,21 @@
 The repetitive nature of the input (multiplying a number by itself) allows this
 function to use a more-efficient algorithm than standard multiplication.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE square(const BOOST_XINT_INTEGER_TYPE n) {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+template<BOOST_XINT_CLASS_APARAMS>
+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_INTEGER_TYPE r(detail::square(n._data()));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(detail::square(n._data()));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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);
     }
 }
@@ -1341,24 +1352,26 @@
 
 \returns \c n to the power of \c e.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE pow(const BOOST_XINT_INTEGER_TYPE n, const
- BOOST_XINT_INTEGER_TYPE e)
-{
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n.is_nan() || e.is_nan()) return BOOST_XINT_INTEGER_TYPE::nan();
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> pow(const integer_t<BOOST_XINT_APARAMS> n, const
+ integer_t<BOOST_XINT_APARAMS> e)
+{
+ 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_INTEGER_TYPE r;
+ integer_t<BOOST_XINT_APARAMS> r;
             pow(r._data(), n._data(), e._data());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
+ r._make_unique();
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r;
+ integer_t<BOOST_XINT_APARAMS> r;
         pow(r._data(), n._data(), e._data());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) r._make_unique();
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -1375,20 +1388,22 @@
 
 \exception exceptions::cannot_represent if \c n is negative.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE square_root(const BOOST_XINT_INTEGER_TYPE n) {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> square_root(const integer_t<BOOST_XINT_APARAMS> n)
+{
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return n;
         try {
- BOOST_XINT_INTEGER_TYPE r(square_root(n._data()));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(square_root(n._data()));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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);
     }
 }
@@ -1411,11 +1426,11 @@
 \exception exceptions::too_big if \c n would not fit into the specified type.
 
 This function provides the most efficient means of converting to a built-in
-integral type. The nothrow<true> version returns T(0) instead of throwing.
+integral type. The nothrow version returns T(0) instead of throwing.
 */
-template <typename T, class A0, class A1, class A2, class A3, class A4>
-T to(const BOOST_XINT_INTEGER_TYPE n) {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+template <typename T, BOOST_XINT_CLASS_APARAMS>
+T to(const integer_t<BOOST_XINT_APARAMS> n) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return T(0);
         try {
             return to<T>(n._data());
@@ -1439,7 +1454,7 @@
 \param[in] uppercase Whether to make alphabetic characters (for bases greater
 than ten) uppercase or not. Defaults to \c false.
 
-\returns The string value of \c n. The nothrow<true> version returns the string
+\returns The string value of \c n. The nothrow version returns the string
 "#NaN#" if \c n is a Not-a-Number, and an empty string instead of throwing.
 
 \exception exceptions::invalid_base if base is less than two or greater than 36.
@@ -1449,11 +1464,11 @@
 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.)
 */
-template<typename charT, class A0, class A1, class A2, class A3, class A4>
-std::basic_string<charT> to_stringtype(const BOOST_XINT_INTEGER_TYPE n,
+template<typename charT, BOOST_XINT_CLASS_APARAMS>
+std::basic_string<charT> to_stringtype(const integer_t<BOOST_XINT_APARAMS> n,
     std::size_t base = 10, bool uppercase = false)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return detail::nan_text<charT>();
         try {
             return detail::to_string<charT>(n._data(), base, uppercase);
@@ -1468,9 +1483,9 @@
 /*! \brief A shorthand function that calls \ref
            integer_t::to_stringtype() "to_stringtype<char>".
 */
-BOOST_XINT_INTEGER_TPL
-std::string to_string(const BOOST_XINT_INTEGER_TYPE n, std::size_t base = 10,
- bool uppercase = false)
+template<BOOST_XINT_CLASS_APARAMS>
+std::string to_string(const integer_t<BOOST_XINT_APARAMS> n, std::size_t base =
+ 10, bool uppercase = false)
 {
     return to_stringtype<char>(n, base, uppercase);
 }
@@ -1478,9 +1493,9 @@
 /*! \brief A shorthand function that calls \ref
            integer_t::to_stringtype() "to_stringtype<wchar_t>".
 */
-BOOST_XINT_INTEGER_TPL
-std::wstring to_wstring(const BOOST_XINT_INTEGER_TYPE n, std::size_t base = 10,
- bool uppercase = false)
+template<BOOST_XINT_CLASS_APARAMS>
+std::wstring to_wstring(const integer_t<BOOST_XINT_APARAMS> n, std::size_t base
+ = 10, bool uppercase = false)
 {
     return to_stringtype<wchar_t>(n, base, uppercase);
 }
@@ -1496,7 +1511,7 @@
 unsigned character type.
 
 \returns An \c xint::binary_t containing the binary representation, lowest byte
-first. The nothrow<true> version returns an empty \c binary_t object instead of
+first. The nothrow version returns an empty \c binary_t object instead of
 throwing.
 
 \exception exceptions::invalid_argument if \c bits is greater than the number of
@@ -1512,9 +1527,11 @@
 
 \see integer_t::integer_t(xint::binary_t, bitsize_t bits)
 */
-BOOST_XINT_INTEGER_TPL
-xint::binary_t to_binary(const BOOST_XINT_INTEGER_TYPE n, bitsize_t bits = 0) {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+template<BOOST_XINT_CLASS_APARAMS>
+xint::binary_t to_binary(const integer_t<BOOST_XINT_APARAMS> n, bitsize_t bits =
+ 0)
+{
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return xint::binary_t();
         try {
             return to_binary(n._data(), bits);
@@ -1538,11 +1555,11 @@
 \param[in] bit The zero-based index of the bit you're asking about.
 
 \returns \c true if the specified bit is set (has a value of one), \c false if
-it is clear. The nothrow<true> version returns \c false instead of throwing.
+it is clear. The nothrow version returns \c false instead of throwing.
 */
-BOOST_XINT_INTEGER_TPL
-bool getbit(const BOOST_XINT_INTEGER_TYPE n, bitsize_t bit) {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+template<BOOST_XINT_CLASS_APARAMS>
+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 {
             return getbit(n._data(), bit);
@@ -1563,9 +1580,9 @@
 
 \returns Nothing.
 */
-BOOST_XINT_INTEGER_TPL
-void setbit(BOOST_XINT_INTEGER_TYPE& n, bitsize_t bit) {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+template<BOOST_XINT_CLASS_APARAMS>
+void setbit(integer_t<BOOST_XINT_APARAMS>& n, bitsize_t bit) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (!n.is_nan()) {
             try {
                 setbit(n._data(), bit);
@@ -1587,9 +1604,9 @@
 
 \returns Nothing.
 */
-BOOST_XINT_INTEGER_TPL
-void clearbit(BOOST_XINT_INTEGER_TYPE& n, bitsize_t bit) {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+template<BOOST_XINT_CLASS_APARAMS>
+void clearbit(integer_t<BOOST_XINT_APARAMS>& n, bitsize_t bit) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (!n.is_nan()) {
             try {
                 clearbit(n._data(), bit);
@@ -1612,14 +1629,14 @@
 correct answer in that case).
 
 \returns The zero-based index of the lowest one-bit in the integer, or \c
-return_if_zero if the integer contains no set bits. The nothrow<true> version
+return_if_zero if the integer contains no set bits. The nothrow version
 returns \c return_if_zero instead of throwing.
 */
-BOOST_XINT_INTEGER_TPL
-bitsize_t lowestbit(const BOOST_XINT_INTEGER_TYPE n, bitsize_t return_if_zero =
- 0)
+template<BOOST_XINT_CLASS_APARAMS>
+bitsize_t lowestbit(const integer_t<BOOST_XINT_APARAMS> n, bitsize_t
+ return_if_zero = 0)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return return_if_zero;
         try {
             return lowestbit(n._data(), return_if_zero);
@@ -1641,14 +1658,14 @@
 correct answer in that case).
 
 \returns The zero-based index of the highest one-bit in the integer, or \c
-return_if_zero if the integer contains no set bits. The nothrow<true> version
-returns \c return_if_zero instead of throwing.
+return_if_zero if the integer contains no set bits. The nothrow version returns
+\c return_if_zero instead of throwing.
 */
-BOOST_XINT_INTEGER_TPL
-bitsize_t highestbit(const BOOST_XINT_INTEGER_TYPE n, bitsize_t return_if_zero =
- 0)
+template<BOOST_XINT_CLASS_APARAMS>
+bitsize_t highestbit(const integer_t<BOOST_XINT_APARAMS> n, bitsize_t
+ return_if_zero = 0)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return return_if_zero;
         try {
             return highestbit(n._data(), return_if_zero);
@@ -1685,25 +1702,27 @@
 self-documenting code. It does not provide any additional efficiency over
 writing out the calculation.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE mulmod(const BOOST_XINT_INTEGER_TYPE n, const
- BOOST_XINT_INTEGER_TYPE by, const BOOST_XINT_INTEGER_TYPE modulus)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> mulmod(const integer_t<BOOST_XINT_APARAMS> n,
+ const integer_t<BOOST_XINT_APARAMS> by, const integer_t<BOOST_XINT_APARAMS>
+ modulus)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan() || by.is_nan() || modulus.is_nan()) return
- BOOST_XINT_INTEGER_TYPE::nan();
+ detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         try {
- BOOST_XINT_INTEGER_TYPE r(mulmod(n._data(), by._data(),
+ integer_t<BOOST_XINT_APARAMS> r(mulmod(n._data(), by._data(),
                 modulus._data()));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
+ r._make_unique();
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(mulmod(n._data(), by._data(),
+ integer_t<BOOST_XINT_APARAMS> r(mulmod(n._data(), by._data(),
             modulus._data()));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) r._make_unique();
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -1722,22 +1741,24 @@
 self-documenting code. It does not provide any additional efficiency over
 writing out the calculation.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE sqrmod(const BOOST_XINT_INTEGER_TYPE n, const
- BOOST_XINT_INTEGER_TYPE modulus)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> sqrmod(const integer_t<BOOST_XINT_APARAMS> n,
+ const integer_t<BOOST_XINT_APARAMS> modulus)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return n;
         try {
- BOOST_XINT_INTEGER_TYPE r = sqrmod(n._data(), modulus._data());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r = sqrmod(n._data(), modulus._data());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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);
     }
 }
@@ -1765,26 +1786,27 @@
 modulus is an odd number (and if \c no_monty isn't set), which is almost always
 faster than the non-Montgomery method.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE powmod(const BOOST_XINT_INTEGER_TYPE n, const
- BOOST_XINT_INTEGER_TYPE exponent, const BOOST_XINT_INTEGER_TYPE modulus,
- bool no_monty = false)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> powmod(const integer_t<BOOST_XINT_APARAMS> n,
+ const integer_t<BOOST_XINT_APARAMS> exponent, const
+ integer_t<BOOST_XINT_APARAMS> modulus, bool no_monty = false)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan() || exponent.is_nan() || modulus.is_nan()) return
- BOOST_XINT_INTEGER_TYPE::nan();
+ detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         try {
- BOOST_XINT_INTEGER_TYPE r(powmod(n._data(), exponent._data(),
+ integer_t<BOOST_XINT_APARAMS> r(powmod(n._data(), exponent._data(),
                 modulus._data(), no_monty));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
+ r._make_unique();
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(powmod(n._data(), exponent._data(),
+ integer_t<BOOST_XINT_APARAMS> r(powmod(n._data(), exponent._data(),
             modulus._data(), no_monty));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) r._make_unique();
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -1801,23 +1823,24 @@
 
 \exception exceptions::invalid_modulus if the modulus is less than one.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE invmod(const BOOST_XINT_INTEGER_TYPE n, const
- BOOST_XINT_INTEGER_TYPE modulus)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> invmod(const integer_t<BOOST_XINT_APARAMS> n,
+ const integer_t<BOOST_XINT_APARAMS> modulus)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan() || modulus.is_nan()) return
- BOOST_XINT_INTEGER_TYPE::nan();
+ detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         try {
- BOOST_XINT_INTEGER_TYPE r(invmod(n._data(), modulus._data()));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(invmod(n._data(), modulus._data()));
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ 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);
     }
 }
@@ -1839,7 +1862,7 @@
 the operation. If it returns \c false, the function will immediately return.
 
 \returns 1 if \c n seems to be prime, 0 if it isn't, or -1 if the provided
-callback function cancelled the operation. The nothrow<true> version returns -2
+callback function cancelled the operation. The nothrow version returns -2
 instead of throwing.
 
 \exception exceptions::invalid_argument if \c n is less than 2.
@@ -1854,10 +1877,11 @@
 
 \see \ref primes
 */
-BOOST_XINT_INTEGER_TPL
-int is_prime(const BOOST_XINT_INTEGER_TYPE n, callback_t callback = no_callback)
+template<BOOST_XINT_CLASS_APARAMS>
+int is_prime(const integer_t<BOOST_XINT_APARAMS> n, callback_t callback =
+ no_callback)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return -2;
         try {
             return is_prime(n._data(), callback);
@@ -1872,16 +1896,15 @@
 
 /*! \name Comparison Operators
 
- The nothrow<true> versions of these functions return \c false instead of
- throwing.
+ The nothrow versions of these functions return \c false instead of throwing.
 
     \see compare(integer_t, integer_t, bool)
 */
 //!@{
-BOOST_XINT_INTEGER_TPL bool operator<(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS> bool operator<(const
+ integer_t<BOOST_XINT_APARAMS> n1, const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
         try {
             return operator<(n1._data(), n2._data());
@@ -1893,10 +1916,10 @@
     }
 }
 
-BOOST_XINT_INTEGER_TPL bool operator>(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS> bool operator>(const
+ integer_t<BOOST_XINT_APARAMS> n1, const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
         try {
             return operator>(n1._data(), n2._data());
@@ -1908,10 +1931,10 @@
     }
 }
 
-BOOST_XINT_INTEGER_TPL bool operator<=(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS> bool operator<=(const
+ integer_t<BOOST_XINT_APARAMS> n1, const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
         try {
             return operator<=(n1._data(), n2._data());
@@ -1923,10 +1946,10 @@
     }
 }
 
-BOOST_XINT_INTEGER_TPL bool operator>=(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS> bool operator>=(const
+ integer_t<BOOST_XINT_APARAMS> n1, const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
         try {
             return operator>=(n1._data(), n2._data());
@@ -1938,10 +1961,10 @@
     }
 }
 
-BOOST_XINT_INTEGER_TPL bool operator==(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS> bool operator==(const
+ integer_t<BOOST_XINT_APARAMS> n1, const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
         try {
             return operator==(n1._data(), n2._data());
@@ -1953,10 +1976,10 @@
     }
 }
 
-BOOST_XINT_INTEGER_TPL bool operator!=(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS> bool operator!=(const
+ integer_t<BOOST_XINT_APARAMS> n1, const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return false;
         try {
             return operator!=(n1._data(), n2._data());
@@ -1983,20 +2006,21 @@
 
 \returns The sum of the parameters.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE operator+(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> operator+(const integer_t<BOOST_XINT_APARAMS> n1,
+ const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n1.is_nan() || n2.is_nan()) return BOOST_XINT_INTEGER_TYPE::nan();
+ 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_INTEGER_TYPE r(n1._data() + n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() + n2._data());
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(n1._data() + n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() + n2._data());
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -2009,20 +2033,25 @@
 
 \returns The difference between the parameters.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE operator-(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> operator-(const integer_t<BOOST_XINT_APARAMS> n1,
+ const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n1.is_nan() || n2.is_nan()) return BOOST_XINT_INTEGER_TYPE::nan();
+ 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_INTEGER_TYPE r(n1._data() - n2._data());
+ 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&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(n1._data() - n2._data());
+ 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);
     }
 }
@@ -2039,20 +2068,21 @@
 Automatically uses the more-efficient squaring algorithm if it can trivially
 detect that the two parameters are copies of the same number.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE operator*(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> operator*(const integer_t<BOOST_XINT_APARAMS> n1,
+ const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n1.is_nan() || n2.is_nan()) return BOOST_XINT_INTEGER_TYPE::nan();
+ 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_INTEGER_TYPE r(n1._data() * n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() * n2._data());
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(n1._data() * n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() * n2._data());
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -2067,21 +2097,21 @@
 
 \exception exceptions::divide_by_zero if \c divisor is zero.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE operator/(const BOOST_XINT_INTEGER_TYPE dividend, const
- BOOST_XINT_INTEGER_TYPE divisor)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> operator/(const integer_t<BOOST_XINT_APARAMS>
+ dividend, const integer_t<BOOST_XINT_APARAMS> divisor)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (dividend.is_nan() || divisor.is_nan()) return
- BOOST_XINT_INTEGER_TYPE::nan();
+ detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         try {
- BOOST_XINT_INTEGER_TYPE r(dividend._data() / divisor._data());
+ integer_t<BOOST_XINT_APARAMS> r(dividend._data() / divisor._data());
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(dividend._data() / divisor._data());
+ integer_t<BOOST_XINT_APARAMS> r(dividend._data() / divisor._data());
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -2095,20 +2125,21 @@
 
 \returns The remainder after dividing \c n1 by \c n2.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE operator%(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> operator%(const integer_t<BOOST_XINT_APARAMS> n1,
+ const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n1.is_nan() || n2.is_nan()) return BOOST_XINT_INTEGER_TYPE::nan();
+ 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_INTEGER_TYPE r(n1._data() % n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() % n2._data());
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(n1._data() % n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() % n2._data());
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -2122,20 +2153,21 @@
 \returns A positive integer with all bits that are set in both parameters turned
 on.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE operator&(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> operator&(const integer_t<BOOST_XINT_APARAMS> n1,
+ const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n1.is_nan() || n2.is_nan()) return BOOST_XINT_INTEGER_TYPE::nan();
+ 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_INTEGER_TYPE r(n1._data() & n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() & n2._data());
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(n1._data() & n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() & n2._data());
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -2149,20 +2181,21 @@
 \returns A positive integer with all bits that are set in either parameter
 turned on.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE operator|(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> operator|(const integer_t<BOOST_XINT_APARAMS> n1,
+ const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n1.is_nan() || n2.is_nan()) return BOOST_XINT_INTEGER_TYPE::nan();
+ 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_INTEGER_TYPE r(n1._data() | n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() | n2._data());
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(n1._data() | n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() | n2._data());
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -2176,20 +2209,21 @@
 \returns A positive integer with all bits that are set in either parameter, but
 not both, turned on.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE operator^(const BOOST_XINT_INTEGER_TYPE n1, const
- BOOST_XINT_INTEGER_TYPE n2)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> operator^(const integer_t<BOOST_XINT_APARAMS> n1,
+ const integer_t<BOOST_XINT_APARAMS> n2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
- if (n1.is_nan() || n2.is_nan()) return BOOST_XINT_INTEGER_TYPE::nan();
+ 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_INTEGER_TYPE r(n1._data() ^ n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() ^ n2._data());
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r(n1._data() ^ n2._data());
+ integer_t<BOOST_XINT_APARAMS> r(n1._data() ^ n2._data());
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -2207,25 +2241,26 @@
 \returns The greatest common denominator of the two integers, which will always
 be a positive number.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE gcd(const BOOST_XINT_INTEGER_TYPE num1, const
- BOOST_XINT_INTEGER_TYPE num2)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> gcd(const integer_t<BOOST_XINT_APARAMS> num1,
+ const integer_t<BOOST_XINT_APARAMS> num2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (num1.is_nan() || num2.is_nan()) return
- BOOST_XINT_INTEGER_TYPE::nan();
+ detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         try {
- BOOST_XINT_INTEGER_TYPE r;
+ integer_t<BOOST_XINT_APARAMS> r;
             gcd(r._data(), num1._data(), num2._data());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
+ r._make_unique();
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r;
+ integer_t<BOOST_XINT_APARAMS> r;
         gcd(r._data(), num1._data(), num2._data());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) r._make_unique();
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -2240,25 +2275,26 @@
 zero, then the return value will be zero, by convention; in all other cases, the
 return value will be a positive number.
 */
-BOOST_XINT_INTEGER_TPL
-BOOST_XINT_INTEGER_TYPE lcm(const BOOST_XINT_INTEGER_TYPE num1, const
- BOOST_XINT_INTEGER_TYPE num2)
+template<BOOST_XINT_CLASS_APARAMS>
+integer_t<BOOST_XINT_APARAMS> lcm(const integer_t<BOOST_XINT_APARAMS> num1,
+ const integer_t<BOOST_XINT_APARAMS> num2)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (num1.is_nan() || num2.is_nan()) return
- BOOST_XINT_INTEGER_TYPE::nan();
+ detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         try {
- BOOST_XINT_INTEGER_TYPE r;
+ integer_t<BOOST_XINT_APARAMS> r;
             lcm(r._data(), num1._data(), num2._data());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true)
+ r._make_unique();
             return BOOST_XINT_MOVE(r);
         } catch (std::exception&) {
- return BOOST_XINT_INTEGER_TYPE::nan();
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
         }
     } else {
- BOOST_XINT_INTEGER_TYPE r;
+ integer_t<BOOST_XINT_APARAMS> r;
         lcm(r._data(), num1._data(), num2._data());
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique();
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) r._make_unique();
         return BOOST_XINT_MOVE(r);
     }
 }
@@ -2273,13 +2309,13 @@
 instead of their signed values. Used internally.
 
 \returns -1 if \c n1 < \c n2; zero if \c n1 == \c n2, or 1 if \c n1 > \c n2. The
-nothrow<true> version returns 2 instead of throwing.
+nothrow version returns 2 instead of throwing.
 */
-BOOST_XINT_INTEGER_TPL
-int compare(const BOOST_XINT_INTEGER_TYPE n1, const BOOST_XINT_INTEGER_TYPE n2,
- bool ignoresign = false)
+template<BOOST_XINT_CLASS_APARAMS>
+int compare(const integer_t<BOOST_XINT_APARAMS> n1, const
+ integer_t<BOOST_XINT_APARAMS> n2, bool ignoresign = false)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n1.is_nan() || n2.is_nan()) return 2;
         try {
             return compare(n1._data(), n2._data(), ignoresign);
@@ -2297,8 +2333,8 @@
 
 \param[in] n The %integer to operate on.
 
-\returns The %integer log<sub>2</sub> value of the integer. The nothrow<true>
-version returns zero instead of throwing.
+\returns The %integer log<sub>2</sub> value of the integer. The nothrow version
+returns zero instead of throwing.
 
 \remarks
 pow2(log2(n)-1) will give you an integer with the highest set bit of \c n,
@@ -2307,9 +2343,9 @@
 \par
 Similar to the #highestbit function.
 */
-BOOST_XINT_INTEGER_TPL
-size_t log2(const BOOST_XINT_INTEGER_TYPE n) {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+template<BOOST_XINT_CLASS_APARAMS>
+size_t log2(const integer_t<BOOST_XINT_APARAMS> n) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         if (n.is_nan()) return 0;
         try {
             return log2(n._data());
@@ -2324,29 +2360,29 @@
 
 //! Allows for comparisons between integer_t types and other integral values.
 #define BOOST_XINT_ANY_COMPARE(rtype, op) \
- template <class A0, class A1, class A2, class A3, class A4, typename N> \
- rtype op(const BOOST_XINT_INTEGER_TYPE n1, const N n2) { \
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \
+ 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 { \
- return op(n1, BOOST_XINT_INTEGER_TYPE(n2)); \
+ return op(n1, integer_t<BOOST_XINT_APARAMS>(n2)); \
             } catch (std::exception&) { \
                 return rtype(0); \
             } \
         } else { \
- return op(n1, BOOST_XINT_INTEGER_TYPE(n2)); \
+ return op(n1, integer_t<BOOST_XINT_APARAMS>(n2)); \
         } \
     } \
     \
- template <typename N, class A0, class A1, class A2, class A3, class A4> \
- rtype op(const N n1, const BOOST_XINT_INTEGER_TYPE n2) { \
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \
+ 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 { \
- return op(BOOST_XINT_INTEGER_TYPE(n1), n2); \
+ return op(integer_t<BOOST_XINT_APARAMS>(n1), n2); \
             } catch (std::exception&) { \
                 return rtype(0); \
             } \
         } else { \
- return op(BOOST_XINT_INTEGER_TYPE(n1), n2); \
+ return op(integer_t<BOOST_XINT_APARAMS>(n1), n2); \
         } \
     }
 
@@ -2360,36 +2396,56 @@
 
 //! Allows for operations between integer_t types and other integral values.
 #define BOOST_XINT_ANY_MATH(op) \
- template <class A0, class A1, class A2, class A3, class A4, typename N> \
- BOOST_XINT_INTEGER_TYPE op(const BOOST_XINT_INTEGER_TYPE n1, const N n2) { \
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \
+ template <BOOST_XINT_CLASS_APARAMS, typename N> \
+ integer_t<BOOST_XINT_APARAMS> op(const integer_t<BOOST_XINT_APARAMS> n1, \
+ const N n2) \
+ { \
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) { \
             try { \
- BOOST_XINT_INTEGER_TYPE r(op(n1, BOOST_XINT_INTEGER_TYPE(n2)));\
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \
+ integer_t<BOOST_XINT_APARAMS> r(op(n1, \
+ integer_t<BOOST_XINT_APARAMS>(n2))); \
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) \
+ r._make_unique(); \
+ if (!integer_t<BOOST_XINT_APARAMS>::Signed && \
+ r._data().negative) r._fix_negative_unsigned(); \
                 return BOOST_XINT_MOVE(r); \
             } catch (std::exception&) { \
- return BOOST_XINT_INTEGER_TYPE::nan(); \
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >(); \
             } \
         } else { \
- BOOST_XINT_INTEGER_TYPE r(op(n1, BOOST_XINT_INTEGER_TYPE(n2))); \
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \
+ integer_t<BOOST_XINT_APARAMS> r(op(n1, \
+ integer_t<BOOST_XINT_APARAMS>(n2))); \
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) \
+ r._make_unique(); \
+ if (!integer_t<BOOST_XINT_APARAMS>::Signed && r._data().negative) \
+ r._fix_negative_unsigned(); \
             return BOOST_XINT_MOVE(r); \
         } \
     } \
     \
- template <typename N, class A0, class A1, class A2, class A3, class A4> \
- BOOST_XINT_INTEGER_TYPE op(const N n1, const BOOST_XINT_INTEGER_TYPE n2) { \
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \
+ template <typename N, BOOST_XINT_CLASS_APARAMS> \
+ integer_t<BOOST_XINT_APARAMS> op(const N n1, const \
+ integer_t<BOOST_XINT_APARAMS> n2) \
+ { \
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) { \
             try { \
- BOOST_XINT_INTEGER_TYPE r(op(BOOST_XINT_INTEGER_TYPE(n1), n2));\
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \
+ integer_t<BOOST_XINT_APARAMS> \
+ r(op(integer_t<BOOST_XINT_APARAMS>(n1), n2)); \
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) \
+ r._make_unique(); \
+ if (!integer_t<BOOST_XINT_APARAMS>::Signed && \
+ r._data().negative) r._fix_negative_unsigned(); \
                 return BOOST_XINT_MOVE(r); \
             } catch (std::exception&) { \
- return BOOST_XINT_INTEGER_TYPE::nan(); \
+ return detail::get_nan<integer_t<BOOST_XINT_APARAMS> >(); \
             } \
         } else { \
- BOOST_XINT_INTEGER_TYPE r(op(BOOST_XINT_INTEGER_TYPE(n1), n2)); \
- if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \
+ integer_t<BOOST_XINT_APARAMS> \
+ r(op(integer_t<BOOST_XINT_APARAMS>(n1), n2)); \
+ if (integer_t<BOOST_XINT_APARAMS>::Threadsafe == true) \
+ r._make_unique(); \
+ if (!integer_t<BOOST_XINT_APARAMS>::Signed && r._data().negative) \
+ r._fix_negative_unsigned(); \
             return BOOST_XINT_MOVE(r); \
         } \
     }
@@ -2412,22 +2468,20 @@
 
 //! \name Stream input/output functions
 //!@{
-template <typename charT, typename traits, class A0, class A1, class A2, class
- A3, class A4> inline std::basic_ostream<charT,traits>&
- operator<<(std::basic_ostream<charT, traits>& out, const
- BOOST_XINT_INTEGER_TYPE n)
+template <typename charT, typename traits, BOOST_XINT_CLASS_APARAMS> inline
+ std::basic_ostream<charT,traits>& operator<<(std::basic_ostream<charT,
+ traits>& out, const integer_t<BOOST_XINT_APARAMS> n)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow && n.is_nan()) return operator<<(out,
- detail::nan_text<charT>());
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow && n.is_nan()) return
+ operator<<(out, detail::nan_text<charT>());
     return operator<<(out, n._data());
 }
 
-template <typename charT, typename traits, class A0, class A1, class A2, class
- A3, class A4> inline std::basic_istream<charT,traits>&
- operator>>(std::basic_istream<charT, traits>& in, BOOST_XINT_INTEGER_TYPE&
- n)
+template <typename charT, typename traits, BOOST_XINT_CLASS_APARAMS> inline
+ std::basic_istream<charT,traits>& operator>>(std::basic_istream<charT,
+ traits>& in, integer_t<BOOST_XINT_APARAMS>& n)
 {
- if (BOOST_XINT_INTEGER_TYPE::Nothrow) {
+ if (integer_t<BOOST_XINT_APARAMS>::Nothrow) {
         const std::basic_string<charT>& tnan = detail::nan_text<charT>();
         charT nextchar = charT(in.peek());
         if (nextchar == tnan[0]) {
@@ -2442,17 +2496,22 @@
             buffer.push_back(0);
 
             std::basic_string<charT> str(&buffer[0]);
- if (str == tnan) n = n.nan();
+ if (str == tnan)
+ n = detail::get_nan<integer_t<BOOST_XINT_APARAMS> >();
             else in.setstate(std::ios::failbit);
             return in;
         }
     }
- return operator>>(in, n._data());
+ operator>>(in, n._data());
+ if (!integer_t<BOOST_XINT_APARAMS>::Signed && n._data().negative)
+ n._fix_negative_unsigned();
+ return in;
 }
 //!@}
 
-BOOST_XINT_INTEGER_TPL
-inline void swap(BOOST_XINT_INTEGER_TYPE& left, BOOST_XINT_INTEGER_TYPE& right)
+template<BOOST_XINT_CLASS_APARAMS>
+inline void swap(integer_t<BOOST_XINT_APARAMS>& left,
+ integer_t<BOOST_XINT_APARAMS>& right)
 {
     left._swap(right);
 }
@@ -2468,7 +2527,7 @@
     This uses the default parameters for the integer_t template, other than the
     \c nothrow one.
 */
-typedef integer_t<options::nothrow<true> > nothrow_integer;
+typedef integer_t<options::nothrow> nothrow_integer;
 
 } // namespace xint
 } // namespace boost
@@ -2476,25 +2535,23 @@
 #ifndef BOOST_XINT_DOXYGEN_IGNORE
 namespace std {
 
-#define BOOST_XINT_INTEGER_TYPENAME boost::xint::integer_t<A0, A1, A2, A3, A4>
-
-BOOST_XINT_INTEGER_TPL
-class numeric_limits<BOOST_XINT_INTEGER_TYPENAME> {
+template<BOOST_XINT_CLASS_APARAMS>
+class numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> > {
     public:
     static const bool is_specialized;
 
- static BOOST_XINT_INTEGER_TYPENAME min BOOST_PREVENT_MACRO_SUBSTITUTION()
- throw()
+ static boost::xint::integer_t<BOOST_XINT_APARAMS> min
+ BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
     {
- if (BOOST_XINT_INTEGER_TYPENAME::Bits)
- return -~(BOOST_XINT_INTEGER_TYPENAME());
+ if (boost::xint::integer_t<BOOST_XINT_APARAMS>::Bits)
+ return -~(boost::xint::integer_t<BOOST_XINT_APARAMS>());
         else return 0;
     }
- static BOOST_XINT_INTEGER_TYPENAME max BOOST_PREVENT_MACRO_SUBSTITUTION()
- throw()
+ static boost::xint::integer_t<BOOST_XINT_APARAMS> max
+ BOOST_PREVENT_MACRO_SUBSTITUTION() throw()
     {
- if (BOOST_XINT_INTEGER_TYPENAME::Bits)
- return ~(BOOST_XINT_INTEGER_TYPENAME());
+ if (boost::xint::integer_t<BOOST_XINT_APARAMS>::Bits)
+ return ~(boost::xint::integer_t<BOOST_XINT_APARAMS>());
         else return 0;
     }
 
@@ -2504,8 +2561,10 @@
     static const bool is_integer;
     static const bool is_exact;
     static const int radix;
- static BOOST_XINT_INTEGER_TYPENAME epsilon() throw() { return 0; }
- static BOOST_XINT_INTEGER_TYPENAME round_error() throw() { return 0; }
+ static boost::xint::integer_t<BOOST_XINT_APARAMS> epsilon() throw() { return
+ 0; }
+ static boost::xint::integer_t<BOOST_XINT_APARAMS> round_error() throw() {
+ return 0; }
 
     static const int min_exponent; // N/A
     static const int min_exponent10; // N/A
@@ -2518,14 +2577,17 @@
     static const float_denorm_style has_denorm; // N/A
     static const bool has_denorm_loss; // N/A
 
- static BOOST_XINT_INTEGER_TYPENAME infinity() throw() { return 0; } // N/A
- static BOOST_XINT_INTEGER_TYPENAME quiet_NaN() throw() {
- if (BOOST_XINT_INTEGER_TYPENAME::Nothrow)
- return BOOST_XINT_INTEGER_TYPENAME::nan();
+ static boost::xint::integer_t<BOOST_XINT_APARAMS> infinity() throw() {
+ return 0; } // N/A
+ static boost::xint::integer_t<BOOST_XINT_APARAMS> quiet_NaN() throw() {
+ if (boost::xint::integer_t<BOOST_XINT_APARAMS>::Nothrow) return boost::
+ xint::detail::get_nan<boost::xint::integer_t<BOOST_XINT_APARAMS> >();
         else return 0;
     }
- static BOOST_XINT_INTEGER_TYPENAME signaling_NaN() throw() { return 0; } // N/A
- static BOOST_XINT_INTEGER_TYPENAME denorm_min() throw() { return 0; } // N/A
+ static boost::xint::integer_t<BOOST_XINT_APARAMS> signaling_NaN() throw() {
+ return 0; } // N/A
+ static boost::xint::integer_t<BOOST_XINT_APARAMS> denorm_min() throw() {
+ return 0; } // N/A
 
     static const bool is_iec559; // N/A
     static const bool is_bounded;
@@ -2536,81 +2598,98 @@
     static const float_round_style round_style; // N/A
 };
 
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_specialized = true;
-
-BOOST_XINT_INTEGER_TPL
-const int numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::digits =
- static_cast<int>(BOOST_XINT_INTEGER_TYPENAME::Bits);
-
-BOOST_XINT_INTEGER_TPL
-const int numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::digits10 =
- static_cast<int>(boost::xint::detail::log10_bits(
- BOOST_XINT_INTEGER_TYPENAME::Bits));
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_signed = true;
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_integer = true;
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_exact = true;
-
-BOOST_XINT_INTEGER_TPL
-const int numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::radix = 2;
-
-BOOST_XINT_INTEGER_TPL
-const int numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::min_exponent = 0;
-
-BOOST_XINT_INTEGER_TPL
-const int numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::min_exponent10 = 0;
-
-BOOST_XINT_INTEGER_TPL
-const int numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::max_exponent = 0;
-
-BOOST_XINT_INTEGER_TPL
-const int numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::max_exponent10 = 0;
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_infinity = false;
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_quiet_NaN =
- (BOOST_XINT_INTEGER_TYPENAME::Nothrow ? true : false);
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_signaling_NaN =
- false;
-
-BOOST_XINT_INTEGER_TPL
-const float_denorm_style numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_denorm
- = denorm_absent;
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::has_denorm_loss = false;
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_iec559 = false;
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_bounded =
- (BOOST_XINT_INTEGER_TYPENAME::Bits == 0 ? false : true);
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::is_modulo =
- (BOOST_XINT_INTEGER_TYPENAME::Bits == 0 ? false : true);
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::traps =
- (BOOST_XINT_INTEGER_TYPENAME::Nothrow ? false : true);
-
-BOOST_XINT_INTEGER_TPL
-const bool numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::tinyness_before = false;
-
-BOOST_XINT_INTEGER_TPL
-const float_round_style numeric_limits<BOOST_XINT_INTEGER_TYPENAME>::round_style
- = round_indeterminate;
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ is_specialized = true;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const int numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::digits =
+ static_cast<int>(boost::xint::integer_t<BOOST_XINT_APARAMS>::Bits);
+
+template<BOOST_XINT_CLASS_APARAMS>
+const int numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::digits10
+ = static_cast<int>(boost::xint::detail::log10_bits(
+ boost::xint::integer_t<BOOST_XINT_APARAMS>::Bits));
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ is_signed = (boost::xint::integer_t<BOOST_XINT_APARAMS>::Signed ? true :
+ false);
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ is_integer = true;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::is_exact
+ = true;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const int numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::radix =
+ 2;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const int numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ min_exponent = 0;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const int numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ min_exponent10 = 0;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const int numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ max_exponent = 0;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const int numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ max_exponent10 = 0;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ has_infinity = false;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ has_quiet_NaN = (boost::xint::integer_t<BOOST_XINT_APARAMS>::Nothrow ? true
+ : false);
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ has_signaling_NaN = false;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const float_denorm_style numeric_limits<boost::xint::integer_t<
+ BOOST_XINT_APARAMS> >::has_denorm = denorm_absent;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ has_denorm_loss = false;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ is_iec559 = false;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ is_bounded = (boost::xint::integer_t<BOOST_XINT_APARAMS>::Bits == 0 ? false
+ : true);
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ is_modulo = (boost::xint::integer_t<BOOST_XINT_APARAMS>::Bits == 0 ? false :
+ true);
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::traps =
+ (boost::xint::integer_t<BOOST_XINT_APARAMS>::Nothrow ? false : true);
+
+template<BOOST_XINT_CLASS_APARAMS>
+const bool numeric_limits<boost::xint::integer_t<BOOST_XINT_APARAMS> >::
+ tinyness_before = false;
+
+template<BOOST_XINT_CLASS_APARAMS>
+const float_round_style numeric_limits<boost::xint::integer_t<
+ BOOST_XINT_APARAMS> >::round_style = round_indeterminate;
 
 } // namespace std
 #endif // BOOST_XINT_DOXYGEN_IGNORE

Modified: sandbox/xint/dev/XInt.workspace
==============================================================================
--- sandbox/xint/dev/XInt.workspace (original)
+++ sandbox/xint/dev/XInt.workspace 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -19,7 +19,7 @@
       <Project Name="Example-Fibonacci" ConfigName="Debug"/>
       <Project Name="Example-GenPrime" ConfigName="Debug"/>
     </WorkspaceConfiguration>
- <WorkspaceConfiguration Name="Release" Selected="yes">
+ <WorkspaceConfiguration Name="Release" Selected="no">
       <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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -79,7 +79,7 @@
 <a name="l00061"></a>00061
 <a name="l00062"></a>00062 BOOST_XINT_RAWINT_TPL
 <a name="l00063"></a>00063 <span class="keywordtype">void</span> sub_subtract(BOOST_XINT_RAWINT&amp; n, <span class="keyword">const</span> BOOST_XINT_RAWINT n2) {
-<a name="l00064"></a>00064 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a> = (<a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(n, n2, <span class="keyword">true</span>) &lt; 0);
+<a name="l00064"></a>00064 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a> = (<a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(n, n2, <span class="keyword">true</span>) &lt; 0);
 <a name="l00065"></a>00065
 <a name="l00066"></a>00066 digit_t *ndig = n.digits((std::max)(n.length, n2.length), realloc::extend),
 <a name="l00067"></a>00067 *t = ndig, *te = t + n.length;
@@ -217,7 +217,7 @@
 <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#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
+<a name="l00202"></a>00202 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da" title="Calculate the sum of two integers.">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 r(n1);
@@ -226,7 +226,7 @@
 <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#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">operator-</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
+<a name="l00211"></a>00211 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#ab6132105fbe7d7bf7a756b868b6a372e" title="Calculate the difference between two integers.">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 r(n1);
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -91,21 +91,21 @@
 <a name="l00073"></a>00073 }
 <a name="l00074"></a>00074
 <a name="l00075"></a>00075 BOOST_XINT_RAWINT_TPL
-<a name="l00076"></a>00076 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3" title="Combine two integers using a bitwise AND operation.">operator&amp;</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
+<a name="l00076"></a>00076 BOOST_XINT_RAWINT <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> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
 <a name="l00077"></a>00077 n2)
 <a name="l00078"></a>00078 {
 <a name="l00079"></a>00079 <span class="keywordflow">return</span> BOOST_XINT_RAWINT(n1) &amp;= n2;
 <a name="l00080"></a>00080 }
 <a name="l00081"></a>00081
 <a name="l00082"></a>00082 BOOST_XINT_RAWINT_TPL
-<a name="l00083"></a>00083 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075" title="Combine two integers using a bitwise OR operation.">operator|</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
+<a name="l00083"></a>00083 BOOST_XINT_RAWINT <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> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
 <a name="l00084"></a>00084 n2)
 <a name="l00085"></a>00085 {
 <a name="l00086"></a>00086 <span class="keywordflow">return</span> BOOST_XINT_RAWINT(n1) |= n2;
 <a name="l00087"></a>00087 }
 <a name="l00088"></a>00088
 <a name="l00089"></a>00089 BOOST_XINT_RAWINT_TPL
-<a name="l00090"></a>00090 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025" title="Combine two integers using a bitwise XOR operation.">operator^</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
+<a name="l00090"></a>00090 BOOST_XINT_RAWINT <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> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
 <a name="l00091"></a>00091 n2)
 <a name="l00092"></a>00092 {
 <a name="l00093"></a>00093 <span class="keywordflow">return</span> BOOST_XINT_RAWINT(n1) ^= n2;
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li class="current">Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -40,18 +39,21 @@
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">boost::xint::exceptions::overflow_error</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a></td><td class="indexvalue">The <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> class template </td></tr>
- <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength.html">boost::xint::options::fixedlength&lt; Bits &gt;</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">boost::xint::options::fixedlength_base</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">boost::xint::options::nothrow&lt; Value &gt;</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">boost::xint::options::nothrow_base</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1secure.html">boost::xint::options::secure&lt; Value &gt;</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">boost::xint::options::secure_base</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe.html">boost::xint::options::threadsafe&lt; Value &gt;</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">boost::xint::options::threadsafe_base</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1copy__on__write.html">boost::xint::options::copy_on_write</a></td><td class="indexvalue">Allows faster operations, at a price </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength.html">boost::xint::options::fixedlength&lt; Bits &gt;</a></td><td class="indexvalue">Make fixed-length integers </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__absolute.html">boost::xint::options::negative_absolute</a></td><td class="indexvalue">Creates an integer type that forces any negative number to its absolute value </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__allowed.html">boost::xint::options::negative_allowed</a></td><td class="indexvalue">Creates a signed integer type </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__exception.html">boost::xint::options::negative_exception</a></td><td class="indexvalue">Creates an integer type that considers unsigned values invalid </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__modulus.html">boost::xint::options::negative_modulus</a></td><td class="indexvalue">Make a fixedlength integer wrap like a built-in unsigned type </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__not__allowed.html">boost::xint::options::negative_not_allowed</a></td><td class="indexvalue">Creates an unsigned integer with the most common negative-value handling </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__zero.html">boost::xint::options::negative_zero</a></td><td class="indexvalue">Creates an integer type that forces any negative number to zero </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">boost::xint::options::nothrow</a></td><td class="indexvalue">Disables exceptions from the library </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1secure.html">boost::xint::options::secure</a></td><td class="indexvalue">Zeros memory before deallocating </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe.html">boost::xint::options::threadsafe</a></td><td class="indexvalue">Ensures that the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> objects can be safely used by multiple threads </td></tr>
   <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -89,7 +89,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00060">60</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#l00065">65</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -109,7 +109,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00061">61</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#l00066">66</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -134,7 +134,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00064">64</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#l00069">69</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -154,7 +154,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00063">63</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#l00068">68</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -174,12 +174,12 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00062">62</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#l00067">67</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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -46,128 +46,133 @@
 <a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;windows.h&gt;</span>
 <a name="l00028"></a>00028 <span class="preprocessor">#endif</span>
 <a name="l00029"></a>00029 <span class="preprocessor"></span>
-<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;string&gt;</span>
-<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;vector&gt;</span>
-<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;queue&gt;</span>
-<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;limits&gt;</span>
-<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;cstddef&gt;</span> <span class="comment">// for std::size_t</span>
-<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;cassert&gt;</span>
-<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;sstream&gt;</span>
-<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;fstream&gt;</span>
-<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;ctime&gt;</span>
-<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;boost/integer.hpp&gt;</span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;boost/function.hpp&gt;</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;boost/parameter.hpp&gt;</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;boost/type_traits.hpp&gt;</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;boost/scoped_array.hpp&gt;</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;boost/static_assert.hpp&gt;</span>
-<a name="l00046"></a>00046
-<a name="l00047"></a>00047 <span class="comment">// Uncomment this to use Boost.Move, which can improve the speed when using</span>
-<a name="l00048"></a>00048 <span class="comment">// extremely large numbers.</span>
-<a name="l00049"></a>00049 <span class="comment">//#define BOOST_XINT_USE_MOVE</span>
+<a name="l00030"></a>00030 <span class="preprocessor">#ifndef BOOST_PARAMETER_MAX_ARITY</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define BOOST_PARAMETER_MAX_ARITY 6</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00033"></a>00033 <span class="preprocessor"></span>
+<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;string&gt;</span>
+<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;vector&gt;</span>
+<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;queue&gt;</span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;limits&gt;</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;cstddef&gt;</span> <span class="comment">// for std::size_t</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;cassert&gt;</span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;sstream&gt;</span>
+<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;fstream&gt;</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;ctime&gt;</span>
+<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;boost/integer.hpp&gt;</span>
+<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;boost/cstdint.hpp&gt;</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;boost/function.hpp&gt;</span>
+<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;boost/parameter.hpp&gt;</span>
+<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;boost/type_traits.hpp&gt;</span>
+<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;boost/scoped_array.hpp&gt;</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;boost/static_assert.hpp&gt;</span>
 <a name="l00050"></a>00050
-<a name="l00051"></a>00051 <span class="preprocessor">#ifdef BOOST_XINT_USE_MOVE</span>
-<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;boost/move/move.hpp&gt;</span>
-<a name="l00053"></a>00053 <span class="preprocessor"> #define BOOST_XINT_COPY_ASSIGN_REF(type) BOOST_COPY_ASSIGN_REF(type)</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_COPYABLE_AND_MOVABLE(type) BOOST_COPYABLE_AND_MOVABLE(type)</span>
-<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_RV_REF(type) BOOST_RV_REF(type)</span>
-<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_MOVE(value) boost::move(value)</span>
-<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_FORWARD(type, value) boost::forward&lt;type&gt;(value)</span>
-<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00059"></a><a class="code" href="classdisable__boost__rv__ref.html">00059</a> <span class="preprocessor"></span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">class </span><a class="code" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref</a>: <span class="keyword">public</span> T { };
-<a name="l00060"></a><a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">00060</a> <span class="preprocessor"> #define BOOST_XINT_COPY_ASSIGN_REF(type) const type&amp;</span>
-<a name="l00061"></a><a class="code" href="basic__types__and__includes_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">00061</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_COPYABLE_AND_MOVABLE(type)</span>
-<a name="l00062"></a><a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">00062</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_RV_REF(type) disable_boost_rv_ref&lt;type&gt;</span>
-<a name="l00063"></a><a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">00063</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_MOVE(value) value</span>
-<a name="l00064"></a><a class="code" href="basic__types__and__includes_8hpp.html#ad30e9ec163d1981dfee69c97d09ffd28">00064</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_FORWARD(type, value) value</span>
-<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00066"></a>00066 <span class="preprocessor"></span>
-<a name="l00067"></a><a class="code" href="namespaceboost.html">00067</a> <span class="keyword">namespace </span>boost {
-<a name="l00068"></a><a class="code" href="namespaceboost_1_1xint.html">00068</a> <span class="keyword">namespace </span>xint {
-<a name="l00069"></a>00069
-<a name="l00071"></a><a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">00071</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="l00072"></a>00072
-<a name="l00074"></a><a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">00074</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="l00075"></a>00075
-<a name="l00077"></a><a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">00077</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="l00078"></a>00078
-<a name="l00081"></a><a class="code" href="namespaceboost_1_1xint.html#a6e2c55f95b91dfcb7586599faca34cb2">00081</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="l00082"></a>00082
-<a name="l00084"></a><a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">00084</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="l00085"></a>00085
-<a name="l00087"></a>00087 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;
-<a name="l00088"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html">00088</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a> {
-<a name="l00089"></a>00089 <span class="keyword">public</span>:
-<a name="l00090"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">00090</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>() { }
-<a name="l00091"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">00091</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a1b7962768058ad19d8d3e848b1fc019e">base_divide_t</a>(<span class="keyword">const</span> T&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="l00092"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa9f43e464f328b0cc618f67e6e4d1d6f">00092</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a78e4dd66f424388d1db839ef53e25997">base_divide_t</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t&lt;T&gt;</a>&amp; copy):
-<a name="l00093"></a>00093 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>), <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>(copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>) { }
-<a name="l00094"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">00094</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aaa2df86aa70e8ac849cd6289a1f459b1">base_divide_t</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>) move) {
-<a name="l00095"></a>00095 <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>); <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>._swap(move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>); }
-<a name="l00096"></a>00096
-<a name="l00097"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">00097</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>&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="l00098"></a>00098 { <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>; <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a> = copy.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00099"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">00099</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>&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="l00100"></a>00100 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
-<a name="l00101"></a>00101 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>, move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>);
-<a name="l00102"></a>00102 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>, move.<a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>);
-<a name="l00103"></a>00103 <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00104"></a>00104
-<a name="l00105"></a><a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">00105</a> T <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#a7b3f254223974ed79663f9a0e4d1649c">quotient</a>, <a class="code" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">remainder</a>;
-<a name="l00106"></a>00106
-<a name="l00107"></a>00107 <span class="keyword">private</span>:
-<a name="l00108"></a>00108 <a class="code" href="basic__types__and__includes_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">BOOST_XINT_COPYABLE_AND_MOVABLE</a>(<a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t</a>)
-<a name="l00109"></a>00109 };
-<a name="l00110"></a>00110
-<a name="l00111"></a><a class="code" href="namespaceboost_1_1xint_1_1detail.html">00111</a> <span class="keyword">namespace </span>detail {
-<a name="l00113"></a>00113
-<a name="l00119"></a>00119 <span class="keyword">typedef</span> boost::uintmax_t doubledigit_t;
-<a name="l00120"></a>00120
-<a name="l00126"></a>00126 <span class="keyword">typedef</span> boost::uint_t&lt;std::numeric_limits&lt;doubledigit_t&gt;::digits / 2&gt;::fast
-<a name="l00127"></a>00127 digit_t;
-<a name="l00128"></a>00128
-<a name="l00131"></a>00131 <span class="keyword">const</span> std::size_t minimum_digits = 1;
-<a name="l00132"></a>00132 <span class="keyword">const</span> std::size_t bits_per_digit =
-<a name="l00133"></a>00133 std::numeric_limits&lt;digit_t&gt;::digits;
-<a name="l00134"></a>00134 <span class="keyword">const</span> std::size_t digits_in_uintmax =
-<a name="l00135"></a>00135 (std::numeric_limits&lt;boost::uintmax_t&gt;::digits + bits_per_digit - 1) /
-<a name="l00136"></a>00136 bits_per_digit;
-<a name="l00137"></a>00137 <span class="keyword">const</span> digit_t digit_hibit = (digit_t(1) &lt;&lt; (bits_per_digit-1));
-<a name="l00138"></a>00138 <span class="keyword">const</span> doubledigit_t doubledigit_hibit = (doubledigit_t(1) &lt;&lt; (bits_per_digit*2-1));
-<a name="l00139"></a>00139 <span class="keyword">const</span> doubledigit_t digit_overflowbit = (doubledigit_t(1) &lt;&lt; bits_per_digit);
-<a name="l00140"></a>00140 <span class="keyword">const</span> digit_t digit_mask = digit_t(digit_overflowbit-1);
-<a name="l00142"></a>00142
-<a name="l00144"></a>00144
-<a name="l00147"></a>00147 <span class="keyword">struct </span>magnitude_t {
-<a name="l00148"></a>00148 <span class="keyword">private</span>:
-<a name="l00149"></a>00149 std::size_t copy_count;
-<a name="l00150"></a>00150
-<a name="l00151"></a>00151 <span class="keyword">public</span>:
-<a name="l00152"></a>00152 <span class="keyword">const</span> <span class="keywordtype">bool</span> readonly;
-<a name="l00153"></a>00153 <span class="keyword">const</span> std::size_t max_length;
-<a name="l00154"></a>00154 digit_t digits[minimum_digits]; <span class="comment">// Must be last data item, see &quot;struct hack&quot;</span>
+<a name="l00051"></a>00051 <span class="comment">// Uncomment this to use Boost.Move, which can improve the speed when using</span>
+<a name="l00052"></a>00052 <span class="comment">// extremely large numbers. Note that using options::copy_on_write gives a much</span>
+<a name="l00053"></a>00053 <span class="comment">// more noticeable speed improvement.</span>
+<a name="l00054"></a>00054 <span class="comment">//#define BOOST_XINT_USE_MOVE</span>
+<a name="l00055"></a>00055
+<a name="l00056"></a>00056 <span class="preprocessor">#ifdef BOOST_XINT_USE_MOVE</span>
+<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor"> #include &lt;boost/move/move.hpp&gt;</span>
+<a name="l00058"></a>00058 <span class="preprocessor"> #define BOOST_XINT_COPY_ASSIGN_REF(type) BOOST_COPY_ASSIGN_REF(type)</span>
+<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_COPYABLE_AND_MOVABLE(type) BOOST_COPYABLE_AND_MOVABLE(type)</span>
+<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_RV_REF(type) BOOST_RV_REF(type)</span>
+<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_MOVE(value) boost::move(value)</span>
+<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_FORWARD(type, value) boost::forward&lt;type&gt;(value)</span>
+<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00064"></a><a class="code" href="classdisable__boost__rv__ref.html">00064</a> <span class="preprocessor"></span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt; <span class="keyword">class </span><a class="code" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref</a>: <span class="keyword">public</span> T { };
+<a name="l00065"></a><a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">00065</a> <span class="preprocessor"> #define BOOST_XINT_COPY_ASSIGN_REF(type) const type&amp;</span>
+<a name="l00066"></a><a class="code" href="basic__types__and__includes_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">00066</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_COPYABLE_AND_MOVABLE(type)</span>
+<a name="l00067"></a><a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">00067</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_RV_REF(type) disable_boost_rv_ref&lt;type&gt;</span>
+<a name="l00068"></a><a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">00068</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_MOVE(value) value</span>
+<a name="l00069"></a><a class="code" href="basic__types__and__includes_8hpp.html#ad30e9ec163d1981dfee69c97d09ffd28">00069</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_FORWARD(type, value) value</span>
+<a name="l00070"></a>00070 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00071"></a>00071 <span class="preprocessor"></span>
+<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="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="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="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 magnitude_t(std::size_t max_len = minimum_digits, <span class="keywordtype">bool</span> ro = <span class="keyword">false</span>):
-<a name="l00157"></a>00157 copy_count(0), readonly(ro), max_length(max_len) { }
-<a name="l00158"></a>00158 magnitude_t(std::size_t max_len, <span class="keywordtype">bool</span> ro, digit_t init): copy_count(0),
-<a name="l00159"></a>00159 readonly(ro), max_length(max_len) { digits[0] = init; }
-<a name="l00160"></a>00160 std::size_t copies()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> copy_count; }
-<a name="l00161"></a>00161
-<a name="l00162"></a>00162 <span class="keywordtype">void</span> inc() { ++copy_count; }
-<a name="l00163"></a>00163 <span class="keywordtype">bool</span> dec() { <span class="keywordflow">return</span> (--copy_count == 0); }
-<a name="l00164"></a>00164 };
-<a name="l00165"></a>00165
-<a name="l00166"></a>00166 <span class="keyword">inline</span> std::size_t bits_to_digits(std::size_t bits) { <span class="keywordflow">return</span> (bits +
-<a name="l00167"></a>00167 bits_per_digit - 1) / bits_per_digit; }
-<a name="l00168"></a>00168
-<a name="l00170"></a>00170 } <span class="comment">// namespace detail</span>
-<a name="l00171"></a>00171 } <span class="comment">// namespace xint</span>
-<a name="l00172"></a>00172 } <span class="comment">// namespace boost</span>
+<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="l00174"></a>00174 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BASIC_TYPES_HPP</span>
+<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>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -44,7 +44,7 @@
 <a name="l00026"></a>00026 <span class="keyword">namespace </span>detail {
 <a name="l00027"></a>00027
 <a name="l00028"></a>00028 BOOST_XINT_RAWINT_TPL
-<a name="l00029"></a>00029 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, std::size_t bit_index) {
+<a name="l00029"></a>00029 <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> BOOST_XINT_RAWINT n, std::size_t bit_index) {
 <a name="l00030"></a>00030 std::size_t index = bit_index / bits_per_digit;
 <a name="l00031"></a>00031 <span class="keywordflow">if</span> (index &lt; n.length) {
 <a name="l00032"></a>00032 digit_t mask = (digit_t(1) &lt;&lt; (bit_index % bits_per_digit));
@@ -53,7 +53,7 @@
 <a name="l00035"></a>00035 }
 <a name="l00036"></a>00036
 <a name="l00037"></a>00037 BOOST_XINT_RAWINT_TPL
-<a name="l00038"></a>00038 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(BOOST_XINT_RAWINT&amp; n, std::size_t bit_index) {
+<a name="l00038"></a>00038 <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>(BOOST_XINT_RAWINT&amp; n, std::size_t bit_index) {
 <a name="l00039"></a>00039 <span class="keywordflow">if</span> (Bits != 0 &amp;&amp; bit_index &gt;= (n.max_length() * bits_per_digit)) <span class="keywordflow">return</span>;
 <a name="l00040"></a>00040 std::size_t index = (bit_index / bits_per_digit);
 <a name="l00041"></a>00041 digit_t mask = (digit_t(1) &lt;&lt; (bit_index % bits_per_digit));
@@ -63,7 +63,7 @@
 <a name="l00045"></a>00045 }
 <a name="l00046"></a>00046
 <a name="l00047"></a>00047 BOOST_XINT_RAWINT_TPL
-<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(BOOST_XINT_RAWINT&amp; n, std::size_t bit_index) {
+<a name="l00048"></a>00048 <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>(BOOST_XINT_RAWINT&amp; n, std::size_t bit_index) {
 <a name="l00049"></a>00049 std::size_t index = (bit_index / bits_per_digit);
 <a name="l00050"></a>00050 <span class="keywordflow">if</span> (index &gt;= n.length) <span class="keywordflow">return</span>; <span class="comment">// Bit can&#39;t be set, no need to clear it.</span>
 <a name="l00051"></a>00051 digit_t mask = (digit_t(1) &lt;&lt; (bit_index % bits_per_digit));
@@ -72,7 +72,7 @@
 <a name="l00054"></a>00054 }
 <a name="l00055"></a>00055
 <a name="l00056"></a>00056 BOOST_XINT_RAWINT_TPL
-<a name="l00057"></a>00057 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, std::size_t valueIfZero) {
+<a name="l00057"></a>00057 <span class="keywordtype">size_t</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>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, std::size_t valueIfZero) {
 <a name="l00058"></a>00058 <span class="keywordflow">if</span> (n.is_zero()) <span class="keywordflow">return</span> valueIfZero;
 <a name="l00059"></a>00059
 <a name="l00060"></a>00060 <span class="keyword">const</span> digit_t *d = n.digits(), *p = d, *pe = p + n.length;
@@ -86,9 +86,9 @@
 <a name="l00068"></a>00068 }
 <a name="l00069"></a>00069
 <a name="l00070"></a>00070 BOOST_XINT_RAWINT_TPL
-<a name="l00071"></a>00071 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, std::size_t valueIfZero) {
+<a name="l00071"></a>00071 <span class="keywordtype">size_t</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>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, std::size_t valueIfZero) {
 <a name="l00072"></a>00072 <span class="keywordflow">if</span> (n.is_zero()) <span class="keywordflow">return</span> valueIfZero;
-<a name="l00073"></a>00073 <span class="keywordflow">return</span> ((n.length - 1) * bits_per_digit) + <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(n[n.length - 1]);
+<a name="l00073"></a>00073 <span class="keywordflow">return</span> ((n.length - 1) * bits_per_digit) + <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n[n.length - 1]);
 <a name="l00074"></a>00074 }
 <a name="l00075"></a>00075
 <a name="l00076"></a>00076 BOOST_XINT_RAWINT_TPL
@@ -114,7 +114,7 @@
 <a name="l00097"></a>00097 <span class="comment"></span>
 <a name="l00098"></a>00098 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_BITFUNCTIONS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -36,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -51,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#l00088">88</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#l00093">93</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">
@@ -70,7 +69,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00090">90</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<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>
@@ -101,7 +100,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00091">91</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00096">96</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -123,7 +122,7 @@
 </div>
 <div class="memdoc">
 
-<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>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00097">97</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -145,7 +144,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00094">94</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
+<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00099">99</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -168,7 +167,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#l00104">104</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -190,7 +189,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#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>
@@ -208,7 +207,7 @@
 </div>
 <div class="memdoc">
 
-<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>
+<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>
 
 </div>
 </div>
@@ -225,7 +224,7 @@
 </div>
 <div class="memdoc">
 
-<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>
+<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>
 
 </div>
 </div>
@@ -233,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -42,9 +41,9 @@
 <p>This is nothing more than a very thin shell around one of the faster pseudo-random number generators provided by Boost.Random.</p>
 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="random.html">The XInt Random Number System</a> </dd>
 <dd>
-<a class="el" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2">integer_t::random_by_size</a> </dd>
+<a class="el" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683">integer_t::random_by_size</a> </dd>
 <dd>
-<a class="el" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02">integer_t::random_prime</a> </dd></dl>
+<a class="el" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947">integer_t::random_prime</a> </dd></dl>
 
 <p>Definition at line <a class="el" href="random_8hpp_source.html#l00086">86</a> of file <a class="el" href="random_8hpp_source.html">random.hpp</a>.</p>
 <hr/><h2>Constructor &amp; Destructor Documentation</h2>
@@ -71,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -66,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -66,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -66,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,18 +20,17 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
 </div>
 <div class="contents">
 <h1>boost::xint::integer_t&lt;&gt; Member List</h1>This is the complete list of members for <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a>, including all inherited members.<table>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a1c701a8337c775e18c26759d55398b58">divide_t</a> typedef</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a></td><td></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7bc8e4868073626d1ea0dc7e9668f6e0">factorial</a>(std::size_t n)</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#ade3856e01013fca6b126ad4336e2baa1">divide_t</a> typedef</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a></td><td></td></tr>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65">factorial</a>(std::size_t n)</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#a6575f1fd58be6bf73145459b4b46afbb">hex_digits</a>() 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>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb">integer_t</a>()</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a></td><td><code> [inline]</code></td></tr>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a6735b1926fb31c09537fb8f2bcc243ef">integer_t</a>(const integer_t &amp;b, bool force_thread_safety=false)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7065aa7ea6447a0b12f2ba48e96fe041">integer_t</a>(const integer_t&lt; ... &gt; &amp;b, bool force_thread_safety=false)</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>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">integer_t</a>(BOOST_XINT_RV_REF(type) b)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a5de9d56709084eaadff6ab850540a49a">integer_t</a>(const charT *str, std::size_t base=10)</td><td><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a></td><td><code> [inline, explicit]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ae8664e360188ac17e750a6b82ed99c02">integer_t</a>(const charT *str, const charT *&amp;endptr, std::size_t base=10)</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>
@@ -42,37 +41,38 @@
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#af7d57cc73521c4d72bc853435127b790">is_even</a>() 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>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5">is_nan</a>() 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>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a28c1cf2549da47e36ada1e3a2a020654">is_odd</a>() 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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1">nan</a>()</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#ac2e125b88a17f8c4e4c0b760ee1e9962">nan</a>()</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#abe691a26ef01695197d98d01822ea764">operator safe_bool_type</a>() 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>
   <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">operator!</a>() 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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">operator%=</a>(const integer_t b)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">operator&amp;=</a>(const integer_t n)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">operator*=</a>(const integer_t b)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">operator+</a>()</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a9c772faa5bee3403bed32e1d7c44f51b">operator+</a>() 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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">operator++</a>()</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a86ddf2ee74e7716528baa9a0b7e18449">operator++</a>(int)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">operator+=</a>(const integer_t b)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2">operator-</a>() 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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">operator--</a>()</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#adab9f000397bd8856f6b73b45e6682c3">operator--</a>(int)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">operator-=</a>(const integer_t b)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">operator/=</a>(const integer_t b)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005">operator&lt;&lt;</a>(bitsize_t shift) 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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">operator&lt;&lt;=</a>(bitsize_t shift)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">operator=</a>(BOOST_XINT_COPY_ASSIGN_REF(type) c)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ae8aaa078191d16525cfb8c97d9f5f401">operator=</a>(BOOST_XINT_RV_REF(type) c)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7798d6022dd3478a10b35b094347c95f">operator=</a>(const Type n)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8">operator&gt;&gt;</a>(bitsize_t shift) 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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">operator&gt;&gt;=</a>(bitsize_t shift)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">operator^=</a>(const integer_t n)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">operator|=</a>(const integer_t n)</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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1">operator~</a>() 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>
- <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a5d14ff656a3464ecf2e81d490f1acb76">pow2</a>(std::size_t exponent)</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#a8826eb41c3e4ca9b6b4ec81ff61d9ba2">random_by_size</a>(Type &amp;gen, bitsize_t size_in_bits, bool high_bit_on=false, bool low_bit_on=false, bool can_be_negative=false)</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#adbbd33c6281a946db3608140bba62f02">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#a2144da90955b26120f5cfc724a24b8fc">operator%=</a>(const integer_t&lt; ... &gt; b)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a61e627aa932085a4bd0f7df6686f0425">operator&amp;=</a>(const integer_t&lt; ... &gt; n)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a8a3e75f529dcaaff153f2c5623b49cc8">operator*=</a>(const integer_t&lt; ... &gt; b)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a6c76aafd3555337a904e8eb4d22fdd92">operator+</a>()</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#aca07c09238db36a0841c9ddb8f536571">operator+</a>() 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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a181f8d37a64f300f92e860391b024d47">operator++</a>()</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a2dc87b835492b973dca74dc886e2e274">operator++</a>(int)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#ad4428b8fa904a3147ffc3467aa624836">operator+=</a>(const integer_t&lt; ... &gt; b)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#aae82da97e52646d4fe5dbc08ddd60d3f">operator-</a>() 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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a56da9c00309b56a53b267ef477e80634">operator--</a>()</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a2ac13b5bdaec8cd84848213f17bf7d7c">operator--</a>(int)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a9042675d3fa1c93447b0005d426cfa86">operator-=</a>(const integer_t&lt; ... &gt; b)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a4bf7befde3cb5eff8e6e84b290c0ce50">operator/=</a>(const integer_t&lt; ... &gt; b)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a4ad69f2d49b7a5ca73181b168639ed49">operator&lt;&lt;</a>(bitsize_t shift) 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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a1cb134ca3fdad8c6a73a1a23b6291f9d">operator&lt;&lt;=</a>(bitsize_t shift)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9">operator=</a>(BOOST_XINT_COPY_ASSIGN_REF(type) c)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a814624f6d9c27ec161e9c62f4536744c">operator=</a>(BOOST_XINT_RV_REF(type) c)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a3d53ce69522ec4ce4b109e7c7daab6cd">operator=</a>(const Type n)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a8e43feeaa7f1050942fb68d10d65bc62">operator&gt;&gt;</a>(bitsize_t shift) 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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a5ac850673a52efdc33e036f02e556b65">operator&gt;&gt;=</a>(bitsize_t shift)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a3eb6e62883ab96fa12bf7f09914eeeaf">operator^=</a>(const integer_t&lt; ... &gt; n)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a1e10bc51f7231535c85f71aee54e9983">operator|=</a>(const integer_t&lt; ... &gt; n)</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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7553f83abb87e24c0448f4c7f191bdac">operator~</a>() 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>
+ <tr class="memlist"><td><a class="el" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952">pow2</a>(std::size_t exponent)</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#a60157b68c2e375faac4d325091fd1683">random_by_size</a>(Type &amp;gen, bitsize_t size_in_bits, bool high_bit_on=false, bool low_bit_on=false, bool can_be_negative=false)</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#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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -35,14 +34,15 @@
 <p>List of all members.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Public Types</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&lt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a1c701a8337c775e18c26759d55398b58">divide_t</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a><br class="typebreak"/>
+&lt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ade3856e01013fca6b126ad4336e2baa1">divide_t</a></td></tr>
 <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Constructors &amp; Destructors</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpab1e74c734dea693114ec1f1cb9434ad"></a> </p>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ad159c2201f2cf1e1de1988cc41f8b4eb">integer_t</a> (const Type n, typename boost::enable_if&lt; boost::is_integral&lt; Type &gt; &gt;::type *=0)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;other &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#afcc80aaf55194eca5926d7a6d52489f0">integer_t</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; other &gt; &amp;other, bool force_thread_safety=false)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a864a599e2de326e6e339ffc820fd849e">integer_t</a> (const <a class="el" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a> b, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> bits=0)</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a portable binary representation of a number into an integer. <br/></td></tr>
@@ -55,8 +55,8 @@
 <tr><td class="memTemplParams" colspan="2">template&lt;typename charT &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a5de9d56709084eaadff6ab850540a49a">integer_t</a> (const charT *str, std::size_t base=10)</td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">integer_t</a> (BOOST_XINT_RV_REF(type) b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a6735b1926fb31c09537fb8f2bcc243ef">integer_t</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;b, bool force_thread_safety=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of an existing integer. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7065aa7ea6447a0b12f2ba48e96fe041">integer_t</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;b, bool force_thread_safety=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a copy of an existing integer. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb">integer_t</a> ()</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new integer with an initial value of zero. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Miscellaneous Functions</div></td></tr>
@@ -75,51 +75,52 @@
 <tr><td colspan="2"><div class="groupHeader">Mathematical and Bitwise Operators</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp8eb1e0f0af70edd858d54ba68b80ce7e"></a>These operate exactly like their counterparts for the built-in integer types. </p>
 </div></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#abe691a26ef01695197d98d01822ea764">operator safe_bool_type</a> () const </td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">operator!</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">operator%=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">operator&amp;=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">operator*=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a9c772faa5bee3403bed32e1d7c44f51b">operator+</a> () const </td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">operator+</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a86ddf2ee74e7716528baa9a0b7e18449">operator++</a> (int)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">operator++</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">operator+=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2">operator-</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the additive inverse of an integer. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#adab9f000397bd8856f6b73b45e6682c3">operator--</a> (int)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">operator--</a> ()</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">operator-=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">operator/=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> b)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005">operator&lt;&lt;</a> (<a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> shift) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Left-shift an integer by a specified number of bits. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">operator&lt;&lt;=</a> (<a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> shift)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">operator%=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a61e627aa932085a4bd0f7df6686f0425">operator&amp;=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a8a3e75f529dcaaff153f2c5623b49cc8">operator*=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#aca07c09238db36a0841c9ddb8f536571">operator+</a> () const </td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a6c76aafd3555337a904e8eb4d22fdd92">operator+</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a2dc87b835492b973dca74dc886e2e274">operator++</a> (int)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a181f8d37a64f300f92e860391b024d47">operator++</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ad4428b8fa904a3147ffc3467aa624836">operator+=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#aae82da97e52646d4fe5dbc08ddd60d3f">operator-</a> () const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the additive inverse of an integer. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a2ac13b5bdaec8cd84848213f17bf7d7c">operator--</a> (int)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a56da9c00309b56a53b267ef477e80634">operator--</a> ()</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a9042675d3fa1c93447b0005d426cfa86">operator-=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a4bf7befde3cb5eff8e6e84b290c0ce50">operator/=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; b)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a4ad69f2d49b7a5ca73181b168639ed49">operator&lt;&lt;</a> (<a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> shift) const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Left-shift an integer by a specified number of bits. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a1cb134ca3fdad8c6a73a1a23b6291f9d">operator&lt;&lt;=</a> (<a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> shift)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7798d6022dd3478a10b35b094347c95f">operator=</a> (const Type n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ae8aaa078191d16525cfb8c97d9f5f401">operator=</a> (BOOST_XINT_RV_REF(type) c)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">operator=</a> (BOOST_XINT_COPY_ASSIGN_REF(type) c)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8">operator&gt;&gt;</a> (<a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> shift) const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Right-shift an integer by a specified number of bits. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">operator&gt;&gt;=</a> (<a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> shift)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">operator^=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">operator|=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n)</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1">operator~</a> () const </td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The Bitwise Ones' Complement (i.e. bitwise NOT) operator. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a3d53ce69522ec4ce4b109e7c7daab6cd">operator=</a> (const Type n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a814624f6d9c27ec161e9c62f4536744c">operator=</a> (BOOST_XINT_RV_REF(type) c)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9">operator=</a> (BOOST_XINT_COPY_ASSIGN_REF(type) c)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a8e43feeaa7f1050942fb68d10d65bc62">operator&gt;&gt;</a> (<a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> shift) const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Right-shift an integer by a specified number of bits. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a5ac850673a52efdc33e036f02e556b65">operator&gt;&gt;=</a> (<a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> shift)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a3eb6e62883ab96fa12bf7f09914eeeaf">operator^=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a1e10bc51f7231535c85f71aee54e9983">operator|=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n)</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7553f83abb87e24c0448f4c7f191bdac">operator~</a> () const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The Bitwise Ones Complement (i.e. bitwise NOT) operator. <br/></td></tr>
 <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Static Member Functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpa31d6da946887ed6180c9a44a76c862f"></a> These are functions that return an <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a>, but don't take one as a parameter. To use them as free functions, you would have to specify the return type anyway, so they're static member functions of the type instead. </p>
 </div></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a7bc8e4868073626d1ea0dc7e9668f6e0">factorial</a> (std::size_t n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of <code>n!</code> <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1">nan</a> ()</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a Not-a-Number value, for types that support it. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a5d14ff656a3464ecf2e81d490f1acb76">pow2</a> (std::size_t exponent)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of 2<sup>e</sup> <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65">factorial</a> (std::size_t n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of <code>n!</code> <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#ac2e125b88a17f8c4e4c0b760ee1e9962">nan</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a Not-a-Number value, for types that support it. <br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952">pow2</a> (std::size_t exponent)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of 2<sup>e</sup> <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;class Type &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2">random_by_size</a> (Type &amp;gen, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> size_in_bits, bool high_bit_on=false, bool low_bit_on=false, bool can_be_negative=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a random integer with specific attributes. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683">random_by_size</a> (Type &amp;gen, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> size_in_bits, bool high_bit_on=false, bool low_bit_on=false, bool can_be_negative=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a random integer with specific attributes. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;class Type &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02">random_prime</a> (Type &amp;gen, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> size_in_bits, <a class="el" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback=<a class="el" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">no_callback</a>)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate a randomly-generated prime number of a particular bit-size. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947">random_prime</a> (Type &amp;gen, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> size_in_bits, <a class="el" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback=<a class="el" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">no_callback</a>)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate a randomly-generated prime number of a particular bit-size. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <h3>template&lt;...&gt;<br/>
@@ -128,44 +129,34 @@
 <p>The <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> class template. </p>
 <p>This class implements the standard aribitrary-length integer type.</p>
 <p>There are only a few member functions, primarily operators. Most of the functionality is implemented using standalone functions.</p>
-<p>You can specify several template parameters for the type. Most of these parameters must be specified via helper classes defined in the <code><a class="el" href="namespaceboost_1_1xint_1_1options.html" title="Options for the integer_t template are stored in this namespace.">boost::xint::options</a></code> namespace. Thanks to the magic of Boost.Parameter, you can use as few or as many as you need, and in any order. The parameters are:</p>
-<dl><dt><b>Template Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>fixedlength&lt;Bits&gt;</em>&nbsp;</td><td>If <code>Bits</code> is non-zero, integers of this type are <a class="el" href="fixedlength.html">fixed-length</a>, limited to the specified number of bits. If zero (the default), the integer is limited only by your system's memory.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>threadsafe&lt;T&gt;</em>&nbsp;</td><td>If <code>T</code> is <code>true</code>, the library ensures that each object has its own unique storage before returning it. If <code>false</code>, identical objects are allowed to share storage using a copy-on-write design, potentially increasing the speed of the library, but making it unsafe for multithreaded use (with <a class="el" href="threadsafe.html">some exceptions</a>). The library allows copy-on-write for internal functions regardless of this parameter, which is safe because the internal functions only use one thread at a time. Defaults to <code>true</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>secure&lt;T&gt;</em>&nbsp;</td><td>If <code>T</code> is <code>true</code>, the library zeros out all memory before deallocating it, for maximum security. Defaults to <code>false</code>.</td></tr>
- <tr><td valign="top"></td><td valign="top"><em>nothrow&lt;T&gt;</em>&nbsp;</td><td>If <code>T</code> is <code>true</code>, then operations using this class do not throw exceptions, they return special values (most often <a class="el" href="nan.html">Not-a-Number</a>) to indicate failures. Defaults to <code>false</code>.</td></tr>
- </table>
- </dd>
-</dl>
-<p>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>.</p>
+<p>You can specify several template parameters for the type. Most of these parameters must be specified via helper classes defined in the <a class="el" href="namespaceboost_1_1xint_1_1options.html" title="Options for the integer_t template are stored in this namespace.">boost::xint::options</a> namespace. See the list and descriptions there.</p>
 <p>Here are some examples of how to specify an integer type:</p>
 <p><code></p>
 <pre>
     namespace xopts = <a class="el" href="namespaceboost_1_1xint_1_1options.html" title="Options for the integer_t template are stored in this namespace.">boost::xint::options</a>;
- typedef <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;xopts::fixedlength&lt;512&gt;,
- xopts::secure&lt;true&gt; &gt; secureint512;
- typedef <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;xopts::threadsafe&lt;false&gt;,
- my_allocator&lt;boost::xint::detail::digit_t&gt; &gt; my_integer;
+ typedef <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;xopts::fixedlength&lt;512&gt;, xopts::secure,
+ xopts::negative_modulus&gt; secure_uint512;
+ typedef <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">boost::xint::integer_t</a>&lt;my_allocator&lt;boost::xint::detail::digit_t&gt;,
+ xopts::copy_on_write&gt; my_integer;
 </pre><p></code></p>
-<p>Note that the <a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">integer</a> and <a class="el" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4">nothrow_integer</a> types are already typedef'd for you. </p>
+<p>Note that the basic <a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">integer</a> and <a class="el" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2">nothrow_integer</a> types are already typedef'd for you. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00101">101</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00050">50</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 <hr/><h2>Member Typedef Documentation</h2>
-<a class="anchor" id="a1c701a8337c775e18c26759d55398b58"></a><!-- doxytag: member="boost::xint::integer_t::divide_t" ref="a1c701a8337c775e18c26759d55398b58" args="" -->
+<a class="anchor" id="ade3856e01013fca6b126ad4336e2baa1"></a><!-- doxytag: member="boost::xint::integer_t::divide_t" ref="ade3856e01013fca6b126ad4336e2baa1" args="" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&lt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">divide_t</a></td>
+ <td class="memname">typedef <a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a>&lt;<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::<a class="el" href="classboost_1_1xint_1_1base__divide__t.html">divide_t</a></td>
         </tr>
       </table>
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00202">202</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#l00147">147</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -189,11 +180,11 @@
 
 <p>Creates a new integer with an initial value of zero. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00261">261</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#l00224">224</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a6735b1926fb31c09537fb8f2bcc243ef"></a><!-- doxytag: member="boost::xint::integer_t::integer_t" ref="a6735b1926fb31c09537fb8f2bcc243ef" args="(const integer_t &amp;b, bool force_thread_safety=false)" -->
+<a class="anchor" id="a7065aa7ea6447a0b12f2ba48e96fe041"></a><!-- doxytag: member="boost::xint::integer_t::integer_t" ref="a7065aa7ea6447a0b12f2ba48e96fe041" args="(const integer_t&lt; ... &gt; &amp;b, bool force_thread_safety=false)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -202,7 +193,7 @@
         <tr>
           <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> </td>
           <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;&gt; &amp;&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;&nbsp;</td>
           <td class="paramname"> <em>b</em>, </td>
         </tr>
         <tr>
@@ -230,7 +221,7 @@
 </dl>
 <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00276">276</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#l00239">239</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -252,7 +243,7 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00131">131</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00061">61</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -304,7 +295,7 @@
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>This is the most common way to initialize literal values that are too large to fit into a native integral type.</dd></dl>
 <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00298">298</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#l00261">261</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -365,7 +356,7 @@
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>This function is based on the <code>strtol</code> function from the standard library. Like <code>strtol</code>, it first discards any leading whitespace characters, then takes as many characters as are valid for the given <code>base</code> and interprets them as an integer. Then a pointer to the first character following the integer is stored in the object pointed by <code>endptr</code>.</dd></dl>
 <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00345">345</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#l00310">310</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -419,7 +410,7 @@
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>This is the most common way to initialize literal values that are too large to fit into a native integral type.</dd></dl>
 <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00394">394</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#l00361">361</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -468,10 +459,10 @@
   </dd>
 </dl>
 <dl class="return"><dt><b>Returns:</b></dt><dd>An integer representing the bytes.</dd></dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">xint::to_binary</a></dd></dl>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b" title="Creates a binary representation of an integer.">xint::to_binary</a></dd></dl>
 <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00431">431</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#l00402">402</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -481,7 +472,7 @@
 <div class="memtemplate">
 template&lt;... &gt; </div>
 <div class="memtemplate">
-template&lt;... &gt; </div>
+template&lt;other &gt; </div>
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> </td>
@@ -514,7 +505,7 @@
 </dl>
 <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00457">457</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00429">429</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -562,19 +553,19 @@
 <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#l00492">492</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#l00468">468</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
 <hr/><h2>Member Function Documentation</h2>
-<a class="anchor" id="a7bc8e4868073626d1ea0dc7e9668f6e0"></a><!-- doxytag: member="boost::xint::integer_t::factorial" ref="a7bc8e4868073626d1ea0dc7e9668f6e0" args="(std::size_t n)" -->
+<a class="anchor" id="aaa28dad29e0a3fd16ec4bb26ec241a65"></a><!-- doxytag: member="boost::xint::integer_t::factorial" ref="aaa28dad29e0a3fd16ec4bb26ec241a65" args="(std::size_t n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::factorial </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::factorial </td>
           <td>(</td>
           <td class="paramtype">std::size_t&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
@@ -598,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#l01087">1087</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#l01073">1073</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -623,9 +614,9 @@
 <ul>
 <li>Complexity: O(1)</li>
 </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&lt;true&gt; version returns zero instead of throwing. </dd></dl>
+<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#l01028">1028</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#l01011">1011</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -650,9 +641,9 @@
 <ul>
 <li>Complexity: O(1)</li>
 </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&lt;true&gt; version returns false instead of throwing. </dd></dl>
+<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#l00970">970</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#l00953">953</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -681,8 +672,6 @@
 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="nan.html">The Not-a-Number Value</a></dd></dl>
 <dl class="note"><dt><b>Note:</b></dt><dd>This will always return <code>false</code> on any type where the <code>nothrow</code> template parameter is <code>false</code>. </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00991">991</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
-
 </div>
 </div>
 <a class="anchor" id="a28c1cf2549da47e36ada1e3a2a020654"></a><!-- doxytag: member="boost::xint::integer_t::is_odd" ref="a28c1cf2549da47e36ada1e3a2a020654" args="() const " -->
@@ -706,20 +695,20 @@
 <ul>
 <li>Complexity: O(1)</li>
 </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&lt;true&gt; version returns false instead of throwing. </dd></dl>
+<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#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#l00936">936</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a49eff434d2a1f0729d7757e6349fd2c1"></a><!-- doxytag: member="boost::xint::integer_t::nan" ref="a49eff434d2a1f0729d7757e6349fd2c1" args="()" -->
+<a class="anchor" id="ac2e125b88a17f8c4e4c0b760ee1e9962"></a><!-- doxytag: member="boost::xint::integer_t::nan" ref="ac2e125b88a17f8c4e4c0b760ee1e9962" args="()" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::nan </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::nan </td>
           <td>(</td>
           <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
@@ -734,10 +723,29 @@
 <li>Complexity: O(1)</li>
 </ul>
 <dl class="return"><dt><b>Returns:</b></dt><dd>A Not-a-Number value of the specified type.</dd></dl>
-<dl class="note"><dt><b>Note:</b></dt><dd>If called on a type that does not support Not-a-Number values (i.e. any type whose <code>nothrow</code> template parameter is <code>false</code>), it will throw a <code>not_a_number</code> exception.</dd></dl>
+<dl class="note"><dt><b>Note:</b></dt><dd>This function only exists on types whose <code>nothrow</code> template parameter is <code>true</code>.</dd></dl>
 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="nan.html">The Not-a-Number Value</a> </dd></dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01119">1119</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+</div>
+</div>
+<a class="anchor" id="abe691a26ef01695197d98d01822ea764"></a><!-- doxytag: member="boost::xint::integer_t::operator safe_bool_type" ref="abe691a26ef01695197d98d01822ea764" args="() const " -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;... &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator safe_bool_type </td>
+ <td>(</td>
+ <td class="paramname"></td>
+ <td>&nbsp;)&nbsp;</td>
+ <td> const<code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00096">96</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -758,20 +766,20 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00167">167</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00098">98</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ac61ca4bfdf11efc044602e8d4205f7ce"></a><!-- doxytag: member="boost::xint::integer_t::operator%=" ref="ac61ca4bfdf11efc044602e8d4205f7ce" args="(const integer_t b)" -->
+<a class="anchor" id="a2144da90955b26120f5cfc724a24b8fc"></a><!-- doxytag: member="boost::xint::integer_t::operator%=" ref="a2144da90955b26120f5cfc724a24b8fc" args="(const integer_t&lt; ... &gt; b)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator%= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator%= </td>
           <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;&gt;&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>b</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -779,22 +787,22 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67" title="Get the remainder after dividing a number by another.">operator%(integer_t, integer_t)</a> </dd></dl>
+<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#l00671">671</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#l00650">650</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a10ef8068734ee6473686db051023e781"></a><!-- doxytag: member="boost::xint::integer_t::operator&amp;=" ref="a10ef8068734ee6473686db051023e781" args="(const integer_t n)" -->
+<a class="anchor" id="a61e627aa932085a4bd0f7df6686f0425"></a><!-- doxytag: member="boost::xint::integer_t::operator&amp;=" ref="a61e627aa932085a4bd0f7df6686f0425" args="(const integer_t&lt; ... &gt; n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&amp;= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&amp;= </td>
           <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;&gt;&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -802,22 +810,22 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3" title="Combine two integers using a bitwise AND operation.">operator&amp;(integer_t, integer_t)</a> </dd></dl>
+<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#l00787">787</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#l00770">770</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a75277c26ae0bea13bb263b4586d000af"></a><!-- doxytag: member="boost::xint::integer_t::operator*=" ref="a75277c26ae0bea13bb263b4586d000af" args="(const integer_t b)" -->
+<a class="anchor" id="a8a3e75f529dcaaff153f2c5623b49cc8"></a><!-- doxytag: member="boost::xint::integer_t::operator*=" ref="a8a3e75f529dcaaff153f2c5623b49cc8" args="(const integer_t&lt; ... &gt; b)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator*= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator*= </td>
           <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;&gt;&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>b</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -825,20 +833,20 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455" title="Calculate the product of two integers.">operator*(integer_t, integer_t)</a> </dd></dl>
+<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#l00627">627</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#l00606">606</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a9c772faa5bee3403bed32e1d7c44f51b"></a><!-- doxytag: member="boost::xint::integer_t::operator+" ref="a9c772faa5bee3403bed32e1d7c44f51b" args="() const " -->
+<a class="anchor" id="aca07c09238db36a0841c9ddb8f536571"></a><!-- doxytag: member="boost::xint::integer_t::operator+" ref="aca07c09238db36a0841c9ddb8f536571" args="() const " -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator+ </td>
+ <td class="memname">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator+ </td>
           <td>(</td>
           <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
@@ -848,18 +856,18 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00170">170</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00101">101</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a641a730bbcc4e4191db4fcf753dd3d18"></a><!-- doxytag: member="boost::xint::integer_t::operator+" ref="a641a730bbcc4e4191db4fcf753dd3d18" args="()" -->
+<a class="anchor" id="a6c76aafd3555337a904e8eb4d22fdd92"></a><!-- doxytag: member="boost::xint::integer_t::operator+" ref="a6c76aafd3555337a904e8eb4d22fdd92" args="()" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator+ </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator+ </td>
           <td>(</td>
           <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
@@ -869,18 +877,18 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00169">169</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#l00100">100</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a86ddf2ee74e7716528baa9a0b7e18449"></a><!-- doxytag: member="boost::xint::integer_t::operator++" ref="a86ddf2ee74e7716528baa9a0b7e18449" args="(int)" -->
+<a class="anchor" id="a2dc87b835492b973dca74dc886e2e274"></a><!-- doxytag: member="boost::xint::integer_t::operator++" ref="a2dc87b835492b973dca74dc886e2e274" args="(int)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator++ </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator++ </td>
           <td>(</td>
           <td class="paramtype">int&nbsp;</td>
           <td class="paramname"></td>
@@ -896,18 +904,18 @@
 </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#l00743">743</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#l00724">724</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a68ed7bd6ea19ffe3e2c84c65a456ff38"></a><!-- doxytag: member="boost::xint::integer_t::operator++" ref="a68ed7bd6ea19ffe3e2c84c65a456ff38" args="()" -->
+<a class="anchor" id="a181f8d37a64f300f92e860391b024d47"></a><!-- doxytag: member="boost::xint::integer_t::operator++" ref="a181f8d37a64f300f92e860391b024d47" args="()" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator++ </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator++ </td>
           <td>(</td>
           <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
@@ -921,20 +929,20 @@
 <li>Complexity: amortized O(1) </li>
 </ul>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00696">696</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#l00675">675</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aabc91bf8c44e6aff12c0b19097feceba"></a><!-- doxytag: member="boost::xint::integer_t::operator+=" ref="aabc91bf8c44e6aff12c0b19097feceba" args="(const integer_t b)" -->
+<a class="anchor" id="ad4428b8fa904a3147ffc3467aa624836"></a><!-- doxytag: member="boost::xint::integer_t::operator+=" ref="ad4428b8fa904a3147ffc3467aa624836" args="(const integer_t&lt; ... &gt; b)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator+= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator+= </td>
           <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;&gt;&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>b</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -942,20 +950,20 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+(integer_t, integer_t)</a> </dd></dl>
+<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#l00583">583</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00560">560</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a567e8464311600fb2b825df15fa286f2"></a><!-- doxytag: member="boost::xint::integer_t::operator&#45;" ref="a567e8464311600fb2b825df15fa286f2" args="() const " -->
+<a class="anchor" id="aae82da97e52646d4fe5dbc08ddd60d3f"></a><!-- doxytag: member="boost::xint::integer_t::operator&#45;" ref="aae82da97e52646d4fe5dbc08ddd60d3f" args="() const " -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator- </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator- </td>
           <td>(</td>
           <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
@@ -971,18 +979,18 @@
 </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#l00562">562</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#l00537">537</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="adab9f000397bd8856f6b73b45e6682c3"></a><!-- doxytag: member="boost::xint::integer_t::operator&#45;&#45;" ref="adab9f000397bd8856f6b73b45e6682c3" args="(int)" -->
+<a class="anchor" id="a2ac13b5bdaec8cd84848213f17bf7d7c"></a><!-- doxytag: member="boost::xint::integer_t::operator&#45;&#45;" ref="a2ac13b5bdaec8cd84848213f17bf7d7c" args="(int)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator-- </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator-- </td>
           <td>(</td>
           <td class="paramtype">int&nbsp;</td>
           <td class="paramname"></td>
@@ -998,18 +1006,18 @@
 </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#l00768">768</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#l00749">749</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="adac8c52f928aa7aeb8556aa3a2ec16a7"></a><!-- doxytag: member="boost::xint::integer_t::operator&#45;&#45;" ref="adac8c52f928aa7aeb8556aa3a2ec16a7" args="()" -->
+<a class="anchor" id="a56da9c00309b56a53b267ef477e80634"></a><!-- doxytag: member="boost::xint::integer_t::operator&#45;&#45;" ref="a56da9c00309b56a53b267ef477e80634" args="()" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator-- </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator-- </td>
           <td>(</td>
           <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
@@ -1023,20 +1031,20 @@
 <li>Complexity: amortized O(1) </li>
 </ul>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00718">718</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#l00697">697</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a7a9f9597a52bfb7c5f83bf73690a4d0c"></a><!-- doxytag: member="boost::xint::integer_t::operator&#45;=" ref="a7a9f9597a52bfb7c5f83bf73690a4d0c" args="(const integer_t b)" -->
+<a class="anchor" id="a9042675d3fa1c93447b0005d426cfa86"></a><!-- doxytag: member="boost::xint::integer_t::operator&#45;=" ref="a9042675d3fa1c93447b0005d426cfa86" args="(const integer_t&lt; ... &gt; b)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator-= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator-= </td>
           <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;&gt;&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>b</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -1044,22 +1052,22 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">operator-(integer_t, integer_t)</a> </dd></dl>
+<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#l00605">605</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#l00582">582</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ae55c6a634e3bd3c37f7cace2f9b9e496"></a><!-- doxytag: member="boost::xint::integer_t::operator/=" ref="ae55c6a634e3bd3c37f7cace2f9b9e496" args="(const integer_t b)" -->
+<a class="anchor" id="a4bf7befde3cb5eff8e6e84b290c0ce50"></a><!-- doxytag: member="boost::xint::integer_t::operator/=" ref="a4bf7befde3cb5eff8e6e84b290c0ce50" args="(const integer_t&lt; ... &gt; b)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator/= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator/= </td>
           <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;&gt;&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>b</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -1067,20 +1075,20 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21" title="Calculate how many dividends would fit into divisor.">operator/(integer_t, integer_t)</a> </dd></dl>
+<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#l00649">649</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#l00628">628</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ae328872eb71547090e6259c7af6d9005"></a><!-- doxytag: member="boost::xint::integer_t::operator&lt;&lt;" ref="ae328872eb71547090e6259c7af6d9005" args="(bitsize_t shift) const " -->
+<a class="anchor" id="a4ad69f2d49b7a5ca73181b168639ed49"></a><!-- doxytag: member="boost::xint::integer_t::operator&lt;&lt;" ref="a4ad69f2d49b7a5ca73181b168639ed49" args="(bitsize_t shift) const " -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&lt;&lt; </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&lt;&lt; </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a>&nbsp;</td>
           <td class="paramname"> <em>shift</em></td>
@@ -1103,18 +1111,18 @@
 </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#l00860">860</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#l00844">844</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a75912e8f7238e9db46f53e793be13549"></a><!-- doxytag: member="boost::xint::integer_t::operator&lt;&lt;=" ref="a75912e8f7238e9db46f53e793be13549" args="(bitsize_t shift)" -->
+<a class="anchor" id="a1cb134ca3fdad8c6a73a1a23b6291f9d"></a><!-- doxytag: member="boost::xint::integer_t::operator&lt;&lt;=" ref="a1cb134ca3fdad8c6a73a1a23b6291f9d" args="(bitsize_t shift)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&lt;&lt;= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&lt;&lt;= </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a>&nbsp;</td>
           <td class="paramname"> <em>shift</em></td>
@@ -1126,11 +1134,11 @@
 <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#l00909">909</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#l00891">891</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a7798d6022dd3478a10b35b094347c95f"></a><!-- doxytag: member="boost::xint::integer_t::operator=" ref="a7798d6022dd3478a10b35b094347c95f" args="(const Type n)" -->
+<a class="anchor" id="a3d53ce69522ec4ce4b109e7c7daab6cd"></a><!-- doxytag: member="boost::xint::integer_t::operator=" ref="a3d53ce69522ec4ce4b109e7c7daab6cd" args="(const Type n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1139,7 +1147,7 @@
 template&lt;typename Type &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator= </td>
           <td>(</td>
           <td class="paramtype">const Type&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
@@ -1150,18 +1158,18 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00164">164</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#l00093">93</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ae8aaa078191d16525cfb8c97d9f5f401"></a><!-- doxytag: member="boost::xint::integer_t::operator=" ref="ae8aaa078191d16525cfb8c97d9f5f401" args="(BOOST_XINT_RV_REF(type) c)" -->
+<a class="anchor" id="a814624f6d9c27ec161e9c62f4536744c"></a><!-- doxytag: member="boost::xint::integer_t::operator=" ref="a814624f6d9c27ec161e9c62f4536744c" args="(BOOST_XINT_RV_REF(type) c)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator= </td>
           <td>(</td>
           <td class="paramtype">BOOST_XINT_RV_REF(type)&nbsp;</td>
           <td class="paramname"> <em>c</em></td>
@@ -1172,18 +1180,18 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00162">162</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00091">91</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="abc18fd9b5fce57c1824f3da24eae0d95"></a><!-- doxytag: member="boost::xint::integer_t::operator=" ref="abc18fd9b5fce57c1824f3da24eae0d95" args="(BOOST_XINT_COPY_ASSIGN_REF(type) c)" -->
+<a class="anchor" id="a93ba1fe786ab3fb9be1914e64414edd9"></a><!-- doxytag: member="boost::xint::integer_t::operator=" ref="a93ba1fe786ab3fb9be1914e64414edd9" args="(BOOST_XINT_COPY_ASSIGN_REF(type) c)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator= </td>
           <td>(</td>
           <td class="paramtype">BOOST_XINT_COPY_ASSIGN_REF(type)&nbsp;</td>
           <td class="paramname"> <em>c</em></td>
@@ -1194,18 +1202,18 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00510">510</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00490">490</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a62d51331f6ec9b4878c537b7848265d8"></a><!-- doxytag: member="boost::xint::integer_t::operator&gt;&gt;" ref="a62d51331f6ec9b4878c537b7848265d8" args="(bitsize_t shift) const " -->
+<a class="anchor" id="a8e43feeaa7f1050942fb68d10d65bc62"></a><!-- doxytag: member="boost::xint::integer_t::operator&gt;&gt;" ref="a8e43feeaa7f1050942fb68d10d65bc62" args="(bitsize_t shift) const " -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&gt;&gt; </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&gt;&gt; </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a>&nbsp;</td>
           <td class="paramname"> <em>shift</em></td>
@@ -1228,18 +1236,18 @@
 </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#l00888">888</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#l00871">871</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aaf46801d882d2f215b03eab5ec8622dc"></a><!-- doxytag: member="boost::xint::integer_t::operator&gt;&gt;=" ref="aaf46801d882d2f215b03eab5ec8622dc" args="(bitsize_t shift)" -->
+<a class="anchor" id="a5ac850673a52efdc33e036f02e556b65"></a><!-- doxytag: member="boost::xint::integer_t::operator&gt;&gt;=" ref="a5ac850673a52efdc33e036f02e556b65" args="(bitsize_t shift)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&gt;&gt;= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator&gt;&gt;= </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a>&nbsp;</td>
           <td class="paramname"> <em>shift</em></td>
@@ -1251,20 +1259,20 @@
 <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#l00928">928</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#l00911">911</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ac70939fc8a6ab9b1dd59694fbcdbd3ae"></a><!-- doxytag: member="boost::xint::integer_t::operator^=" ref="ac70939fc8a6ab9b1dd59694fbcdbd3ae" args="(const integer_t n)" -->
+<a class="anchor" id="a3eb6e62883ab96fa12bf7f09914eeeaf"></a><!-- doxytag: member="boost::xint::integer_t::operator^=" ref="a3eb6e62883ab96fa12bf7f09914eeeaf" args="(const integer_t&lt; ... &gt; n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator^= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator^= </td>
           <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;&gt;&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -1272,22 +1280,22 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025" title="Combine two integers using a bitwise XOR operation.">operator^(integer_t, integer_t)</a> </dd></dl>
+<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#l00831">831</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#l00814">814</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aefbb50f543ab91bef86e9aabc6e61610"></a><!-- doxytag: member="boost::xint::integer_t::operator|=" ref="aefbb50f543ab91bef86e9aabc6e61610" args="(const integer_t n)" -->
+<a class="anchor" id="a1e10bc51f7231535c85f71aee54e9983"></a><!-- doxytag: member="boost::xint::integer_t::operator|=" ref="a1e10bc51f7231535c85f71aee54e9983" args="(const integer_t&lt; ... &gt; n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator|= </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator|= </td>
           <td>(</td>
- <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;&gt;&nbsp;</td>
+ <td class="paramtype">const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -1295,20 +1303,20 @@
       </table>
 </div>
 <div class="memdoc">
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075" title="Combine two integers using a bitwise OR operation.">operator|(integer_t, integer_t)</a> </dd></dl>
+<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#l00809">809</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#l00792">792</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ad0328a5852615d76af78e99dbde3adc1"></a><!-- doxytag: member="boost::xint::integer_t::operator~" ref="ad0328a5852615d76af78e99dbde3adc1" args="() const " -->
+<a class="anchor" id="a7553f83abb87e24c0448f4c7f191bdac"></a><!-- doxytag: member="boost::xint::integer_t::operator~" ref="a7553f83abb87e24c0448f4c7f191bdac" args="() const " -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator~ </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::operator~ </td>
           <td>(</td>
           <td class="paramname"></td>
           <td>&nbsp;)&nbsp;</td>
@@ -1318,24 +1326,23 @@
 </div>
 <div class="memdoc">
 
-<p>The Bitwise Ones' Complement (i.e. bitwise NOT) operator. </p>
+<p>The Bitwise Ones Complement (i.e. bitwise NOT) operator. </p>
 <ul>
 <li>Complexity: O(n)</li>
 </ul>
-<p>Note that this operator is only useful with fixed-size integers. If used with a variable-size integer, it will throw a <code>too_big</code> exception, because a proper implementation would result in an infinitely long number. </p>
-
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00538">538</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
 
 </div>
 </div>
-<a class="anchor" id="a5d14ff656a3464ecf2e81d490f1acb76"></a><!-- doxytag: member="boost::xint::integer_t::pow2" ref="a5d14ff656a3464ecf2e81d490f1acb76" args="(std::size_t exponent)" -->
+<a class="anchor" id="af1ba624cd3a118bad2f8b603837bd952"></a><!-- doxytag: member="boost::xint::integer_t::pow2" ref="af1ba624cd3a118bad2f8b603837bd952" args="(std::size_t exponent)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::pow2 </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::pow2 </td>
           <td>(</td>
           <td class="paramtype">std::size_t&nbsp;</td>
           <td class="paramname"> <em>exponent</em></td>
@@ -1359,11 +1366,11 @@
 <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#l01055">1055</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#l01038">1038</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a8826eb41c3e4ca9b6b4ec81ff61d9ba2"></a><!-- doxytag: member="boost::xint::integer_t::random_by_size" ref="a8826eb41c3e4ca9b6b4ec81ff61d9ba2" args="(Type &amp;gen, bitsize_t size_in_bits, bool high_bit_on=false, bool low_bit_on=false, bool can_be_negative=false)" -->
+<a class="anchor" id="a60157b68c2e375faac4d325091fd1683"></a><!-- doxytag: member="boost::xint::integer_t::random_by_size" ref="a60157b68c2e375faac4d325091fd1683" args="(Type &amp;gen, bitsize_t size_in_bits, bool high_bit_on=false, bool low_bit_on=false, bool can_be_negative=false)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1372,7 +1379,7 @@
 template&lt;class Type &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::random_by_size </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::random_by_size </td>
           <td>(</td>
           <td class="paramtype">Type &amp;&nbsp;</td>
           <td class="paramname"> <em>gen</em>, </td>
@@ -1420,18 +1427,18 @@
     <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>size_in_bits</em>&nbsp;</td><td>The maximum number of bits that you want the returned number to have. </td></tr>
     <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>high_bit_on</em>&nbsp;</td><td>If <code>true</code>, the returned number will have exactly the requested size. If <code>false</code>, the upper bits may be zero, resulting in a number that is slightly smaller than requested. </td></tr>
     <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>low_bit_on</em>&nbsp;</td><td>If <code>true</code>, the returned number will always be odd. If <code>false</code>, it has an equal chance of being odd or even. </td></tr>
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>can_be_negative</em>&nbsp;</td><td>If <code>true</code>, the returned value has an equal chance of being positive or negative. If <code>false</code>, it will always be positive.</td></tr>
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>can_be_negative</em>&nbsp;</td><td>If <code>true</code>, the returned value has an equal chance of being positive or negative. If <code>false</code>, it will always be positive. Note that on unsigned types, this parameter is ignored; the result will always be positive regardless of it.</td></tr>
   </table>
   </dd>
 </dl>
 <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#l01153">1153</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#l01134">1134</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="adbbd33c6281a946db3608140bba62f02"></a><!-- doxytag: member="boost::xint::integer_t::random_prime" ref="adbbd33c6281a946db3608140bba62f02" args="(Type &amp;gen, bitsize_t size_in_bits, callback_t callback=no_callback)" -->
+<a class="anchor" id="a87ea7ddc800621ebf2d9dda0d68d0947"></a><!-- doxytag: member="boost::xint::integer_t::random_prime" ref="a87ea7ddc800621ebf2d9dda0d68d0947" args="(Type &amp;gen, bitsize_t size_in_bits, callback_t callback=no_callback)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1440,7 +1447,7 @@
 template&lt;class Type &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::random_prime </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t</a>&lt;&gt;::random_prime </td>
           <td>(</td>
           <td class="paramtype">Type &amp;&nbsp;</td>
           <td class="paramname"> <em>gen</em>, </td>
@@ -1485,11 +1492,11 @@
   </table>
   </dd>
 </dl>
-<dl class="note"><dt><b>Note:</b></dt><dd>This function uses <a class="el" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">xint::is_prime</a>. See the description of it for details of its limitations.</dd></dl>
+<dl class="note"><dt><b>Note:</b></dt><dd>This function uses <a class="el" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace" title="Tests an integer for primality.">xint::is_prime</a>. See the description of it for details of its limitations.</dd></dl>
 <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#l01199">1199</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#l01181">1181</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1521,9 +1528,9 @@
   </table>
   </dd>
 </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&lt;true&gt; version returns zero instead of throwing. </dd></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#l01007">1007</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#l00990">990</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -1531,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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -33,12 +32,12 @@
  class disable_boost_rv_ref&lt; T &gt;</h3>
 
 
-<p>Definition at line <a class="el" href="basic__types__and__includes_8hpp_source.html#l00059">59</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#l00064">64</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 <hr/>The documentation for this class was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -29,17 +28,17 @@
 <h1>Class Index</h1><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>
 <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
 <tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">divide_by_zero</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_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="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">not_a_number</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_1secure.html">secure</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">base_divide_t</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nb
sp;</td><td><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">invalid_base</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_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="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength.html">fixedlength</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_1invalid__digit.html">invalid_digit</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_1nothrow__base.html">nothrow_base</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
-</td></tr><tr><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">cannot_represent</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_1fixedlength__base.html">fixedlength_base</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_1invalid__modulus.html">invalid_modulus</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</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><td><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe.html">threadsafe</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;N&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">overflow_error</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">threadsafe_base</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&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_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="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">no_strong_random</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>)&nbsp;&nbsp;&nbsp;</t
d><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">too_big</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref</a>&nbsp;&nbsp;&nbsp;</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>
+</td><td><a class="el" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">invalid_base</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__modulus.html">negative_modulus</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_1overflow__error.html">overflow_error</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_1base__divide__t.html">base_divide_t</a> (<a class="el" href="namespaceboost_1_1xint.html">boost::xint</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">divi
de_by_zero</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>)&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">invalid_digit</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__not__allowed.html">negative_not_allowed</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;S&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;C&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;F&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">invalid_modulus</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__zero.html">negative_zero</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_1secure.html">secure</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">cannot_represent</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_1fixedlength.html">fixedlength</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options
</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;N&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">no_strong_random</a> (<a class="el" href="namespaceboost_1_1xint_1_1exceptions.html">boost::xint::exceptions</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
+</td></tr><tr><td><a class="el" href="structboost_1_1xint_1_1options_1_1copy__on__write.html">copy_on_write</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td><td><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;I&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structboost_1_1xint_1_1options_1_1negative__absolute.html">negative_absolute</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_1not__a__number.html">not_a_number</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_1threadsafe.html">threadsafe</a> (<a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a>)&nbsp;&nbsp;&nbsp;</td></tr><tr><td><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;D&nbsp;&nbsp;</div></td></tr></table>
+</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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -43,7 +43,7 @@
 <a name="l00025"></a>00025 <span class="keyword">namespace </span>xint {
 <a name="l00026"></a>00026 <span class="keyword">namespace </span>detail {
 <a name="l00027"></a>00027
-<a name="l00029"></a>00029 <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> digit_t *b1, <span class="keyword">const</span> digit_t *b2, std::size_t len, <span class="keywordtype">bool</span>
+<a name="l00029"></a>00029 <span class="keyword">inline</span> <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> digit_t *b1, <span class="keyword">const</span> digit_t *b2, std::size_t len, <span class="keywordtype">bool</span>
 <a name="l00030"></a>00030 equal_only)
 <a name="l00031"></a>00031 {
 <a name="l00032"></a>00032 <span class="keyword">const</span> detail::digit_t *b1i = b1 + len, *b2i = b2 + len;
@@ -61,7 +61,7 @@
 <a name="l00044"></a>00044 }
 <a name="l00045"></a>00045
 <a name="l00047"></a>00047 BOOST_XINT_RAWINT_TPL
-<a name="l00048"></a>00048 <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT b1, <span class="keyword">const</span> BOOST_XINT_RAWINT b2, <span class="keywordtype">bool</span>
+<a name="l00048"></a>00048 <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> BOOST_XINT_RAWINT b1, <span class="keyword">const</span> BOOST_XINT_RAWINT b2, <span class="keywordtype">bool</span>
 <a name="l00049"></a>00049 ignoresign = <span class="keyword">false</span>)
 <a name="l00050"></a>00050 {
 <a name="l00051"></a>00051 <span class="keywordtype">bool</span> invert_answer=<span class="keyword">false</span>;
@@ -81,7 +81,7 @@
 <a name="l00065"></a>00065 <span class="keywordflow">if</span> (b1.length != b2.length) {
 <a name="l00066"></a>00066 answer = ((b1.length &lt; b2.length) ? -1 : 1);
 <a name="l00067"></a>00067 } <span class="keywordflow">else</span> {
-<a name="l00068"></a>00068 answer = <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(b1.digits(), b2.digits(), b1.length, <span class="keyword">false</span>);
+<a name="l00068"></a>00068 answer = <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(b1.digits(), b2.digits(), b1.length, <span class="keyword">false</span>);
 <a name="l00069"></a>00069 }
 <a name="l00070"></a>00070 <span class="keywordflow">return</span> (invert_answer ? -answer : answer);
 <a name="l00071"></a>00071 }
@@ -94,27 +94,27 @@
 <a name="l00079"></a>00079 <span class="keywordflow">return</span> (!b1.is_zero() || !b2.is_zero() ? 1 : 0);
 <a name="l00080"></a>00080 }
 <a name="l00081"></a>00081 <span class="keywordflow">if</span> (b1.length != b2.length) <span class="keywordflow">return</span> 1;
-<a name="l00082"></a>00082 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(b1.digits(), b2.digits(), b1.length, <span class="keyword">true</span>);
+<a name="l00082"></a>00082 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(b1.digits(), b2.digits(), b1.length, <span class="keyword">true</span>);
 <a name="l00083"></a>00083 }
 <a name="l00084"></a>00084
 <a name="l00085"></a>00085 BOOST_XINT_RAWINT_TPL
-<a name="l00086"></a>00086 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
+<a name="l00086"></a>00086 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
 <a name="l00087"></a>00087 <span class="keywordflow">return</span> compare_eq(num1, num2)==0; }
 <a name="l00088"></a>00088 BOOST_XINT_RAWINT_TPL
-<a name="l00089"></a>00089 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
+<a name="l00089"></a>00089 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
 <a name="l00090"></a>00090 <span class="keywordflow">return</span> compare_eq(num1, num2)!=0; }
 <a name="l00091"></a>00091 BOOST_XINT_RAWINT_TPL
-<a name="l00092"></a>00092 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator&lt;</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
-<a name="l00093"></a>00093 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(num1, num2)&lt;0; }
+<a name="l00092"></a>00092 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
+<a name="l00093"></a>00093 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(num1, num2)&lt;0; }
 <a name="l00094"></a>00094 BOOST_XINT_RAWINT_TPL
-<a name="l00095"></a>00095 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator&gt;</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
-<a name="l00096"></a>00096 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(num1, num2)&gt;0; }
+<a name="l00095"></a>00095 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
+<a name="l00096"></a>00096 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(num1, num2)&gt;0; }
 <a name="l00097"></a>00097 BOOST_XINT_RAWINT_TPL
-<a name="l00098"></a>00098 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator&lt;=</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
-<a name="l00099"></a>00099 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(num1, num2)&lt;=0; }
+<a name="l00098"></a>00098 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
+<a name="l00099"></a>00099 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(num1, num2)&lt;=0; }
 <a name="l00100"></a>00100 BOOST_XINT_RAWINT_TPL
-<a name="l00101"></a>00101 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator&gt;=</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
-<a name="l00102"></a>00102 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(num1, num2)&gt;=0; }
+<a name="l00101"></a>00101 <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span> BOOST_XINT_RAWINT num2) {
+<a name="l00102"></a>00102 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5" title="Compare two integer objects.">compare</a>(num1, num2)&gt;=0; }
 <a name="l00103"></a>00103
 <a name="l00104"></a>00104 } <span class="comment">// namespace detail</span>
 <a name="l00105"></a>00105 } <span class="comment">// namespace xint</span>
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -50,7 +50,7 @@
 <a name="l00032"></a>00032 }
 <a name="l00033"></a>00033
 <a name="l00034"></a>00034 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, bit<span class="keywordtype">size_t</span> Bits, <span class="keywordtype">bool</span> Secure, <span class="keyword">class</span> Alloc&gt;
-<a name="l00035"></a>00035 std::basic_string&lt;charT&gt; <a class="code" href="namespaceboost_1_1xint.html#a92cfd4119fbf9eeb0a503d4e0dbe553c" 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="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();
@@ -101,10 +101,10 @@
 <a name="l00083"></a>00083
 <a name="l00084"></a>00084 BOOST_XINT_RAWINT shift;
 <a name="l00085"></a>00085 shift.set_unsigned(base);
-<a name="l00086"></a>00086 <span class="keyword">typename</span> BOOST_XINT_RAWINT::divide_t a(<a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(n.abs(), shift));
+<a name="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#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(a.quotient, shift);
+<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
@@ -219,7 +219,7 @@
 <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#a66514eef6594409cda1dfad652e2dc40" 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="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>);
@@ -256,7 +256,7 @@
 <a name="l00238"></a>00238 }
 <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#afd9d2c7743d11e6959d6cda44c8abf69" title="Converts an xint::integer type to a built-in integer type.">to</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&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;
@@ -281,7 +281,7 @@
 <a name="l00264"></a>00264 <span class="comment"></span>
 <a name="l00265"></a>00265 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_CONVERT_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -25,9 +25,9 @@
 
 <h1><a class="anchor" id="cow">Copying and Argument-Passing </a></h1><p>You might notice that most of the library's functions pass integer objects by value, which strikes most developers as incredibly inefficient. I thought so too, until I read Dave Abrahams' excellent article, <em>"Want Speed? Pass By Value."</em>, which you can find at &lt;http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/&gt;.</p>
 <p>To increase the speed of the library further, it uses a copy-on-write system internally. That means that if the internal functions copy an integer object, the copy and the original share the same storage. They are only assigned separate storage when one of them is changed. This mechanism makes copying a number (explicitly, by returning it, or by using it as a non-reference parameter to a function) very fast, regardless of its size.</p>
-<p>Unfortunately, copy-on-write isn't compatible with thread-safe operation, so by default the library will ensure that all of its objects have unique storage before they are returned to your program. If you want maximum speed, and can ensure that integer objects are only used in the threads they are created in, you can disable this by using the <code>threadsafe&lt;false&gt;</code> option on the <code>integer_t</code> class template. </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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -152,14 +152,14 @@
 <a name="l00138"></a>00138 }
 <a name="l00139"></a>00139
 <a name="l00142"></a>00142 BOOST_XINT_RAWINT_TPL
-<a name="l00143"></a>00143 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(BOOST_XINT_RAWINT&amp; qtarget, BOOST_XINT_RAWINT&amp; rtarget, <span class="keyword">const</span>
+<a name="l00143"></a>00143 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(BOOST_XINT_RAWINT&amp; qtarget, BOOST_XINT_RAWINT&amp; rtarget, <span class="keyword">const</span>
 <a name="l00144"></a>00144 BOOST_XINT_RAWINT d1, <span class="keyword">const</span> BOOST_XINT_RAWINT d2)
 <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#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(d1, d2, <span class="keyword">true</span>);
+<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;
@@ -186,44 +186,44 @@
 <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#a7d5e37941c1085e1cc1e513d9f1857b4" 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="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#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(q, r, d1, d2);
+<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#a7d5e37941c1085e1cc1e513d9f1857b4" 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="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#a7d5e37941c1085e1cc1e513d9f1857b4" 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="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#a800dca196da627207b63fccd3c132c21" 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="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#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(quotient, remainder, n1, n2);
+<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#aac56e280afa13284381f144a208eaf67" 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="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#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(quotient, remainder, n1, n2);
+<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 }
@@ -234,7 +234,7 @@
 <a name="l00223"></a>00223 <span class="comment"></span>
 <a name="l00224"></a>00224 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_DIVIDE_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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/Doxyfile
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/Doxyfile (original)
+++ sandbox/xint/libs/xint/doc/dox/Doxyfile 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -1353,11 +1353,11 @@
 # The macro definition that is found in the sources will be used.
 # Use the PREDEFINED tag if you want to use a different macro definition.
 
-EXPAND_AS_DEFINED = BOOST_XINT_INTEGER_TPL \
- BOOST_XINT_INTEGER_TYPE \
- BOOST_XINT_INTEGER_INITIAL_TPL \
- BOOST_XINT_OTHER_TPL \
- BOOST_XINT_OTHER_TYPE
+EXPAND_AS_DEFINED = BOOST_XINT_INITIAL_APARAMS \
+ BOOST_XINT_CLASS_APARAMS \
+ BOOST_XINT_CLASS_BPARAMS \
+ BOOST_XINT_APARAMS \
+ BOOST_XINT_BPARAMS
 
 # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
 # doxygen's preprocessor will remove all function-like macros that are alone

Modified: sandbox/xint/libs/xint/doc/dox/copyonwrite.dox
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/copyonwrite.dox (original)
+++ sandbox/xint/libs/xint/doc/dox/copyonwrite.dox 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -17,6 +17,6 @@
 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 \c threadsafe<false> option on the \c
+you can disable this by using the \c options::copy_on_write option on the \c
 integer_t class template.
 */

Modified: sandbox/xint/libs/xint/doc/dox/fixedlength.dox
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/fixedlength.dox (original)
+++ sandbox/xint/libs/xint/doc/dox/fixedlength.dox 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -1,22 +1,27 @@
-/*! \page fixedlength Fixed-Length Integers
+/*! \page fixedlength_type Fixed-Length Integers
 
-Fixed-length integers (created by specifying a non-zero value for the \c Bits
-parameter of the \c integer_t template) always use the same amount of memory.
-They can be noticeably faster than unlimited-length integers, especially when
-combined with an allocator designed for their allocation pattern. However, they
-can be less memory-efficient for holding smaller values. They also silently
-discard the upper bits on any value that is too big for them, which can bite the
-unwary.
+Fixed-length integers (created by using the \ref
+boost::xint::options::fixedlength "fixedlength" parameter of the \c integer_t
+template with a non-zero value) always use the same amount of memory. They can
+be noticeably faster than unlimited-length integers, especially when combined
+with an allocator designed for their allocation pattern. However, they can be
+less memory-efficient for holding smaller values. They also silently discard the
+upper bits on any value that is too big for them, which can bite the unwary.
 
 \note The number of bits refers only to the unsigned magnitude of the number.
 The sign is stored separately. This means that, for example, a \c integer_t<8>
 has a range of -255 to +255, not -128 to +127 like an \c int8_t.
 
 \par
-Also note that when calculating with a fixed-length integer type, the number
-does not "wrap around" when it exceeds the type's size like the built-in signed
-%integer types do. It is truncated to the lower bits instead. For example,
-<code>integer_t<8>(-255) - 1</code> and <code>integer_t<8>(255) + 1</code> will
-both be zero. However, the sign (on non-zero answers) is preserved, so
-<code>integer_t<8>(-255) - 2</code> will be -1.
+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<8>(-255) - 1</code> and <code>integer_t<8>(255) +
+1</code> will both be zero. However, the sign (on non-zero answers) is
+preserved, so <code>integer_t<8>(-255) - 2</code> will be -1.
+
+\par
+When used with the \ref
+boost::xint::options::negative_modulus "negative_modulus" option, the number
+will wrap around like the built-in unsigned types.
 */

Modified: sandbox/xint/libs/xint/doc/dox/history.dox
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/history.dox (original)
+++ sandbox/xint/libs/xint/doc/dox/history.dox 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -44,4 +44,19 @@
 - Added Boost.Parameter options to the \c integer_t type, so you're no longer
 forced to list the options in order, and list all earlier options before the one
 that you want to change.
+
+\b 2010-06-18
+- Sixth version posted to the Boost File Vault for preliminary review.
+- Refined the use of Boost.Parameter. Now only \c fixedlength takes a parameter;
+the other options are non-parameter types, which simplifies both their use and
+their implementation.
+- Minor redesign, taking advantage of \e proper policy-based design. nan() and
+operator~() are now only available on \c nothrow and \c fixedlength types,
+respectively, and is_nan() gets different definitions in the standard and \c
+nothrow types.
+- Added unsigned support, by request, with a variety of options for what to do
+when a calculation results in a negative number.
+- Added the \c difference function.
+- Added support for wide-character strings, by request.
+- Added the safe-bool idiom, by request.
 */

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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -55,7 +55,7 @@
 More information on how to use it can be found on the pages listed below.
 
 Detailed Usage Information:
-- \subpage fixedlength
+- \subpage fixedlength_type
 - \subpage nan
 - \subpage zero
 - \subpage primes (with example code)

Modified: sandbox/xint/libs/xint/doc/dox/r_random.dox
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/r_random.dox (original)
+++ sandbox/xint/libs/xint/doc/dox/r_random.dox 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -1,10 +1,10 @@
 /*! \page r_random Why did you implement your own random number generator? You should use Boost.Random instead.
 
 Boost.Random provides \c boost::random_device to tap into the operating system's
-strong random number generator, but at the time of this writing, the official
-released version only defines it for Linux and BSD systems. The current
-maintainer, Steven Watanabe, says that he has just added Windows compatibility
-to it, so the \c xint::strong_random_generator class will likely be reduced to
-a typedef for \c boost::random_device, or a thin shell around it, in the near
-future.
+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 \c
+xint::strong_random_generator class here as well. Anyone using the library is
+free to use \c boost::random_device (or any other Boost.Random device) if they
+wish.
 */

Modified: sandbox/xint/libs/xint/doc/dox/random.dox
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/random.dox (original)
+++ sandbox/xint/libs/xint/doc/dox/random.dox 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -10,7 +10,11 @@
 \c strong_random_generator provides an interface to the operating system's
 secure random number generator, for both Windows and UNIX-derived systems. It
 will throw an exception of type \c no_strong_random if you try to instantiate it
-on a system that does not have an operating-system-supplied generator.
+on a system that does not have an operating-system-supplied generator. Note
+that, as of Boost 1.43, the \c boost::random_device class is basically identical
+to \c xint::strong_random_generator, and probably better in some respects. \c
+xint::strong_random_generator is still provided because \c boost::random_device
+requires a compiled library, making it more difficult to use in examples.
 
 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

Modified: sandbox/xint/libs/xint/doc/dox/threadsafe.dox
==============================================================================
--- sandbox/xint/libs/xint/doc/dox/threadsafe.dox (original)
+++ sandbox/xint/libs/xint/doc/dox/threadsafe.dox 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -1,9 +1,10 @@
 /*! \page threadsafe The \c threadsafe Template Parameter
 
-The \c threadsafe parameter on the integer_t template controls the copy-on-write
-behavior of the program. When set to \c false, identical %integer objects are
-allowed to share storage, which is more efficient for both CPU power and memory,
-but which is generally unsafe for multithreaded programs.
+The \c threadsafe and \c copy_on_write parameters on the integer_t template
+control the copy-on-write behavior of the library. When using \c copy_on_write,
+identical %integer objects are allowed to share storage, which is more efficient
+for both CPU power and memory, but which is generally unsafe for multithreaded
+use.
 
 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
@@ -17,7 +18,7 @@
 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 \c
 force_thread_safety parameter on the object's copy constructor to make a
-duplicate of an object with its own unique storage, even if the \c threadsafe
-template parameter is \c false. You'll only need to do that when the %integer
-object is crossing thread boundaries.
+duplicate of an object with its own unique storage, even if using the \c
+copy_on_write option. You'll only need to do that when the %integer object is
+crossing thread boundaries.
 */

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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Modified: sandbox/xint/libs/xint/doc/exceptions.html
==============================================================================
--- sandbox/xint/libs/xint/doc/exceptions.html (original)
+++ sandbox/xint/libs/xint/doc/exceptions.html 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -41,7 +41,7 @@
         <span class="comment">// Call the function(s) that may produce errors. The example call tries</span>
         <span class="comment">// to interpret an empty string as an integer, which would normally</span>
         <span class="comment">// throw an xint::exception::invalid_digit.</span>
- <a class="code" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4" title="The default arbitrary-length nothrow_integer type.">nothrow_integer</a> n = <a class="code" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4" title="The default arbitrary-length nothrow_integer type.">nothrow_integer</a>(<span class="stringliteral">&quot;&quot;</span>);
+ <a class="code" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2" title="The default arbitrary-length nothrow_integer type.">nothrow_integer</a> n = <a class="code" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2" title="The default arbitrary-length nothrow_integer type.">nothrow_integer</a>(<span class="stringliteral">&quot;&quot;</span>);
 
         <span class="comment">// n should be Not-a-Number, because there was an error but exceptions</span>
         <span class="comment">// are not allowed on nothrow_integers. This example code is fairly</span>
@@ -62,7 +62,7 @@
     }
 }
 </pre></div> </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -60,7 +60,7 @@
 
 <p>Definition in file <a class="el" href="exceptions_8hpp_source.html">exceptions.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -114,7 +114,7 @@
 <a name="l00137"></a>00137
 <a name="l00138"></a>00138 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_EXCEPTIONS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -45,7 +45,7 @@
   <tr><td class="indexkey">detail/<a class="el" href="modular_8hpp.html">modular.hpp</a> [code]</td><td class="indexvalue">Contains the modular math functions </td></tr>
   <tr><td class="indexkey">detail/<a class="el" href="monty_8hpp.html">monty.hpp</a> [code]</td><td class="indexvalue">Contains the Montgomery Reduction functions </td></tr>
   <tr><td class="indexkey">detail/<a class="el" href="multiply_8hpp.html">multiply.hpp</a> [code]</td><td class="indexvalue">Contains the multiplication and squaring functions </td></tr>
- <tr><td class="indexkey">detail/<a class="el" href="options_8hpp.html">options.hpp</a> [code]</td><td class="indexvalue">Declares the arbitrary-length integer type </td></tr>
+ <tr><td class="indexkey">detail/<a class="el" href="options_8hpp.html">options.hpp</a> [code]</td><td class="indexvalue">Declares the integer_t template options </td></tr>
   <tr><td class="indexkey">detail/<a class="el" href="policies_8hpp.html">policies.hpp</a> [code]</td><td class="indexvalue">Contains the policy classes </td></tr>
   <tr><td class="indexkey">detail/<a class="el" href="powers_8hpp.html">powers.hpp</a> [code]</td><td class="indexvalue">Contains functions related to powers of a number </td></tr>
   <tr><td class="indexkey">detail/<a class="el" href="prime_8hpp.html">prime.hpp</a> [code]</td><td class="indexvalue">Contains the function definitions for the prime number functions </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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Deleted: sandbox/xint/libs/xint/doc/fixedlength.html
==============================================================================
--- sandbox/xint/libs/xint/doc/fixedlength.html 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
+++ (empty file)
@@ -1,34 +0,0 @@
-<!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: Fixed-Length Integers</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="fixedlength">Fixed-Length Integers </a></h1><p>Fixed-length integers (created by specifying a non-zero value for the <code>Bits</code> parameter of the <code>integer_t</code> template) always use the same amount of memory. They can be noticeably faster than unlimited-length integers, especially when combined with an allocator designed for their allocation pattern. However, they can be less memory-efficient for holding smaller values. They also silently discard the upper bits on any value that is too big for them, which can bite the unwary.</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>The number of bits refers only to the unsigned magnitude of the number. The sign is stored separately. This means that, for example, a <code>integer_t&lt;8&gt;</code> has a range of -255 to +255, not -128 to +127 like an <code>int8_t</code>.</dd></dl>
-<dl class="user"><dt><b></b></dt><dd>Also note that when calculating with a fixed-length integer type, the number does not "wrap around" when it exceeds the type's size like the built-in signed integer types do. It is truncated to the lower bits instead. For example, <code>integer_t&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>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 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/fixedlength_8dox.html
==============================================================================
--- sandbox/xint/libs/xint/doc/fixedlength_8dox.html (original)
+++ sandbox/xint/libs/xint/doc/fixedlength_8dox.html 2010-06-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <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/fixedlength__type.html (from r62997, /sandbox/xint/libs/xint/doc/fixedlength.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/fixedlength.html (original)
+++ sandbox/xint/libs/xint/doc/fixedlength__type.html 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -23,11 +23,12 @@
 <div class="contents">
 
 
-<h1><a class="anchor" id="fixedlength">Fixed-Length Integers </a></h1><p>Fixed-length integers (created by specifying a non-zero value for the <code>Bits</code> parameter of the <code>integer_t</code> template) always use the same amount of memory. They can be noticeably faster than unlimited-length integers, especially when combined with an allocator designed for their allocation pattern. However, they can be less memory-efficient for holding smaller values. They also silently discard the upper bits on any value that is too big for them, which can bite the unwary.</p>
+<h1><a class="anchor" id="fixedlength_type">Fixed-Length Integers </a></h1><p>Fixed-length integers (created by using the <a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength.html">fixedlength</a> parameter of the <code>integer_t</code> template with a non-zero value) always use the same amount of memory. They can be noticeably faster than unlimited-length integers, especially when combined with an allocator designed for their allocation pattern. However, they can be less memory-efficient for holding smaller values. They also silently discard the upper bits on any value that is too big for them, which can bite the unwary.</p>
 <dl class="note"><dt><b>Note:</b></dt><dd>The number of bits refers only to the unsigned magnitude of the number. The sign is stored separately. This means that, for example, a <code>integer_t&lt;8&gt;</code> has a range of -255 to +255, not -128 to +127 like an <code>int8_t</code>.</dd></dl>
-<dl class="user"><dt><b></b></dt><dd>Also note that when calculating with a fixed-length integer type, the number does not "wrap around" when it exceeds the type's size like the built-in signed integer types do. It is truncated to the lower bits instead. For example, <code>integer_t&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>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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li class="current">Class Members</li>
     </ul>
   </div>
@@ -75,14 +74,14 @@
 : <a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html#aaff4d720e4a134315acde919ff06e640">boost::xint::exceptions::divide_by_zero</a>
 </li>
 <li>divide_t
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a1c701a8337c775e18c26759d55398b58">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ade3856e01013fca6b126ad4336e2baa1">boost::xint::integer_t&lt;&gt;</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_f">- f -</a></h3><ul>
 <li>factorial()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a7bc8e4868073626d1ea0dc7e9668f6e0">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65">boost::xint::integer_t&lt;&gt;</a>
 </li>
 </ul>
 
@@ -124,7 +123,7 @@
 
 <h3><a class="anchor" id="index_n">- n -</a></h3><ul>
 <li>nan()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ac2e125b88a17f8c4e4c0b760ee1e9962">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>no_strong_random()
 : <a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html#ab225c7d5d10a03eac6d5e9c784135675">boost::xint::exceptions::no_strong_random</a>
@@ -136,63 +135,68 @@
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>operator safe_bool_type()
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#abe691a26ef01695197d98d01822ea764">boost::xint::integer_t&lt;&gt;</a>
+</li>
 <li>operator!()
 : <a class="el" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator%=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&amp;=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a61e627aa932085a4bd0f7df6686f0425">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator*=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a8a3e75f529dcaaff153f2c5623b49cc8">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator+()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a6c76aafd3555337a904e8eb4d22fdd92">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator++()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a86ddf2ee74e7716528baa9a0b7e18449">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a181f8d37a64f300f92e860391b024d47">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator+=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ad4428b8fa904a3147ffc3467aa624836">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator-()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aae82da97e52646d4fe5dbc08ddd60d3f">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator--()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a56da9c00309b56a53b267ef477e80634">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator-=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a9042675d3fa1c93447b0005d426cfa86">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator/=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a4bf7befde3cb5eff8e6e84b290c0ce50">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&lt;&lt;()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a4ad69f2d49b7a5ca73181b168639ed49">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&lt;&lt;=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a1cb134ca3fdad8c6a73a1a23b6291f9d">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator=()
-: <a class="el" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">boost::xint::base_divide_t&lt; T &gt;</a>
-, <a class="el" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">boost::xint::base_divide_t&lt; T &gt;</a>
+, <a class="el" href="classboost_1_1xint_1_1integer__t.html#a814624f6d9c27ec161e9c62f4536744c">boost::xint::integer_t&lt;&gt;</a>
+, <a class="el" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">boost::xint::base_divide_t&lt; T &gt;</a>
+, <a class="el" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&gt;&gt;()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a8e43feeaa7f1050942fb68d10d65bc62">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&gt;&gt;=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a5ac850673a52efdc33e036f02e556b65">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator^=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a3eb6e62883ab96fa12bf7f09914eeeaf">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator|=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a1e10bc51f7231535c85f71aee54e9983">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator~()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a7553f83abb87e24c0448f4c7f191bdac">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>overflow_error()
 : <a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html#a767d8fbe5816d77fa0aadf9481d0bd5a">boost::xint::exceptions::overflow_error</a>
@@ -202,7 +206,7 @@
 
 <h3><a class="anchor" id="index_p">- p -</a></h3><ul>
 <li>pow2()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a5d14ff656a3464ecf2e81d490f1acb76">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952">boost::xint::integer_t&lt;&gt;</a>
 </li>
 </ul>
 
@@ -216,10 +220,10 @@
 
 <h3><a class="anchor" id="index_r">- r -</a></h3><ul>
 <li>random_by_size()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>random_prime()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>remainder
 : <a class="el" href="classboost_1_1xint_1_1base__divide__t.html#aa79bd57f1bc85ceb86913fd0f81c9e2d">boost::xint::base_divide_t&lt; T &gt;</a>
@@ -240,7 +244,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li class="current">Class Members</li>
     </ul>
   </div>
@@ -78,7 +77,7 @@
 
 <h3><a class="anchor" id="index_f">- f -</a></h3><ul>
 <li>factorial()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a7bc8e4868073626d1ea0dc7e9668f6e0">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65">boost::xint::integer_t&lt;&gt;</a>
 </li>
 </ul>
 
@@ -120,7 +119,7 @@
 
 <h3><a class="anchor" id="index_n">- n -</a></h3><ul>
 <li>nan()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ac2e125b88a17f8c4e4c0b760ee1e9962">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>no_strong_random()
 : <a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html#ab225c7d5d10a03eac6d5e9c784135675">boost::xint::exceptions::no_strong_random</a>
@@ -132,63 +131,68 @@
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
+<li>operator safe_bool_type()
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#abe691a26ef01695197d98d01822ea764">boost::xint::integer_t&lt;&gt;</a>
+</li>
 <li>operator!()
 : <a class="el" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator%=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&amp;=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a61e627aa932085a4bd0f7df6686f0425">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator*=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a8a3e75f529dcaaff153f2c5623b49cc8">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator+()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a6c76aafd3555337a904e8eb4d22fdd92">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator++()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a86ddf2ee74e7716528baa9a0b7e18449">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a181f8d37a64f300f92e860391b024d47">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator+=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ad4428b8fa904a3147ffc3467aa624836">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator-()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aae82da97e52646d4fe5dbc08ddd60d3f">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator--()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a56da9c00309b56a53b267ef477e80634">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator-=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a9042675d3fa1c93447b0005d426cfa86">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator/=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a4bf7befde3cb5eff8e6e84b290c0ce50">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&lt;&lt;()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a4ad69f2d49b7a5ca73181b168639ed49">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&lt;&lt;=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a1cb134ca3fdad8c6a73a1a23b6291f9d">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator=()
-: <a class="el" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">boost::xint::base_divide_t&lt; T &gt;</a>
-, <a class="el" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1base__divide__t.html#a5f66ee628dc58d181b8c2886354909fb">boost::xint::base_divide_t&lt; T &gt;</a>
+, <a class="el" href="classboost_1_1xint_1_1integer__t.html#a814624f6d9c27ec161e9c62f4536744c">boost::xint::integer_t&lt;&gt;</a>
+, <a class="el" href="classboost_1_1xint_1_1base__divide__t.html#ac74a636871dd2988a4f654fc745426c7">boost::xint::base_divide_t&lt; T &gt;</a>
+, <a class="el" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&gt;&gt;()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a8e43feeaa7f1050942fb68d10d65bc62">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator&gt;&gt;=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a5ac850673a52efdc33e036f02e556b65">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator^=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a3eb6e62883ab96fa12bf7f09914eeeaf">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator|=()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a1e10bc51f7231535c85f71aee54e9983">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>operator~()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a7553f83abb87e24c0448f4c7f191bdac">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>overflow_error()
 : <a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html#a767d8fbe5816d77fa0aadf9481d0bd5a">boost::xint::exceptions::overflow_error</a>
@@ -198,17 +202,17 @@
 
 <h3><a class="anchor" id="index_p">- p -</a></h3><ul>
 <li>pow2()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a5d14ff656a3464ecf2e81d490f1acb76">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952">boost::xint::integer_t&lt;&gt;</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_r">- r -</a></h3><ul>
 <li>random_by_size()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683">boost::xint::integer_t&lt;&gt;</a>
 </li>
 <li>random_prime()
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947">boost::xint::integer_t&lt;&gt;</a>
 </li>
 </ul>
 
@@ -226,7 +230,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li class="current">Class Members</li>
     </ul>
   </div>
@@ -36,11 +35,11 @@
 <div class="contents">
 &nbsp;<ul>
 <li>divide_t
-: <a class="el" href="classboost_1_1xint_1_1integer__t.html#a1c701a8337c775e18c26759d55398b58">boost::xint::integer_t&lt;&gt;</a>
+: <a class="el" href="classboost_1_1xint_1_1integer__t.html#ade3856e01013fca6b126ad4336e2baa1">boost::xint::integer_t&lt;&gt;</a>
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li class="current">Class Members</li>
     </ul>
   </div>
@@ -43,7 +42,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -62,10 +62,10 @@
 <a name="l00044"></a>00044
 <a name="l00045"></a>00045 <span class="keywordflow">if</span> (t3.is_even() || u3 &lt; t3) {
 <a name="l00046"></a>00046 <span class="comment">// Swap the u&#39;s with the t&#39;s</span>
-<a name="l00047"></a>00047 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
-<a name="l00048"></a>00048 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(u1, t1);
-<a name="l00049"></a>00049 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(u2, t2);
-<a name="l00050"></a>00050 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(u3, t3);
+<a name="l00047"></a>00047 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">std::swap</a>;
+<a name="l00048"></a>00048 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(u1, t1);
+<a name="l00049"></a>00049 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(u2, t2);
+<a name="l00050"></a>00050 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(u3, t3);
 <a name="l00051"></a>00051 }
 <a name="l00052"></a>00052 } <span class="keywordflow">while</span> (u3.is_even());
 <a name="l00053"></a>00053
@@ -80,7 +80,7 @@
 <a name="l00062"></a>00062 };
 <a name="l00063"></a>00063
 <a name="l00064"></a>00064 BOOST_XINT_RAWINT_TPL
-<a name="l00065"></a>00065 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(BOOST_XINT_RAWINT&amp; target, <span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span>
+<a name="l00065"></a>00065 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(BOOST_XINT_RAWINT&amp; target, <span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span>
 <a name="l00066"></a>00066 BOOST_XINT_RAWINT num2)
 <a name="l00067"></a>00067 {
 <a name="l00068"></a>00068 <span class="keywordflow">if</span> (num1.is_zero() &amp;&amp; num2.is_zero()) {
@@ -93,7 +93,7 @@
 <a name="l00075"></a>00075 BOOST_XINT_RAWINT n(num1, <span class="keyword">false</span>), m(num2, <span class="keyword">false</span>);
 <a name="l00076"></a>00076
 <a name="l00077"></a>00077 std::size_t k = 0;
-<a name="l00078"></a>00078 <span class="keywordflow">if</span> (!<a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(n, k) &amp;&amp; !<a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(m, k)) ++k;
+<a name="l00078"></a>00078 <span class="keywordflow">if</span> (!<a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(n, k) &amp;&amp; !<a class="code" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a" title="Queries the value of a particular bit in an integer.">getbit</a>(m, k)) ++k;
 <a name="l00079"></a>00079 <span class="keywordflow">if</span> (k != 0) { n &gt;&gt;= k; m &gt;&gt;= k; }
 <a name="l00080"></a>00080
 <a name="l00081"></a>00081 gcd_core&lt;Bits, Secure, Alloc&gt; core(n, m);
@@ -108,14 +108,14 @@
 <a name="l00090"></a>00090 }
 <a name="l00091"></a>00091
 <a name="l00092"></a>00092 BOOST_XINT_RAWINT_TPL
-<a name="l00093"></a>00093 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(BOOST_XINT_RAWINT&amp; target, <span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span>
+<a name="l00093"></a>00093 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0" title="Calculate the Least Common Multiple of two integers.">lcm</a>(BOOST_XINT_RAWINT&amp; target, <span class="keyword">const</span> BOOST_XINT_RAWINT num1, <span class="keyword">const</span>
 <a name="l00094"></a>00094 BOOST_XINT_RAWINT num2)
 <a name="l00095"></a>00095 {
 <a name="l00096"></a>00096 <span class="keywordflow">if</span> (num1.is_zero() || num2.is_zero()) {
 <a name="l00097"></a>00097 target.set(0);
 <a name="l00098"></a>00098 } <span class="keywordflow">else</span> {
 <a name="l00099"></a>00099 BOOST_XINT_RAWINT common;
-<a name="l00100"></a>00100 <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(common, num1, num2);
+<a name="l00100"></a>00100 <a class="code" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(common, num1, num2);
 <a name="l00101"></a>00101
 <a name="l00102"></a>00102 target = num1 * num2 / common;
 <a name="l00103"></a>00103 target.negative = <span class="keyword">false</span>;
@@ -124,13 +124,13 @@
 <a name="l00106"></a>00106 }
 <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#ada4e628fe2275e6d6459b9b87167cbad" 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="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#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n.abs(), m);
+<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;
@@ -157,7 +157,7 @@
 <a name="l00142"></a>00142 <span class="comment"></span>
 <a name="l00143"></a>00143 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_GCD_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -38,6 +38,18 @@
 <li>BOOST_XINT_ANY_MATH
 : <a class="el" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090">integer.hpp</a>
 </li>
+<li>BOOST_XINT_APARAMS
+: <a class="el" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">options.hpp</a>
+</li>
+<li>BOOST_XINT_BPARAMS
+: <a class="el" href="options_8hpp.html#ac2e7764d34cf12c1de4ae325d982d8e3">options.hpp</a>
+</li>
+<li>BOOST_XINT_CLASS_APARAMS
+: <a class="el" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">options.hpp</a>
+</li>
+<li>BOOST_XINT_CLASS_BPARAMS
+: <a class="el" href="options_8hpp.html#a703c6d9989c912340d776ea5b2dbf4cd">options.hpp</a>
+</li>
 <li>BOOST_XINT_COPY_ASSIGN_REF
 : <a class="el" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">basic_types_and_includes.hpp</a>
 </li>
@@ -47,30 +59,18 @@
 <li>BOOST_XINT_FORWARD
 : <a class="el" href="basic__types__and__includes_8hpp.html#ad30e9ec163d1981dfee69c97d09ffd28">basic_types_and_includes.hpp</a>
 </li>
-<li>BOOST_XINT_INTEGER_INITIAL_TPL
-: <a class="el" href="integer_8hpp.html#aa7c3e1efa96c7df6333940b38b2d7e5b">integer.hpp</a>
-</li>
-<li>BOOST_XINT_INTEGER_TPL
-: <a class="el" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">integer.hpp</a>
-</li>
-<li>BOOST_XINT_INTEGER_TYPE
-: <a class="el" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">integer.hpp</a>
+<li>BOOST_XINT_INITIAL_APARAMS
+: <a class="el" href="options_8hpp.html#ab1e73a691d4b867f4a4269502bd09540">options.hpp</a>
 </li>
 <li>BOOST_XINT_MOVE
 : <a class="el" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">basic_types_and_includes.hpp</a>
 </li>
-<li>BOOST_XINT_OTHER_TPL
-: <a class="el" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">integer.hpp</a>
-</li>
-<li>BOOST_XINT_OTHER_TYPE
-: <a class="el" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">integer.hpp</a>
-</li>
 <li>BOOST_XINT_RV_REF
 : <a class="el" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">basic_types_and_includes.hpp</a>
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -38,6 +38,18 @@
 <li>BOOST_XINT_ANY_MATH
 : <a class="el" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090">integer.hpp</a>
 </li>
+<li>BOOST_XINT_APARAMS
+: <a class="el" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">options.hpp</a>
+</li>
+<li>BOOST_XINT_BPARAMS
+: <a class="el" href="options_8hpp.html#ac2e7764d34cf12c1de4ae325d982d8e3">options.hpp</a>
+</li>
+<li>BOOST_XINT_CLASS_APARAMS
+: <a class="el" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">options.hpp</a>
+</li>
+<li>BOOST_XINT_CLASS_BPARAMS
+: <a class="el" href="options_8hpp.html#a703c6d9989c912340d776ea5b2dbf4cd">options.hpp</a>
+</li>
 <li>BOOST_XINT_COPY_ASSIGN_REF
 : <a class="el" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">basic_types_and_includes.hpp</a>
 </li>
@@ -47,30 +59,18 @@
 <li>BOOST_XINT_FORWARD
 : <a class="el" href="basic__types__and__includes_8hpp.html#ad30e9ec163d1981dfee69c97d09ffd28">basic_types_and_includes.hpp</a>
 </li>
-<li>BOOST_XINT_INTEGER_INITIAL_TPL
-: <a class="el" href="integer_8hpp.html#aa7c3e1efa96c7df6333940b38b2d7e5b">integer.hpp</a>
-</li>
-<li>BOOST_XINT_INTEGER_TPL
-: <a class="el" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">integer.hpp</a>
-</li>
-<li>BOOST_XINT_INTEGER_TYPE
-: <a class="el" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">integer.hpp</a>
+<li>BOOST_XINT_INITIAL_APARAMS
+: <a class="el" href="options_8hpp.html#ab1e73a691d4b867f4a4269502bd09540">options.hpp</a>
 </li>
 <li>BOOST_XINT_MOVE
 : <a class="el" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">basic_types_and_includes.hpp</a>
 </li>
-<li>BOOST_XINT_OTHER_TPL
-: <a class="el" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">integer.hpp</a>
-</li>
-<li>BOOST_XINT_OTHER_TYPE
-: <a class="el" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">integer.hpp</a>
-</li>
 <li>BOOST_XINT_RV_REF
 : <a class="el" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">basic_types_and_includes.hpp</a>
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Deleted: sandbox/xint/libs/xint/doc/hierarchy.html
==============================================================================
--- sandbox/xint/libs/xint/doc/hierarchy.html 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
+++ (empty file)
@@ -1,66 +0,0 @@
-<!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: Hierarchical Index</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 class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li class="current">Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
-</div>
-<div class="contents">
-<h1>Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
-<li><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">boost::xint::base_divide_t&lt; T &gt;</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1default__random__generator.html">boost::xint::default_random_generator</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1cannot__represent.html">boost::xint::exceptions::cannot_represent</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">boost::xint::exceptions::divide_by_zero</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">boost::xint::exceptions::invalid_argument</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">boost::xint::exceptions::invalid_base</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__digit.html">boost::xint::exceptions::invalid_digit</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__modulus.html">boost::xint::exceptions::invalid_modulus</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1no__strong__random.html">boost::xint::exceptions::no_strong_random</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">boost::xint::exceptions::not_a_number</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1overflow__error.html">boost::xint::exceptions::overflow_error</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1exceptions_1_1too__big.html">boost::xint::exceptions::too_big</a></li>
-<li><a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::integer_t&lt;&gt;</a></li>
-<li><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">boost::xint::options::fixedlength_base</a><ul>
-<li><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength.html">boost::xint::options::fixedlength&lt; Bits &gt;</a></li>
-</ul>
-</li>
-<li><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">boost::xint::options::nothrow_base</a><ul>
-<li><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">boost::xint::options::nothrow&lt; Value &gt;</a></li>
-</ul>
-</li>
-<li><a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">boost::xint::options::secure_base</a><ul>
-<li><a class="el" href="structboost_1_1xint_1_1options_1_1secure.html">boost::xint::options::secure&lt; Value &gt;</a></li>
-</ul>
-</li>
-<li><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">boost::xint::options::threadsafe_base</a><ul>
-<li><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe.html">boost::xint::options::threadsafe&lt; Value &gt;</a></li>
-</ul>
-</li>
-<li><a class="el" href="classdisable__boost__rv__ref.html">disable_boost_rv_ref&lt; T &gt;</a></li>
-</ul>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 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/history.html
==============================================================================
--- sandbox/xint/libs/xint/doc/history.html (original)
+++ sandbox/xint/libs/xint/doc/history.html 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -54,10 +54,20 @@
 <li>Fifth version posted to the Boost File Vault for preliminary review.</li>
 <li>Final major redesign (I hope). All types are consolidated into a single <code>integer_t</code> template type.</li>
 <li>The library is now solely header-only, dictated by the templated nature of the types.</li>
-<li>Added Boost.Parameter options to the <code>integer_t</code> type, so you're no longer forced to list the options in order, and list all earlier options before the one that you want to change. </li>
+<li>Added Boost.Parameter options to the <code>integer_t</code> type, so you're no longer forced to list the options in order, and list all earlier options before the one that you want to change.</li>
+</ul>
+<p><b>2010-06-18</b> </p>
+<ul>
+<li>Sixth version posted to the Boost File Vault for preliminary review.</li>
+<li>Refined the use of Boost.Parameter. Now only <code>fixedlength</code> takes a parameter; the other options are non-parameter types, which simplifies both their use and their implementation.</li>
+<li>Minor redesign, taking advantage of <em>proper</em> policy-based design. nan() and operator~() are now only available on <code>nothrow</code> and <code>fixedlength</code> types, respectively, and is_nan() gets different definitions in the standard and <code>nothrow</code> types.</li>
+<li>Added unsigned support, by request, with a variety of options for what to do when a calculation results in a negative number.</li>
+<li>Added the <code>difference</code> function.</li>
+<li>Added support for wide-character strings, by request.</li>
+<li>Added the safe-bool idiom, by request. </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -39,7 +39,7 @@
 <p>More information on how to use it can be found on the pages listed below.</p>
 <p>Detailed Usage Information:</p>
 <ul>
-<li><a class="el" href="fixedlength.html">Fixed-Length Integers</a></li>
+<li><a class="el" href="fixedlength__type.html">Fixed-Length Integers</a></li>
 <li><a class="el" href="nan.html">The Not-a-Number Value</a></li>
 <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>
@@ -62,7 +62,7 @@
 <li><a class="el" href="ex__fibonacci.html">Fibonacci Numbers</a> </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -46,62 +46,60 @@
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allows for comparisons between integer_t types and other integral values. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090">BOOST_XINT_ANY_MATH</a>(op)</td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allows for operations between integer_t types and other integral values. <br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="integer_8hpp.html#aa7c3e1efa96c7df6333940b38b2d7e5b">BOOST_XINT_INTEGER_INITIAL_TPL</a>&nbsp;&nbsp;&nbsp;template&lt;...&gt;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>&nbsp;&nbsp;&nbsp;template&lt;...&gt;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&nbsp;&nbsp;&nbsp;integer_t</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">BOOST_XINT_OTHER_TPL</a>&nbsp;&nbsp;&nbsp;template&lt;...&gt;</td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">BOOST_XINT_OTHER_TYPE</a>&nbsp;&nbsp;&nbsp;integer_t&lt;other&gt;</td></tr>
 <tr><td colspan="2"><h2>Typedefs</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef integer_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">boost::xint::integer</a></td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The default arbitrary-length integer type. <br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">typedef integer_t<br class="typebreak"/>
-&lt; options::nothrow&lt; true &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4">boost::xint::nothrow_integer</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The default arbitrary-length nothrow_integer type. <br/></td></tr>
+&lt; options::nothrow &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2">boost::xint::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 colspan="2"><h2>Functions</h2></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#a1a857d5cc4b15822d3dcaf70ec15b4e5">boost::xint::swap</a> (integer_t &amp;left, integer_t &amp;right)</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">boost::xint::swap</a> (integer_t&lt; ... &gt; &amp;left, integer_t&lt; ... &gt; &amp;right)</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Mathematical primitives</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp196dd2a5f50860e057df961a96d84ea3"></a> There are only a couple of functions here because almost all mathematical primitives are implemented as operators. </p>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp196dd2a5f50860e057df961a96d84ea3"></a> There are only a few functions here because almost all mathematical primitives are implemented as operators. </p>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523">boost::xint::abs</a> (const integer_t n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute value of an integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a331d95962aedbdb34f04ef373555dd8a">boost::xint::abs</a> (const integer_t&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute value of an integer. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t::divide_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4">boost::xint::divide</a> (const integer_t dividend, const integer_t divisor)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>, with the remainder. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae58734c3f93951819e43af9fff2b9496">boost::xint::difference</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the absolute difference between two integers. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;::divide_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452">boost::xint::divide</a> (const integer_t&lt; ... &gt; dividend, const integer_t&lt; ... &gt; divisor)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>, with the remainder. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Bit-manipulation functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpcc775c18f98f26f2b84ac7a2558636f2"></a> </p>
 </div></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#a9f0fe7813dc7e6d6d92b64cd68677175">boost::xint::clearbit</a> (integer_t &amp;n, bitsize_t bit)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to zero. <br/></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#a5643216f91a4bb39bd88c1dc877e6ab8">boost::xint::clearbit</a> (integer_t&lt; ... &gt; &amp;n, bitsize_t bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to zero. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba">boost::xint::getbit</a> (const integer_t n, bitsize_t bit)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Queries the value of a particular bit in an integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a">boost::xint::getbit</a> (const integer_t&lt; ... &gt; n, bitsize_t bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Queries the value of a particular bit in an integer. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bitsize_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0">boost::xint::highestbit</a> (const integer_t n, bitsize_t return_if_zero=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the highest bit in an integer with a value of one. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bitsize_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e">boost::xint::highestbit</a> (const integer_t&lt; ... &gt; n, bitsize_t return_if_zero=0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the highest bit in an integer with a value of one. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bitsize_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4">boost::xint::lowestbit</a> (const integer_t n, bitsize_t return_if_zero=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the lowest bit in an integer with a value of one. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bitsize_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7">boost::xint::lowestbit</a> (const integer_t&lt; ... &gt; n, bitsize_t return_if_zero=0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the lowest bit in an integer with a value of one. <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#ac16087b6d58edabc3b67c94e63e22921">boost::xint::setbit</a> (integer_t &amp;n, bitsize_t bit)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to one. <br/></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#ae957235f76cb2fa0e1530255ccbfa8d0">boost::xint::setbit</a> (integer_t&lt; ... &gt; &amp;n, bitsize_t bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to one. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Miscellaneous functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp458f92801f3edfaf2e30b1f530c324e2"></a> </p>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0">boost::xint::compare</a> (const integer_t n1, const integer_t n2, bool ignoresign=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two integer objects. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5">boost::xint::compare</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2, bool ignoresign=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two integer objects. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e">boost::xint::gcd</a> (const integer_t num1, const integer_t num2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Greatest Common Denominator of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4">boost::xint::gcd</a> (const integer_t&lt; ... &gt; num1, const integer_t&lt; ... &gt; num2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Greatest Common Denominator of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4">boost::xint::lcm</a> (const integer_t num1, const integer_t num2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Least Common Multiple of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0">boost::xint::lcm</a> (const integer_t&lt; ... &gt; num1, const integer_t&lt; ... &gt; num2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Least Common Multiple of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18">boost::xint::log2</a> (const integer_t n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the log<sub>2</sub> value of an integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b">boost::xint::log2</a> (const integer_t&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the log<sub>2</sub> value of an integer. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Modular math functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpbf63e6a6a1029bb25b7aa51052b38655"></a> A common reason to use a large-integer library is to implement public-key encryption, and the algorithms for such encryption often use modular math.</p>
 <dl class="see"><dt><b>See also:</b></dt><dd>operator%(integer_t, integer_t) </dd>
@@ -109,17 +107,17 @@
 integer_t::operator%= </dd></dl>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad">boost::xint::invmod</a> (const integer_t n, const integer_t modulus)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular inverse of a number in a modulus, if there is one. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b">boost::xint::invmod</a> (const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; modulus)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular inverse of a number in a modulus, if there is one. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564">boost::xint::mulmod</a> (const integer_t n, const integer_t by, const integer_t modulus)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625">boost::xint::mulmod</a> (const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; by, const integer_t&lt; ... &gt; modulus)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0">boost::xint::powmod</a> (const integer_t n, const integer_t exponent, const integer_t modulus, bool no_monty=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the result of <code>n<sup>e</sup></code> % <code>m</code>, keeping the intermediate results (relatively) small. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815">boost::xint::powmod</a> (const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; exponent, const integer_t&lt; ... &gt; modulus, bool no_monty=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the result of <code>n<sup>e</sup></code> % <code>m</code>, keeping the intermediate results (relatively) small. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877">boost::xint::sqrmod</a> (const integer_t n, const integer_t modulus)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of squaring an integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3">boost::xint::sqrmod</a> (const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; modulus)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of squaring an integer. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Random and prime number functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpa3caa0f3187a2dcc617c005b6b75011b"></a> </p>
 <dl class="see"><dt><b>See also:</b></dt><dd>integer_t::random_by_size </dd>
@@ -127,60 +125,60 @@
 integer_t::random_prime </dd></dl>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4">boost::xint::is_prime</a> (const integer_t n, callback_t callback=no_callback)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests an integer for primality. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace">boost::xint::is_prime</a> (const integer_t&lt; ... &gt; n, callback_t callback=no_callback)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests an integer for primality. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Comparison Operators</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp54923b9793dae891d9489cc5947f263a"></a> The nothrow&lt;true&gt; versions of these functions return <code>false</code> instead of throwing.</p>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp54923b9793dae891d9489cc5947f263a"></a> The nothrow versions of these functions return <code>false</code> instead of throwing.</p>
 <dl class="see"><dt><b>See also:</b></dt><dd>compare(integer_t, integer_t, bool) </dd></dl>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">boost::xint::operator!=</a> (const integer_t n1, const integer_t n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">boost::xint::operator!=</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">boost::xint::operator&lt;</a> (const integer_t n1, const integer_t n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">boost::xint::operator&lt;</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">boost::xint::operator&lt;=</a> (const integer_t n1, const integer_t n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">boost::xint::operator&lt;=</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">boost::xint::operator==</a> (const integer_t n1, const integer_t n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">boost::xint::operator==</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">boost::xint::operator&gt;</a> (const integer_t n1, const integer_t n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">boost::xint::operator&gt;</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">boost::xint::operator&gt;=</a> (const integer_t n1, const integer_t n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">boost::xint::operator&gt;=</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Mathematical and Bitwise Operators</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp8eb1e0f0af70edd858d54ba68b80ce7e"></a> These act exactly the same as for the built-in integer types. </p>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67">boost::xint::operator%</a> (const integer_t n1, const integer_t n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the remainder after dividing a number by another. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0ac4116f3a9285a7f2f10d0104b870f7">boost::xint::operator%</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the remainder after dividing a number by another. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3">boost::xint::operator&amp;</a> (const integer_t n1, const integer_t n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>AND</code> operation. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad3bc201c8c1f3e87611abce8e6972538">boost::xint::operator&amp;</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>AND</code> operation. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455">boost::xint::operator*</a> (const integer_t n1, const integer_t n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the product of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab33a5481a4a4b16ab592be6a88cd245c">boost::xint::operator*</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the product of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915">boost::xint::operator+</a> (const integer_t n1, const integer_t n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the sum of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da">boost::xint::operator+</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the sum of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27">boost::xint::operator-</a> (const integer_t n1, const integer_t n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the difference between two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab6132105fbe7d7bf7a756b868b6a372e">boost::xint::operator-</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the difference between two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21">boost::xint::operator/</a> (const integer_t dividend, const integer_t divisor)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a806df63b92124039591a4ca09a8538e0">boost::xint::operator/</a> (const integer_t&lt; ... &gt; dividend, const integer_t&lt; ... &gt; divisor)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025">boost::xint::operator^</a> (const integer_t n1, const integer_t n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>XOR</code> operation. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0d1ce319bfb004fb6b93283bcb4f98c2">boost::xint::operator^</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>XOR</code> operation. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075">boost::xint::operator|</a> (const integer_t n1, const integer_t n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>OR</code> operation. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0b58f99b2c5bab4f7eec71d6058b23dd">boost::xint::operator|</a> (const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>OR</code> operation. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Stream input/output functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpd9927783c44c1aad288df0ab8bfa9ddf"></a> </p>
 </div></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits , ... &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; charT, <br class="typebreak"/>
-traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">boost::xint::operator&lt;&lt;</a> (std::basic_ostream&lt; charT, traits &gt; &amp;out, const integer_t n)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </td></tr>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">boost::xint::operator&lt;&lt;</a> (std::basic_ostream&lt; charT, traits &gt; &amp;out, const integer_t&lt; ... &gt; n)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits , ... &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_istream&lt; charT, <br class="typebreak"/>
-traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">boost::xint::operator&gt;&gt;</a> (std::basic_istream&lt; charT, traits &gt; &amp;in, integer_t &amp;n)</td></tr>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">boost::xint::operator&gt;&gt;</a> (std::basic_istream&lt; charT, traits &gt; &amp;in, integer_t&lt; ... &gt; &amp;n)</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Powers and roots</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp928a8cb047602f789d7433e262ed4560"></a> </p>
 <dl class="see"><dt><b>See also:</b></dt><dd>integer_t::pow2 </dd>
@@ -188,32 +186,32 @@
 integer_t::factorial </dd></dl>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52">boost::xint::pow</a> (const integer_t n, const integer_t e)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>e</sup> <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644">boost::xint::pow</a> (const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; e)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>e</sup> <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424">boost::xint::square</a> (const integer_t n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>2</sup> <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd">boost::xint::square</a> (const integer_t&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>2</sup> <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2">boost::xint::square_root</a> (const integer_t n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the square root of <code>an</code> integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">integer_t&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42">boost::xint::square_root</a> (const integer_t&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the square root of <code>an</code> integer. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Conversion functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9c2e8a06d85d2c9b83b5a0d27e85d535"></a> Note that these only convert an integer type to something else. See the integer constructors for conversions the other way. </p>
 </div></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69">boost::xint::to</a> (const integer_t n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts an <a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">xint::integer</a> type to a built-in integer type. <br/></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">xint::binary_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40">boost::xint::to_binary</a> (const integer_t n, bitsize_t bits=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a binary representation of an integer. <br/></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a92cfd4119fbf9eeb0a503d4e0dbe553c">boost::xint::to_string</a> (const integer_t n, std::size_t base=10, bool uppercase=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">to_stringtype&lt;char&gt;</a>. <br/></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; charT &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">boost::xint::to_stringtype</a> (const integer_t n, std::size_t base=10, bool uppercase=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a string representation of the specified integer. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T , ... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9aa52eb4533b04c27329b3f6b7aa842b">boost::xint::to</a> (const integer_t&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts an <a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">xint::integer</a> type to a built-in integer type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">xint::binary_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b">boost::xint::to_binary</a> (const integer_t&lt; ... &gt; n, bitsize_t bits=0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a binary representation of an integer. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2fb5a8cfac3e97a1641d424aac04a71f">boost::xint::to_string</a> (const integer_t&lt; ... &gt; n, std::size_t base=10, bool uppercase=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">to_stringtype&lt;char&gt;</a>. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , ... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; charT &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">boost::xint::to_stringtype</a> (const integer_t&lt; ... &gt; n, std::size_t base=10, bool uppercase=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a string representation of the specified integer. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">std::wstring&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2493d0acb308a3ec0abd7326d9bc6a27">boost::xint::to_wstring</a> (const integer_t n, std::size_t base=10, bool uppercase=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">to_stringtype&lt;wchar_t&gt;</a>. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::wstring&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6f24b4e0dc6e6c5de02480f5fb352030">boost::xint::to_wstring</a> (const integer_t&lt; ... &gt; n, std::size_t base=10, bool uppercase=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">to_stringtype&lt;wchar_t&gt;</a>. <br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>Declares the arbitrary-length integer type. </p>
@@ -240,35 +238,35 @@
       </table>
 </div>
 <div class="memdoc">
-<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">template</span> &lt;<span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3, <span class="keyword">class</span> A4, <span class="keyword">typename</span> N&gt; \
- rtype op(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span> N n2) { \
- <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) { \
+<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> { \
- <span class="keywordflow">return</span> op(n1, <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(n2)); \
+ <span class="keywordflow">return</span> op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \
             } <span class="keywordflow">catch</span> (std::exception&amp;) { \
                 <span class="keywordflow">return</span> rtype(0); \
             } \
         } <span class="keywordflow">else</span> { \
- <span class="keywordflow">return</span> op(n1, <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(n2)); \
+ <span class="keywordflow">return</span> op(n1, integer_t&lt;BOOST_XINT_APARAMS&gt;(n2)); \
         } \
     } \
     \
- <span class="keyword">template</span> &lt;<span class="keyword">typename</span> N, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3, <span class="keyword">class</span> A4&gt; \
- rtype op(<span class="keyword">const</span> N n1, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2) { \
- <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) { \
+ <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> { \
- <span class="keywordflow">return</span> op(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(n1), n2); \
+ <span class="keywordflow">return</span> op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \
             } <span class="keywordflow">catch</span> (std::exception&amp;) { \
                 <span class="keywordflow">return</span> rtype(0); \
             } \
         } <span class="keywordflow">else</span> { \
- <span class="keywordflow">return</span> op(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(n1), n2); \
+ <span class="keywordflow">return</span> op(integer_t&lt;BOOST_XINT_APARAMS&gt;(n1), n2); \
         } \
     }
 </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#l02322">2322</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#l02359">2359</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -290,87 +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#l02358">2358</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aa7c3e1efa96c7df6333940b38b2d7e5b"></a><!-- doxytag: member="integer.hpp::BOOST_XINT_INTEGER_INITIAL_TPL" ref="aa7c3e1efa96c7df6333940b38b2d7e5b" args="" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define BOOST_XINT_INTEGER_INITIAL_TPL&nbsp;&nbsp;&nbsp;template&lt;...&gt;</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00026">26</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae52121dc019a317d3d044eb35e44b817"></a><!-- doxytag: member="integer.hpp::BOOST_XINT_INTEGER_TPL" ref="ae52121dc019a317d3d044eb35e44b817" args="" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define BOOST_XINT_INTEGER_TPL&nbsp;&nbsp;&nbsp;template&lt;...&gt;</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00027">27</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4aaa66b9b8169b785506dfaf7de1fcd7"></a><!-- doxytag: member="integer.hpp::BOOST_XINT_INTEGER_TYPE" ref="a4aaa66b9b8169b785506dfaf7de1fcd7" args="" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define BOOST_XINT_INTEGER_TYPE&nbsp;&nbsp;&nbsp;integer_t</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00028">28</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a29684216936e84f92ac88714348ca53b"></a><!-- doxytag: member="integer.hpp::BOOST_XINT_OTHER_TPL" ref="a29684216936e84f92ac88714348ca53b" args="" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define BOOST_XINT_OTHER_TPL&nbsp;&nbsp;&nbsp;template&lt;...&gt;</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00029">29</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4ddb5cb10f0acff5d6df8ee6e9791cad"></a><!-- doxytag: member="integer.hpp::BOOST_XINT_OTHER_TYPE" ref="a4ddb5cb10f0acff5d6df8ee6e9791cad" args="" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">#define BOOST_XINT_OTHER_TYPE&nbsp;&nbsp;&nbsp;integer_t&lt;other&gt;</td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l00030">30</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#l02395">2395</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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -42,1772 +42,1864 @@
 <a name="l00021"></a>00021 <span class="preprocessor">#include &quot;<a class="code" href="internals_8hpp.html" title="Contains the internal definitions required for all XInt types.">detail/internals.hpp</a>&quot;</span>
 <a name="l00022"></a>00022 <span class="preprocessor">#include &quot;<a class="code" href="random_8hpp.html" title="Declares items relating to random numbers.">random.hpp</a>&quot;</span>
 <a name="l00023"></a>00023
-<a name="l00024"></a>00024 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00025"></a>00025 <span class="preprocessor"></span> <span class="comment">// The documentation should see a simplified version of the functions.</span>
-<a name="l00026"></a><a class="code" href="integer_8hpp.html#aa7c3e1efa96c7df6333940b38b2d7e5b">00026</a> <span class="preprocessor"> #define BOOST_XINT_INTEGER_INITIAL_TPL template&lt;...&gt;</span>
-<a name="l00027"></a><a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">00027</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_INTEGER_TPL template&lt;...&gt;</span>
-<a name="l00028"></a><a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">00028</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_INTEGER_TYPE integer_t</span>
-<a name="l00029"></a><a class="code" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">00029</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_OTHER_TPL template&lt;...&gt;</span>
-<a name="l00030"></a><a class="code" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">00030</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_OTHER_TYPE integer_t&lt;other&gt;</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_INTEGER_INITIAL_TPL template &lt; \</span>
-<a name="l00033"></a>00033 <span class="preprocessor"> class A0 = parameter::void_, \</span>
-<a name="l00034"></a>00034 <span class="preprocessor"> class A1 = parameter::void_, \</span>
-<a name="l00035"></a>00035 <span class="preprocessor"> class A2 = parameter::void_, \</span>
-<a name="l00036"></a>00036 <span class="preprocessor"> class A3 = parameter::void_, \</span>
-<a name="l00037"></a>00037 <span class="preprocessor"> class A4 = parameter::void_&gt;</span>
-<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_INTEGER_TPL template&lt;class A0, class A1, class A2, \</span>
-<a name="l00039"></a>00039 <span class="preprocessor"> class A3, class A4&gt;</span>
-<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_INTEGER_TYPE integer_t&lt;A0, A1, A2, A3, A4&gt;</span>
-<a name="l00041"></a>00041 <span class="preprocessor"></span>
-<a name="l00042"></a>00042 <span class="preprocessor"> #define BOOST_XINT_OTHER_TPL template &lt;class B0, class B1, class B2, class \</span>
-<a name="l00043"></a>00043 <span class="preprocessor"> B3, class B4&gt;</span>
-<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_OTHER_TYPE integer_t&lt;B0, B1, B2, B3, B4&gt;</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span>
-<a name="l00047"></a>00047 <span class="keyword">namespace </span>boost {
-<a name="l00048"></a>00048 <span class="keyword">namespace </span>xint {
-<a name="l00049"></a>00049
-<a name="l00100"></a>00100 <a class="code" href="integer_8hpp.html#aa7c3e1efa96c7df6333940b38b2d7e5b">BOOST_XINT_INTEGER_INITIAL_TPL</a>
-<a name="l00101"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html">00101</a> <span class="keyword">class </span><a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> {
-<a name="l00102"></a>00102 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00103"></a>00103 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keyword">typename</span> options::integer_signature::bind&lt;A0,A1,A2,A3,A4&gt;::type
-<a name="l00104"></a>00104 args;
-<a name="l00105"></a>00105 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::fixedlength_tag,
-<a name="l00106"></a>00106 <a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength.html">options::fixedlength&lt;0&gt;</a> &gt;::type BitsType;
-<a name="l00107"></a>00107 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::threadsafe_tag, mpl::true_&gt;::type
-<a name="l00108"></a>00108 ThreadsafeType;
-<a name="l00109"></a>00109 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::secure_tag, mpl::false_&gt;::type
-<a name="l00110"></a>00110 SecureType;
-<a name="l00111"></a>00111 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::nothrow_tag, mpl::false_&gt;::type
-<a name="l00112"></a>00112 NothrowType;
-<a name="l00113"></a>00113 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<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="l00052"></a>00052 <span class="keyword">template</span>&lt;BOOST_XINT_INITIAL_APARAMS&gt;
+<a name="l00053"></a>00053 <span class="keyword">class </span>integer_t: <span class="keyword">virtual</span> <span class="keyword">public</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;,
+<a name="l00054"></a>00054 <span class="keyword">public</span> detail::nan_functions&lt;detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::
+<a name="l00055"></a>00055 NothrowType::value, integer_t&lt;BOOST_XINT_APARAMS&gt;, BOOST_XINT_APARAMS&gt;,
+<a name="l00056"></a>00056 <span class="keyword">public</span> detail::fixed_functions&lt;detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::
+<a name="l00057"></a>00057 BitsType::value, integer_t&lt;BOOST_XINT_APARAMS&gt;, BOOST_XINT_APARAMS&gt;, <span class="keyword">public</span>
+<a name="l00058"></a>00058 detail::unsigned_negative_functions&lt;detail::integer_t_data&lt;
+<a name="l00059"></a>00059 BOOST_XINT_APARAMS&gt;::SignType::value, BOOST_XINT_APARAMS&gt;
+<a name="l00060"></a>00060 {
+<a name="l00061"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">00061</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::BitsType
+<a name="l00062"></a>00062 BitsType;
+<a name="l00063"></a>00063 <span class="keyword">typedef</span> <span class="keyword">typename</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::SecureType
+<a name="l00064"></a>00064 SecureType;
+<a name="l00065"></a>00065 <span class="keyword">typedef</span> <span class="keyword">typename</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::SignType
+<a name="l00066"></a>00066 SignType;
+<a name="l00067"></a>00067 <span class="keyword">typedef</span> <span class="keyword">typename</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Alloc Alloc;
+<a name="l00068"></a>00068
+<a name="l00069"></a>00069 <span class="keyword">public</span>:
+<a name="l00070"></a>00070 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00071"></a>00071 <span class="preprocessor"></span> <span class="keyword">typedef</span> <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> type;
+<a name="l00072"></a>00072 <span class="keyword">typedef</span> void (<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>::*safe_bool_type)() <span class="keyword">const</span>;
+<a name="l00073"></a>00073 <span class="keywordtype">void</span> this_is_a_safe_bool_type()<span class="keyword"> const </span>{ }
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="keyword">typedef</span> <span class="keyword">typename</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype
+<a name="l00076"></a>00076 datatype;
+<a name="l00077"></a>00077
+<a name="l00078"></a>00078 <span class="keyword">using</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Threadsafe;
+<a name="l00079"></a>00079 <span class="keyword">using</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Nothrow;
+<a name="l00080"></a>00080 <span class="keyword">using</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Signed;
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 <span class="keyword">using</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data;
+<a name="l00083"></a>00083 <span class="keyword">using</span> detail::integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data;
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 <span class="keyword">using</span> <span class="keyword">typename</span> detail::nan_functions&lt;detail::integer_t_data&lt;
+<a name="l00086"></a>00086 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;::NothrowType::value, <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a>&lt;
+<a name="l00087"></a>00087 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;<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="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="keyword">using</span> <span class="keyword">typename</span> detail::unsigned_negative_functions&lt;detail::integer_t_data&lt;
+<a name="l00090"></a>00090 <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;::SignType::value, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;::
+<a name="l00091"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a814624f6d9c27ec161e9c62f4536744c">00091</a> _fix_negative_unsigned;
+<a name="l00092"></a>00092 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00093"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a3d53ce69522ec4ce4b109e7c7daab6cd">00093</a> <span class="preprocessor"></span>
+<a name="l00096"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#abe691a26ef01695197d98d01822ea764">00096</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>();
+<a name="l00097"></a>00097 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; b, <span class="keywordtype">bool</span> force_thread_safety =
+<a name="l00098"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">00098</a> <span class="keyword">false</span>);
+<a name="l00099"></a>00099 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(type) b) { _swap(b); }
+<a name="l00100"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a6c76aafd3555337a904e8eb4d22fdd92">00100</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
+<a name="l00101"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aca07c09238db36a0841c9ddb8f536571">00101</a> <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> charT *str, std::size_t base = 10);
+<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 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> charT *str, <span class="keyword">const</span> charT*&amp; endptr, std::size_t base = 10);
+<a name="l00104"></a>00104 <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="l00105"></a>00105 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> std::basic_string&lt;charT, traitsT, allocT&gt;&amp; str,
+<a name="l00106"></a>00106 std::size_t base = 10);
+<a name="l00107"></a>00107 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits = 0);
+<a name="l00108"></a>00108 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_BPARAMS&gt; <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span>
+<a name="l00109"></a>00109 <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_BPARAMS&gt;</a>&amp; other, <span class="keywordtype">bool</span> force_thread_safety = <span class="keyword">false</span>);
+<a name="l00110"></a>00110 <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</a>(<span class="keyword">const</span> Type n, <span class="keyword">typename</span>
+<a name="l00111"></a>00111 boost::enable_if&lt;boost::is_integral&lt;Type&gt; &gt;::type* = 0);
+<a name="l00112"></a>00112
+<a name="l00113"></a>00113 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
 <a name="l00114"></a>00114 <span class="preprocessor"></span>
-<a name="l00115"></a>00115 <span class="keyword">public</span>:
-<a name="l00116"></a>00116 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00117"></a>00117 <span class="preprocessor"></span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> Bits;
-<a name="l00118"></a>00118 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> Threadsafe, Secure, Nothrow;
-<a name="l00119"></a>00119 <span class="keyword">typedef</span> <span class="keyword">typename</span> binding&lt;args, tag::allocator_tag,
-<a name="l00120"></a>00120 std::allocator&lt;detail::digit_t&gt; &gt;::type Alloc;
-<a name="l00121"></a>00121 <span class="keyword">typedef</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> type;
-<a name="l00122"></a>00122 <span class="keyword">typedef</span> detail::raw_integer_t&lt;BitsType::value, SecureType::value, Alloc&gt;
-<a name="l00123"></a>00123 datatype;
-<a name="l00124"></a>00124 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00125"></a>00125 <span class="preprocessor"></span>
-<a name="l00128"></a>00128 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>();
-<a name="l00129"></a>00129 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; b, <span class="keywordtype">bool</span> force_thread_safety =
-<a name="l00130"></a>00130 <span class="keyword">false</span>);
-<a name="l00131"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">00131</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a3e00410a0d4c027e51d9377cd8e469c8">integer_t</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(type) b) { _swap(b); }
-<a name="l00132"></a>00132 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00133"></a>00133 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> charT *str, std::size_t base = 10);
-<a name="l00134"></a>00134 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00135"></a>00135 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> charT *str, <span class="keyword">const</span> charT*&amp; endptr, std::size_t base = 10);
-<a name="l00136"></a>00136 <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="l00137"></a>00137 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> std::basic_string&lt;charT, traitsT, allocT&gt;&amp; str,
-<a name="l00138"></a>00138 std::size_t base = 10);
-<a name="l00139"></a>00139 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits = 0);
-<a name="l00140"></a>00140 <a class="code" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">BOOST_XINT_OTHER_TPL</a> <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">BOOST_XINT_OTHER_TYPE</a>&amp; other,
-<a name="l00141"></a>00141 <span class="keywordtype">bool</span> force_thread_safety = <span class="keyword">false</span>);
-<a name="l00142"></a>00142 <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</a>(<span class="keyword">const</span> Type n,
-<a name="l00143"></a>00143 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;Type&gt; &gt;::type* = 0);
-<a name="l00144"></a>00144
-<a name="l00145"></a>00145 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00146"></a>00146 <span class="preprocessor"></span>
-<a name="l00147"></a>00147 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> detail::raw_integer_t&lt;BitsType::value,
-<a name="l00148"></a>00148 SecureType::value, Alloc&gt; c): data(c) { <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>)
-<a name="l00149"></a>00149 data.make_unique(); }
-<a name="l00150"></a>00150 <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> detail::raw_integer_t&lt;BitsType::value, SecureType::value,
-<a name="l00151"></a>00151 Alloc&gt; c, <span class="keywordtype">bool</span> negative): data(c, negative) { <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>)
-<a name="l00152"></a>00152 data.make_unique(); }
-<a name="l00153"></a>00153 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00154"></a>00154 <span class="preprocessor"></span>
+<a name="l00115"></a>00115 <span class="keyword">explicit</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb" title="Creates a new integer with an initial value of zero.">integer_t</a>(<span class="keyword">const</span> detail::raw_integer_t&lt;BitsType::value,
+<a name="l00116"></a>00116 SecureType::value, Alloc&gt; c):
+<a name="l00117"></a>00117 detail::integer_t_data&lt;<a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;(c) { <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>)
+<a name="l00118"></a>00118 _data().make_unique(); }
+<a name="l00119"></a>00119 <span class="preprocessor"> #endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00120"></a>00120 <span class="preprocessor"></span>
+<a name="l00121"></a>00121
+<a name="l00127"></a>00127 <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">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(type)
+<a name="l00128"></a>00128 c);
+<a name="l00129"></a>00129 <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">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(type) c) {
+<a name="l00130"></a>00130 _swap(c); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00131"></a>00131 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Type&gt; integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a93ba1fe786ab3fb9be1914e64414edd9">operator=</a>(<span class="keyword">const</span> Type
+<a name="l00132"></a>00132 n) { integer_t&lt;BOOST_XINT_APARAMS&gt; nn(n); _swap(nn); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00133"></a>00133
+<a name="l00134"></a>00134 <a class="code" href="classboost_1_1xint_1_1integer__t.html#abe691a26ef01695197d98d01822ea764">operator safe_bool_type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (data.is_zero() ? 0 :
+<a name="l00135"></a>00135 &amp;integer_t&lt;BOOST_XINT_APARAMS&gt;::this_is_a_safe_bool_type); }
+<a name="l00136"></a>00136 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">operator!</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.is_zero(); }
+<a name="l00137"></a>00137 integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#aae82da97e52646d4fe5dbc08ddd60d3f" title="Return the additive inverse of an integer.">operator-</a>() <span class="keyword">const</span>;
+<a name="l00138"></a>00138 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6c76aafd3555337a904e8eb4d22fdd92">operator+</a>() { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00139"></a>00139 <span class="keyword">const</span> integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6c76aafd3555337a904e8eb4d22fdd92">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00140"></a>00140
+<a name="l00141"></a>00141 <span class="preprocessor"> #ifdef BOOST_XINT_DOXYGEN_IGNORE // inherited, only here for doxygen</span>
+<a name="l00142"></a>00142 <span class="preprocessor"></span> integer_t&lt;BOOST_XINT_APARAMS&gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7553f83abb87e24c0448f4c7f191bdac" title="The Bitwise Ones Complement (i.e. bitwise NOT) operator.">operator~</a>() <span class="keyword">const</span>;
+<a name="l00143"></a>00143 <span class="preprocessor"> #endif</span>
+<a name="l00144"></a>00144 <span class="preprocessor"></span>
+<a name="l00145"></a>00145 integer_t&lt;BOOST_XINT_APARAMS&gt;&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ad4428b8fa904a3147ffc3467aa624836">operator+=</a>(<span class="keyword">const</span>
+<a name="l00146"></a>00146 integer_t&lt;BOOST_XINT_APARAMS&gt; b);
+<a name="l00147"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ade3856e01013fca6b126ad4336e2baa1">00147</a> <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">operator-=</a>(<span class="keyword">const</span>
+<a name="l00148"></a>00148 <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="l00149"></a>00149 <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">operator*=</a>(<span class="keyword">const</span>
+<a name="l00150"></a>00150 <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="l00151"></a>00151 <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">operator/=</a>(<span class="keyword">const</span>
+<a name="l00152"></a>00152 <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="l00153"></a>00153 <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">operator%=</a>(<span class="keyword">const</span>
+<a name="l00154"></a>00154 <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="l00155"></a>00155
-<a name="l00161"></a>00161 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(type) c);
-<a name="l00162"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae8aaa078191d16525cfb8c97d9f5f401">00162</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ae8aaa078191d16525cfb8c97d9f5f401">operator=</a>(<a class="code" href="basic__types__and__includes_8hpp.html#a0533c283bce9e4d9468ea9b3a5ab509b">BOOST_XINT_RV_REF</a>(type) c) {
-<a name="l00163"></a>00163 _swap(c); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00164"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a7798d6022dd3478a10b35b094347c95f">00164</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Type&gt; <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7798d6022dd3478a10b35b094347c95f">operator=</a>(<span class="keyword">const</span> Type n) {
-<a name="l00165"></a>00165 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> nn(n); _swap(nn); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00166"></a>00166
-<a name="l00167"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">00167</a> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac15850352ec856e1a380209214cf8563">operator!</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.is_zero(); }
-<a name="l00168"></a>00168 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2" title="Return the additive inverse of an integer.">operator-</a>() <span class="keyword">const</span>;
-<a name="l00169"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">00169</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a641a730bbcc4e4191db4fcf753dd3d18">operator+</a>() { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00170"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a9c772faa5bee3403bed32e1d7c44f51b">00170</a> <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a9c772faa5bee3403bed32e1d7c44f51b">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00171"></a>00171 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1" title="The Bitwise Ones&amp;#39; Complement (i.e. bitwise NOT) operator.">operator~</a>() <span class="keyword">const</span>;
+<a name="l00156"></a>00156 <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">operator++</a>();
+<a name="l00157"></a>00157 <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#a56da9c00309b56a53b267ef477e80634">operator--</a>();
+<a name="l00158"></a>00158 <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#a181f8d37a64f300f92e860391b024d47">operator++</a>(<span class="keywordtype">int</span>);
+<a name="l00159"></a>00159 <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#a56da9c00309b56a53b267ef477e80634">operator--</a>(<span class="keywordtype">int</span>);
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 <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">operator&amp;=</a>(<span class="keyword">const</span>
+<a name="l00162"></a>00162 <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="l00163"></a>00163 <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">operator|=</a>(<span class="keyword">const</span>
+<a name="l00164"></a>00164 <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="l00165"></a>00165 <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">operator^=</a>(<span class="keyword">const</span>
+<a name="l00166"></a>00166 <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="l00167"></a>00167 <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#a4ad69f2d49b7a5ca73181b168639ed49" title="Left-shift an integer by a specified number of bits.">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="l00168"></a>00168 <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#a8e43feeaa7f1050942fb68d10d65bc62" title="Right-shift an integer by a specified number of bits.">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="l00169"></a>00169 <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#a1cb134ca3fdad8c6a73a1a23b6291f9d">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="l00170"></a>00170 <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#a5ac850673a52efdc33e036f02e556b65">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="l00172"></a>00172
-<a name="l00173"></a>00173 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">operator+=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00174"></a>00174 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">operator-=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00175"></a>00175 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">operator*=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00176"></a>00176 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">operator/=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00177"></a>00177 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">operator%=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b);
-<a name="l00178"></a>00178
-<a name="l00179"></a>00179 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">operator++</a>();
-<a name="l00180"></a>00180 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">operator--</a>();
-<a name="l00181"></a>00181 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">operator++</a>(<span class="keywordtype">int</span>);
-<a name="l00182"></a>00182 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">operator--</a>(<span class="keywordtype">int</span>);
-<a name="l00183"></a>00183
-<a name="l00184"></a>00184 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">operator&amp;=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n);
-<a name="l00185"></a>00185 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">operator|=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n);
-<a name="l00186"></a>00186 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">operator^=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n);
-<a name="l00187"></a>00187 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005" title="Left-shift an integer by a specified number of bits.">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="l00188"></a>00188 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8" title="Right-shift an integer by a specified number of bits.">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="l00189"></a>00189 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">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="l00190"></a>00190 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; <a class="code" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">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="l00192"></a>00192
-<a name="l00195"></a>00195 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a28c1cf2549da47e36ada1e3a2a020654" title="Tests the lowest bit of *this to determine oddness.">is_odd</a>() <span class="keyword">const</span>;
-<a name="l00196"></a>00196 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#af7d57cc73521c4d72bc853435127b790" title="Tests the lowest bit of *this to determine evenness.">is_even</a>() <span class="keyword">const</span>;
-<a name="l00197"></a>00197 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>() <span class="keyword">const</span>;
-<a name="l00198"></a>00198 <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3" title="Tests the sign of *this.">sign</a>(<span class="keywordtype">bool</span> signed_zero = <span class="keyword">false</span>) <span class="keyword">const</span>;
-<a name="l00199"></a>00199 std::size_t <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6575f1fd58be6bf73145459b4b46afbb" title="Tells you roughly how large *this is.">hex_digits</a>() <span class="keyword">const</span>;
-<a name="l00201"></a>00201
-<a name="l00202"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a1c701a8337c775e18c26759d55398b58">00202</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t&lt;BOOST_XINT_INTEGER_TYPE &gt;</a> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">divide_t</a>;
-<a name="l00203"></a>00203
-<a name="l00211"></a>00211
-<a name="l00212"></a>00212 <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a5d14ff656a3464ecf2e81d490f1acb76" title="Calculate the value of 2e">pow2</a>(std::size_t exponent);
-<a name="l00213"></a>00213 <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7bc8e4868073626d1ea0dc7e9668f6e0" title="Calculate the value of n! ">factorial</a>(std::size_t n);
-<a name="l00214"></a>00214 <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00215"></a>00215 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt; <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2" title="Generates a random integer with specific attributes.">random_by_size</a>(Type&amp;
-<a name="l00216"></a>00216 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="keyword">false</span>, <span class="keywordtype">bool</span> low_bit_on =
-<a name="l00217"></a>00217 <span class="keyword">false</span>, <span class="keywordtype">bool</span> can_be_negative = <span class="keyword">false</span>);
-<a name="l00218"></a>00218 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt; <span class="keyword">static</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">random_prime</a>(Type&amp; gen,
-<a name="l00219"></a>00219 <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 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="l00175"></a>00175 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a28c1cf2549da47e36ada1e3a2a020654" title="Tests the lowest bit of *this to determine oddness.">is_odd</a>() <span class="keyword">const</span>;
+<a name="l00176"></a>00176 <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#af7d57cc73521c4d72bc853435127b790" title="Tests the lowest bit of *this to determine evenness.">is_even</a>() <span class="keyword">const</span>;
+<a name="l00177"></a>00177 <span class="keywordtype">int</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3" title="Tests the sign of *this.">sign</a>(<span class="keywordtype">bool</span> signed_zero = <span class="keyword">false</span>) <span class="keyword">const</span>;
+<a name="l00178"></a>00178 std::size_t <a class="code" href="classboost_1_1xint_1_1integer__t.html#a6575f1fd58be6bf73145459b4b46afbb" title="Tells you roughly how large *this is.">hex_digits</a>() <span class="keyword">const</span>;
+<a name="l00179"></a>00179
+<a name="l00180"></a>00180 <span class="preprocessor"> #ifdef BOOST_XINT_DOXYGEN_IGNORE // inherited, only here for doxygen</span>
+<a name="l00181"></a>00181 <span class="preprocessor"></span> <span class="keywordtype">bool</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5" title="Tests whether the object is a Not-a-Number.">is_nan</a>() <span class="keyword">const</span>;
+<a name="l00182"></a>00182 <span class="preprocessor"> #endif</span>
+<a name="l00183"></a>00183 <span class="preprocessor"></span>
+<a name="l00184"></a>00184
+<a name="l00185"></a>00185 <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">base_divide_t&lt;integer_t&lt;BOOST_XINT_APARAMS&gt;</a> &gt; <a class="code" href="classboost_1_1xint_1_1base__divide__t.html" title="Holds the results from a division-with-remainder call.">divide_t</a>;
+<a name="l00186"></a>00186
+<a name="l00194"></a>00194
+<a name="l00195"></a>00195 <span class="keyword">static</span> <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#af1ba624cd3a118bad2f8b603837bd952" title="Calculate the value of 2e">pow2</a>(std::size_t exponent);
+<a name="l00196"></a>00196 <span class="keyword">static</span> <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#aaa28dad29e0a3fd16ec4bb26ec241a65" title="Calculate the value of n! ">factorial</a>(std::size_t n);
+<a name="l00197"></a>00197
+<a name="l00198"></a>00198 <span class="preprocessor"> #ifdef BOOST_XINT_DOXYGEN_IGNORE // inherited, only here for doxygen</span>
+<a name="l00199"></a>00199 <span class="preprocessor"></span> <span class="keyword">static</span> <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#ac2e125b88a17f8c4e4c0b760ee1e9962" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
+<a name="l00200"></a>00200 <span class="preprocessor"> #endif</span>
+<a name="l00201"></a>00201 <span class="preprocessor"></span>
+<a name="l00202"></a>00202 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt; <span class="keyword">static</span> <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="l00203"></a>00203 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">random_by_size</a>(Type&amp; 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 =
+<a name="l00204"></a>00204 <span class="keyword">false</span>, <span class="keywordtype">bool</span> low_bit_on = <span class="keyword">false</span>, <span class="keywordtype">bool</span> can_be_negative = <span class="keyword">false</span>);
+<a name="l00205"></a>00205 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt; <span class="keyword">static</span> <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="l00206"></a>00206 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">random_prime</a>(Type&amp; 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="l00207"></a>00207 <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="l00209"></a>00209
+<a name="l00210"></a>00210 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00211"></a>00211 <span class="preprocessor"></span>
+<a name="l00212"></a>00212
+<a name="l00213"></a>00213 <span class="keywordtype">void</span> _swap(<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; s) { <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">std::swap</a>;
+<a name="l00214"></a>00214 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(data, s.data); }
+<a name="l00216"></a>00216 <span class="preprocessor"> #endif</span>
+<a name="l00217"></a>00217 <span class="preprocessor"></span>
+<a name="l00218"></a>00218 <span class="keyword">private</span>:
+<a name="l00219"></a>00219 <a class="code" href="basic__types__and__includes_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">BOOST_XINT_COPYABLE_AND_MOVABLE</a>(type)
+<a name="l00220"></a>00220 };
 <a name="l00221"></a>00221
-<a name="l00222"></a>00222 <span class="preprocessor"> #ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00223"></a>00223 <span class="preprocessor"></span>
-<a name="l00224"></a>00224
-<a name="l00225"></a>00225 <span class="keywordtype">void</span> _swap(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; s) { <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
-<a name="l00226"></a>00226 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(data, s.data); }
-<a name="l00227"></a>00227 datatype&amp; _data() { <span class="keywordflow">return</span> data; }
-<a name="l00228"></a>00228 <span class="keyword">const</span> datatype&amp; _data()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }
-<a name="l00229"></a>00229 std::size_t _get_length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.length; }
-<a name="l00230"></a>00230 detail::digit_t _get_digit(std::size_t i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data[i]; }
-<a name="l00231"></a>00231 <span class="keywordtype">void</span> _make_unique() { data.make_unique(); }
-<a name="l00233"></a>00233 <span class="preprocessor"> #endif</span>
-<a name="l00234"></a>00234 <span class="preprocessor"></span>
-<a name="l00235"></a>00235 <span class="keyword">private</span>:
-<a name="l00236"></a>00236 datatype data;
-<a name="l00237"></a>00237
-<a name="l00238"></a>00238 <a class="code" href="basic__types__and__includes_8hpp.html#a5f5634ec80010f0f87b93320fa3419f9">BOOST_XINT_COPYABLE_AND_MOVABLE</a>(type)
-<a name="l00239"></a>00239 };
-<a name="l00240"></a>00240
-<a name="l00241"></a>00241 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00242"></a>00242 <span class="preprocessor"></span><a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00243"></a>00243 <span class="keyword">const</span> <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> BOOST_XINT_INTEGER_TYPE::Bits =
-<a name="l00244"></a>00244 BOOST_XINT_INTEGER_TYPE::BitsType::value;
-<a name="l00245"></a>00245 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00246"></a>00246 <span class="keyword">const</span> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::Threadsafe =
-<a name="l00247"></a>00247 BOOST_XINT_INTEGER_TYPE::ThreadsafeType::value;
-<a name="l00248"></a>00248 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00249"></a>00249 <span class="keyword">const</span> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::Secure =
-<a name="l00250"></a>00250 BOOST_XINT_INTEGER_TYPE::SecureType::value;
-<a name="l00251"></a>00251 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00252"></a>00252 <span class="keyword">const</span> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::Nothrow =
-<a name="l00253"></a>00253 BOOST_XINT_INTEGER_TYPE::NothrowType::value;
-<a name="l00254"></a>00254 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l00255"></a>00255 <span class="preprocessor"></span>
-<a name="l00257"></a>00257 <span class="comment">// Member function template definitions</span>
-<a name="l00258"></a>00258
-<a name="l00260"></a>00260 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00261"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb">00261</a> BOOST_XINT_INTEGER_TYPE::integer_t() {
-<a name="l00262"></a>00262 <span class="comment">// Don&#39;t need to do anything, already preinitialized to zero.</span>
-<a name="l00263"></a>00263 }
-<a name="l00264"></a>00264
-<a name="l00275"></a>00275 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00276"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a6735b1926fb31c09537fb8f2bcc243ef">00276</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; b, <span class="keywordtype">bool</span>
-<a name="l00277"></a>00277 force_thread_safety)
-<a name="l00278"></a>00278 {
-<a name="l00279"></a>00279 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00280"></a>00280 <span class="keywordflow">try</span> {
-<a name="l00281"></a>00281 data = b.data;
-<a name="l00282"></a>00282 <span class="keywordflow">if</span> (!data.is_nan()) {
-<a name="l00283"></a>00283 <span class="keywordflow">if</span> (force_thread_safety &amp;&amp; Threadsafe == <span class="keyword">false</span>)
-<a name="l00284"></a>00284 data.make_unique();
-<a name="l00285"></a>00285 }
-<a name="l00286"></a>00286 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00287"></a>00287 data.make_nan();
-<a name="l00288"></a>00288 }
-<a name="l00289"></a>00289 } <span class="keywordflow">else</span> {
-<a name="l00290"></a>00290 data = b.data;
-<a name="l00291"></a>00291 <span class="keywordflow">if</span> (force_thread_safety &amp;&amp; Threadsafe == <span class="keyword">false</span>) data.make_unique();
-<a name="l00292"></a>00292 }
-<a name="l00293"></a>00293 }
-<a name="l00294"></a>00294
-<a name="l00296"></a>00296 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00297"></a>00297 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00298"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a5de9d56709084eaadff6ab850540a49a">00298</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> charT *str, std::size_t base) {
-<a name="l00299"></a>00299 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00300"></a>00300 <span class="keywordflow">try</span> {
-<a name="l00301"></a>00301 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; tnan = detail::nan_text&lt;charT&gt;();
-<a name="l00302"></a>00302 <span class="keywordflow">if</span> (str[0] == tnan[0] &amp;&amp; std::basic_string&lt;charT&gt;(str) == tnan) {
-<a name="l00303"></a>00303 data.make_nan();
-<a name="l00304"></a>00304 } <span class="keywordflow">else</span> {
-<a name="l00305"></a>00305 data.from_string(str, base);
-<a name="l00306"></a>00306 }
-<a name="l00307"></a>00307 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00308"></a>00308 data.make_nan();
-<a name="l00309"></a>00309 }
-<a name="l00310"></a>00310 } <span class="keywordflow">else</span> {
-<a name="l00311"></a>00311 data.from_string(str, base);
-<a name="l00312"></a>00312 }
-<a name="l00313"></a>00313 }
-<a name="l00314"></a>00314
-<a name="l00343"></a>00343 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00344"></a>00344 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00345"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae8664e360188ac17e750a6b82ed99c02">00345</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> charT *str, <span class="keyword">const</span> charT*&amp; endptr,
-<a name="l00346"></a>00346 std::size_t base)
-<a name="l00347"></a>00347 {
-<a name="l00348"></a>00348 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00349"></a>00349 <span class="keywordflow">try</span> {
-<a name="l00350"></a>00350 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; tnan = detail::nan_text&lt;charT&gt;();
-<a name="l00351"></a>00351 <span class="keywordflow">if</span> (str[0] == tnan[0]) {
-<a name="l00352"></a>00352 std::basic_string&lt;charT&gt; s(str);
-<a name="l00353"></a>00353 <span class="keywordflow">if</span> (s.substr(0, tnan.length()) == tnan) {
-<a name="l00354"></a>00354 data.make_nan();
-<a name="l00355"></a>00355 endptr = str + tnan.length();
-<a name="l00356"></a>00356 <span class="keywordflow">return</span>;
-<a name="l00357"></a>00357 }
-<a name="l00358"></a>00358 }
-<a name="l00359"></a>00359 data.from_string(str, endptr, base);
-<a name="l00360"></a>00360 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00361"></a>00361 data.make_nan();
-<a name="l00362"></a>00362 }
-<a name="l00363"></a>00363 } <span class="keywordflow">else</span> {
-<a name="l00364"></a>00364 data.from_string(str, endptr, base);
-<a name="l00365"></a>00365 }
-<a name="l00366"></a>00366 }
-<a name="l00367"></a>00367
-<a name="l00392"></a>00392 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00393"></a>00393 <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="l00394"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aec9ec56bb858d83cb4fbcdeac3cee9a8">00394</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> std::basic_string&lt;charT, traitsT,
-<a name="l00395"></a>00395 allocT&gt;&amp; str, std::size_t base)
-<a name="l00396"></a>00396 {
-<a name="l00397"></a>00397 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00398"></a>00398 <span class="keywordflow">try</span> {
-<a name="l00399"></a>00399 <span class="keywordflow">if</span> (str == detail::nan_text&lt;charT&gt;()) data.make_nan();
-<a name="l00400"></a>00400 <span class="keywordflow">else</span> data.from_string(str, base);
-<a name="l00401"></a>00401 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00402"></a>00402 data.make_nan();
-<a name="l00403"></a>00403 }
-<a name="l00404"></a>00404 } <span class="keywordflow">else</span> {
-<a name="l00405"></a>00405 data.from_string(str, base);
-<a name="l00406"></a>00406 }
-<a name="l00407"></a>00407 }
-<a name="l00408"></a>00408
-<a name="l00430"></a>00430 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00431"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a864a599e2de326e6e339ffc820fd849e">00431</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> b, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits) {
-<a name="l00432"></a>00432 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00433"></a>00433 <span class="keywordflow">try</span> {
-<a name="l00434"></a>00434 data.from_binary(b, bits);
-<a name="l00435"></a>00435 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00436"></a>00436 data.make_nan();
-<a name="l00437"></a>00437 }
-<a name="l00438"></a>00438 } <span class="keywordflow">else</span> {
-<a name="l00439"></a>00439 data.from_binary(b, bits);
-<a name="l00440"></a>00440 }
-<a name="l00441"></a>00441 }
-<a name="l00442"></a>00442
-<a name="l00455"></a>00455 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00456"></a>00456 <a class="code" href="integer_8hpp.html#a29684216936e84f92ac88714348ca53b">BOOST_XINT_OTHER_TPL</a>
-<a name="l00457"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#afcc80aaf55194eca5926d7a6d52489f0">00457</a> BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4ddb5cb10f0acff5d6df8ee6e9791cad">BOOST_XINT_OTHER_TYPE</a>&amp; b, <span class="keywordtype">bool</span>
-<a name="l00458"></a>00458 force_thread_safety)
-<a name="l00459"></a>00459 {
-<a name="l00460"></a>00460 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00461"></a>00461 <span class="keywordflow">try</span> {
-<a name="l00462"></a>00462 <span class="keywordflow">if</span> (b.is_nan()) {
-<a name="l00463"></a>00463 data.make_nan();
-<a name="l00464"></a>00464 } <span class="keywordflow">else</span> {
-<a name="l00465"></a>00465 data = b._data();
-<a name="l00466"></a>00466 <span class="keywordflow">if</span> (!data.is_nan() &amp;&amp; force_thread_safety &amp;&amp; Threadsafe ==
-<a name="l00467"></a>00467 <span class="keyword">false</span>) data.make_unique();
-<a name="l00468"></a>00468 }
-<a name="l00469"></a>00469 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00470"></a>00470 data.make_nan();
-<a name="l00471"></a>00471 }
-<a name="l00472"></a>00472 } <span class="keywordflow">else</span> {
-<a name="l00473"></a>00473 <span class="keywordflow">if</span> (b._data().is_nan()) <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">exceptions::not_a_number</a>();
-<a name="l00474"></a>00474 data = b._data();
-<a name="l00475"></a>00475 <span class="keywordflow">if</span> (force_thread_safety &amp;&amp; Threadsafe == <span class="keyword">false</span>) data.make_unique();
-<a name="l00476"></a>00476 }
-<a name="l00477"></a>00477 }
-<a name="l00478"></a>00478
-<a name="l00491"></a>00491 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00492"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ad159c2201f2cf1e1de1988cc41f8b4eb">00492</a> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Type&gt; BOOST_XINT_INTEGER_TYPE::integer_t(<span class="keyword">const</span> Type n,
-<a name="l00493"></a>00493 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;Type&gt; &gt;::type*)
+<a name="l00223"></a>00223 <span class="comment">// Member function template definitions</span>
+<a name="l00224"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adc039392b5197a0ebd69b5744ee420eb">00224</a>
+<a name="l00226"></a>00226 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00227"></a>00227 <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>() {
+<a name="l00228"></a>00228 <span class="comment">// Don&#39;t need to do anything, already preinitialized to zero.</span>
+<a name="l00229"></a>00229 }
+<a name="l00230"></a>00230
+<a name="l00241"></a>00241 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00242"></a>00242 <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="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;BOOST_XINT_APARAMS&gt;</a>&amp; b,
+<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="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="l00253"></a>00253 data.make_nan();
+<a name="l00254"></a>00254 }
+<a name="l00255"></a>00255 } <span class="keywordflow">else</span> {
+<a name="l00256"></a>00256 data = b.data;
+<a name="l00257"></a>00257 <span class="keywordflow">if</span> (force_thread_safety &amp;&amp; Threadsafe == <span class="keyword">false</span>) data.make_unique();
+<a name="l00258"></a>00258 }
+<a name="l00259"></a>00259 }
+<a name="l00260"></a>00260
+<a name="l00262"></a>00262 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<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="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();
+<a name="l00270"></a>00270 } <span class="keywordflow">else</span> {
+<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="l00275"></a>00275 data.make_nan();
+<a name="l00276"></a>00276 }
+<a name="l00277"></a>00277 } <span class="keywordflow">else</span> {
+<a name="l00278"></a>00278 data.from_string(str, base);
+<a name="l00279"></a>00279 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00280"></a>00280 }
+<a name="l00281"></a>00281 }
+<a name="l00282"></a>00282
+<a name="l00311"></a>00311 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00312"></a>00312 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
+<a name="l00313"></a>00313 <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, <span class="keyword">const</span> charT*&amp; endptr,
+<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="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);
+<a name="l00321"></a>00321 <span class="keywordflow">if</span> (s.substr(0, tnan.length()) == tnan) {
+<a name="l00322"></a>00322 data.make_nan();
+<a name="l00323"></a>00323 endptr = str + tnan.length();
+<a name="l00324"></a>00324 <span class="keywordflow">return</span>;
+<a name="l00325"></a>00325 }
+<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="l00330"></a>00330 data.make_nan();
+<a name="l00331"></a>00331 }
+<a name="l00332"></a>00332 } <span class="keywordflow">else</span> {
+<a name="l00333"></a>00333 data.from_string(str, endptr, base);
+<a name="l00334"></a>00334 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00335"></a>00335 }
+<a name="l00336"></a>00336 }
+<a name="l00337"></a>00337
+<a name="l00362"></a>00362 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00363"></a>00363 <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="l00364"></a>00364 <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> std::basic_string&lt;charT, traitsT,
+<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="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="l00375"></a>00375 data.make_nan();
+<a name="l00376"></a>00376 }
+<a name="l00377"></a>00377 } <span class="keywordflow">else</span> {
+<a name="l00378"></a>00378 data.from_string(str, base);
+<a name="l00379"></a>00379 <span class="keywordflow">if</span> (!Signed &amp;&amp; data.negative) _fix_negative_unsigned();
+<a name="l00380"></a>00380 }
+<a name="l00381"></a>00381 }
+<a name="l00382"></a>00382
+<a name="l00404"></a>00404 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<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="l00409"></a>00409 data.from_binary(b, bits);
+<a name="l00410"></a>00410 } <span class="keywordflow">catch</span> (std::exception&amp;) {
+<a name="l00411"></a>00411 data.make_nan();
+<a name="l00412"></a>00412 }
+<a name="l00413"></a>00413 } <span class="keywordflow">else</span> {
+<a name="l00414"></a>00414 data.from_binary(b, bits);
+<a name="l00415"></a>00415 }
+<a name="l00416"></a>00416 }
+<a name="l00417"></a>00417
+<a name="l00430"></a>00430 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00431"></a>00431 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_BPARAMS&gt;
+<a name="l00432"></a>00432 <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> integer_t&lt;BOOST_XINT_BPARAMS&gt;&amp; b,
+<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="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> {
+<a name="l00440"></a>00440 data = b._data();
+<a name="l00441"></a>00441 <span class="keywordflow">if</span> (!data.is_nan()) {
+<a name="l00442"></a>00442 <span class="keywordflow">if</span> (force_thread_safety &amp;&amp; Threadsafe == <span class="keyword">false</span>)
+<a name="l00443"></a>00443 data.make_unique();
+<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="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">try</span> {
-<a name="l00497"></a>00497 <span class="keywordflow">if</span> (std::numeric_limits&lt;Type&gt;::is_signed) data.set_signed(n);
-<a name="l00498"></a>00498 <span class="keywordflow">else</span> data.set_unsigned(n);
-<a name="l00499"></a>00499 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00500"></a>00500 data.make_nan();
-<a name="l00501"></a>00501 }
-<a name="l00502"></a>00502 } <span class="keywordflow">else</span> {
-<a name="l00503"></a>00503 <span class="keywordflow">if</span> (std::numeric_limits&lt;Type&gt;::is_signed) data.set_signed(n);
-<a name="l00504"></a>00504 <span class="keywordflow">else</span> data.set_unsigned(n);
-<a name="l00505"></a>00505 }
-<a name="l00506"></a>00506 }
-<a name="l00507"></a>00507
-<a name="l00508"></a>00508 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00509"></a>00509 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::
-<a name="l00510"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#abc18fd9b5fce57c1824f3da24eae0d95">00510</a> operator=(<a class="code" href="basic__types__and__includes_8hpp.html#a8177a6a6c68ea042f7e644d8ef7128f9">BOOST_XINT_COPY_ASSIGN_REF</a>(type) c)
-<a name="l00511"></a>00511 {
-<a name="l00512"></a>00512 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00513"></a>00513 <span class="keywordflow">if</span> (c._data().is_nan()) data.make_nan();
-<a name="l00514"></a>00514 <span class="keywordflow">else</span> {
-<a name="l00515"></a>00515 <span class="keywordflow">try</span> {
-<a name="l00516"></a>00516 data = c.data;
-<a name="l00517"></a>00517 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00518"></a>00518 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00519"></a>00519 data.make_nan();
-<a name="l00520"></a>00520 }
-<a name="l00521"></a>00521 }
-<a name="l00522"></a>00522 } <span class="keywordflow">else</span> {
-<a name="l00523"></a>00523 data = c.data;
-<a name="l00524"></a>00524 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00525"></a>00525 }
-<a name="l00526"></a>00526 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00527"></a>00527 }
-<a name="l00528"></a>00528
-<a name="l00537"></a>00537 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00538"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ad0328a5852615d76af78e99dbde3adc1">00538</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::operator~()<span class="keyword"> const </span>{
-<a name="l00539"></a>00539 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00540"></a>00540 <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="l00541"></a>00541 <span class="keywordflow">try</span> {
-<a name="l00542"></a>00542 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(~data);
-<a name="l00543"></a>00543 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00544"></a>00544 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00545"></a>00545 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00546"></a>00546 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00547"></a>00547 }
-<a name="l00548"></a>00548 } <span class="keywordflow">else</span> {
-<a name="l00549"></a>00549 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(~data);
-<a name="l00550"></a>00550 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00551"></a>00551 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00552"></a>00552 }
-<a name="l00553"></a>00553 }
-<a name="l00554"></a>00554
-<a name="l00561"></a>00561 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00562"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a567e8464311600fb2b825df15fa286f2">00562</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">BOOST_XINT_INTEGER_TYPE::operator-</a>()<span class="keyword"> const </span>{
-<a name="l00563"></a>00563 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00564"></a>00564 <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="l00565"></a>00565 <span class="keywordflow">try</span> {
-<a name="l00566"></a>00566 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(*<span class="keyword">this</span>);
-<a name="l00567"></a>00567 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00568"></a>00568 r.data = -r.data;
-<a name="l00569"></a>00569 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00570"></a>00570 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00571"></a>00571 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00572"></a>00572 }
-<a name="l00573"></a>00573 } <span class="keywordflow">else</span> {
-<a name="l00574"></a>00574 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(*<span class="keyword">this</span>);
-<a name="l00575"></a>00575 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00576"></a>00576 r.data = -r.data;
-<a name="l00577"></a>00577 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00578"></a>00578 }
-<a name="l00579"></a>00579 }
-<a name="l00580"></a>00580
-<a name="l00582"></a>00582 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00583"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aabc91bf8c44e6aff12c0b19097feceba">00583</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator+=(<span class="keyword">const</span>
-<a name="l00584"></a>00584 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00585"></a>00585 {
-<a name="l00586"></a>00586 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00587"></a>00587 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00588"></a>00588 <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="l00589"></a>00589 <span class="keywordflow">try</span> {
-<a name="l00590"></a>00590 data += b.data;
-<a name="l00591"></a>00591 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00592"></a>00592 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00593"></a>00593 data.make_nan();
-<a name="l00594"></a>00594 }
-<a name="l00595"></a>00595 }
-<a name="l00596"></a>00596 } <span class="keywordflow">else</span> {
-<a name="l00597"></a>00597 data += b.data;
-<a name="l00598"></a>00598 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00599"></a>00599 }
-<a name="l00600"></a>00600 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00601"></a>00601 }
-<a name="l00602"></a>00602
-<a name="l00604"></a>00604 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00605"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a7a9f9597a52bfb7c5f83bf73690a4d0c">00605</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator-=(<span class="keyword">const</span>
-<a name="l00606"></a>00606 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00607"></a>00607 {
-<a name="l00608"></a>00608 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00609"></a>00609 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00610"></a>00610 <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="l00611"></a>00611 <span class="keywordflow">try</span> {
-<a name="l00612"></a>00612 data -= b.data;
-<a name="l00613"></a>00613 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00614"></a>00614 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00615"></a>00615 data.make_nan();
-<a name="l00616"></a>00616 }
-<a name="l00617"></a>00617 }
-<a name="l00618"></a>00618 } <span class="keywordflow">else</span> {
-<a name="l00619"></a>00619 data -= b.data;
-<a name="l00620"></a>00620 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00621"></a>00621 }
-<a name="l00622"></a>00622 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00623"></a>00623 }
-<a name="l00624"></a>00624
-<a name="l00626"></a>00626 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00627"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a75277c26ae0bea13bb263b4586d000af">00627</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator*=(<span class="keyword">const</span>
-<a name="l00628"></a>00628 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00629"></a>00629 {
-<a name="l00630"></a>00630 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00631"></a>00631 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00632"></a>00632 <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="l00633"></a>00633 <span class="keywordflow">try</span> {
-<a name="l00634"></a>00634 data *= b.data;
-<a name="l00635"></a>00635 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00636"></a>00636 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00637"></a>00637 data.make_nan();
-<a name="l00638"></a>00638 }
-<a name="l00639"></a>00639 }
-<a name="l00640"></a>00640 } <span class="keywordflow">else</span> {
-<a name="l00641"></a>00641 data *= b.data;
-<a name="l00642"></a>00642 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00643"></a>00643 }
-<a name="l00644"></a>00644 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00645"></a>00645 }
-<a name="l00646"></a>00646
-<a name="l00648"></a>00648 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00649"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">00649</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator/=(<span class="keyword">const</span>
-<a name="l00650"></a>00650 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00651"></a>00651 {
-<a name="l00652"></a>00652 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00653"></a>00653 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00654"></a>00654 <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="l00655"></a>00655 <span class="keywordflow">try</span> {
-<a name="l00656"></a>00656 data /= b.data;
-<a name="l00657"></a>00657 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00658"></a>00658 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00659"></a>00659 data.make_nan();
-<a name="l00660"></a>00660 }
-<a name="l00661"></a>00661 }
-<a name="l00662"></a>00662 } <span class="keywordflow">else</span> {
-<a name="l00663"></a>00663 data /= b.data;
-<a name="l00664"></a>00664 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00665"></a>00665 }
-<a name="l00666"></a>00666 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00667"></a>00667 }
-<a name="l00668"></a>00668
-<a name="l00670"></a>00670 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00671"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">00671</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator%=(<span class="keyword">const</span>
-<a name="l00672"></a>00672 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> b)
-<a name="l00673"></a>00673 {
-<a name="l00674"></a>00674 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00675"></a>00675 <span class="keywordflow">if</span> (b.is_nan()) data.make_nan();
-<a name="l00676"></a>00676 <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="l00677"></a>00677 <span class="keywordflow">try</span> {
-<a name="l00678"></a>00678 data %= b.data;
-<a name="l00679"></a>00679 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00680"></a>00680 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00681"></a>00681 data.make_nan();
-<a name="l00682"></a>00682 }
-<a name="l00683"></a>00683 }
-<a name="l00684"></a>00684 } <span class="keywordflow">else</span> {
-<a name="l00685"></a>00685 data %= b.data;
-<a name="l00686"></a>00686 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00687"></a>00687 }
-<a name="l00688"></a>00688 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00689"></a>00689 }
-<a name="l00690"></a>00690
-<a name="l00695"></a>00695 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00696"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a68ed7bd6ea19ffe3e2c84c65a456ff38">00696</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator++() {
-<a name="l00697"></a>00697 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00698"></a>00698 <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="l00699"></a>00699 <span class="keywordflow">try</span> {
-<a name="l00700"></a>00700 ++data;
-<a name="l00701"></a>00701 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00702"></a>00702 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00703"></a>00703 data.make_nan();
-<a name="l00704"></a>00704 }
-<a name="l00705"></a>00705 }
-<a name="l00706"></a>00706 } <span class="keywordflow">else</span> {
-<a name="l00707"></a>00707 ++data;
-<a name="l00708"></a>00708 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00709"></a>00709 }
-<a name="l00710"></a>00710 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00711"></a>00711 }
-<a name="l00712"></a>00712
-<a name="l00717"></a>00717 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00718"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adac8c52f928aa7aeb8556aa3a2ec16a7">00718</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator--() {
-<a name="l00719"></a>00719 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00720"></a>00720 <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="l00721"></a>00721 <span class="keywordflow">try</span> {
-<a name="l00722"></a>00722 --data;
-<a name="l00723"></a>00723 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00724"></a>00724 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00725"></a>00725 data.make_nan();
-<a name="l00726"></a>00726 }
-<a name="l00727"></a>00727 }
-<a name="l00728"></a>00728 } <span class="keywordflow">else</span> {
-<a name="l00729"></a>00729 --data;
-<a name="l00730"></a>00730 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00731"></a>00731 }
-<a name="l00732"></a>00732 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00733"></a>00733 }
-<a name="l00734"></a>00734
-<a name="l00742"></a>00742 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00743"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a86ddf2ee74e7716528baa9a0b7e18449">00743</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::operator++(<span class="keywordtype">int</span>) {
-<a name="l00744"></a>00744 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00745"></a>00745 <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="l00746"></a>00746 <span class="keywordflow">try</span> {
-<a name="l00747"></a>00747 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data++);
-<a name="l00748"></a>00748 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00749"></a>00749 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00750"></a>00750 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00751"></a>00751 data.make_nan();
-<a name="l00752"></a>00752 }
-<a name="l00753"></a>00753 } <span class="keywordflow">else</span> {
-<a name="l00754"></a>00754 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data++);
-<a name="l00755"></a>00755 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00756"></a>00756 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00757"></a>00757 }
-<a name="l00758"></a>00758 }
-<a name="l00759"></a>00759
-<a name="l00767"></a>00767 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00768"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adab9f000397bd8856f6b73b45e6682c3">00768</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::operator--(<span class="keywordtype">int</span>) {
-<a name="l00769"></a>00769 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00770"></a>00770 <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="l00771"></a>00771 <span class="keywordflow">try</span> {
-<a name="l00772"></a>00772 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data--);
-<a name="l00773"></a>00773 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00774"></a>00774 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00775"></a>00775 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00776"></a>00776 data.make_nan();
-<a name="l00777"></a>00777 }
-<a name="l00778"></a>00778 } <span class="keywordflow">else</span> {
-<a name="l00779"></a>00779 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data--);
-<a name="l00780"></a>00780 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) { r._make_unique(); data.make_unique(); }
-<a name="l00781"></a>00781 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00782"></a>00782 }
-<a name="l00783"></a>00783 }
-<a name="l00784"></a>00784
-<a name="l00786"></a>00786 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00787"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a10ef8068734ee6473686db051023e781">00787</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator&amp;=(<span class="keyword">const</span>
-<a name="l00788"></a>00788 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
-<a name="l00789"></a>00789 {
-<a name="l00790"></a>00790 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00791"></a>00791 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
-<a name="l00792"></a>00792 <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="l00793"></a>00793 <span class="keywordflow">try</span> {
-<a name="l00794"></a>00794 data &amp;= n.data;
-<a name="l00795"></a>00795 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00796"></a>00796 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00797"></a>00797 data.make_nan();
-<a name="l00798"></a>00798 }
-<a name="l00799"></a>00799 }
-<a name="l00800"></a>00800 } <span class="keywordflow">else</span> {
-<a name="l00801"></a>00801 data &amp;= n.data;
-<a name="l00802"></a>00802 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00803"></a>00803 }
-<a name="l00804"></a>00804 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00805"></a>00805 }
-<a name="l00806"></a>00806
-<a name="l00808"></a>00808 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00809"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aefbb50f543ab91bef86e9aabc6e61610">00809</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator|=(<span class="keyword">const</span>
-<a name="l00810"></a>00810 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
-<a name="l00811"></a>00811 {
-<a name="l00812"></a>00812 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00813"></a>00813 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
-<a name="l00814"></a>00814 <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="l00815"></a>00815 <span class="keywordflow">try</span> {
-<a name="l00816"></a>00816 data |= n.data;
-<a name="l00817"></a>00817 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00818"></a>00818 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00819"></a>00819 data.make_nan();
-<a name="l00820"></a>00820 }
-<a name="l00821"></a>00821 }
-<a name="l00822"></a>00822 } <span class="keywordflow">else</span> {
-<a name="l00823"></a>00823 data |= n.data;
-<a name="l00824"></a>00824 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00825"></a>00825 }
-<a name="l00826"></a>00826 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00827"></a>00827 }
-<a name="l00828"></a>00828
-<a name="l00830"></a>00830 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00831"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ac70939fc8a6ab9b1dd59694fbcdbd3ae">00831</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator^=(<span class="keyword">const</span>
-<a name="l00832"></a>00832 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
-<a name="l00833"></a>00833 {
-<a name="l00834"></a>00834 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00835"></a>00835 <span class="keywordflow">if</span> (n.is_nan()) data.make_nan();
-<a name="l00836"></a>00836 <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="l00837"></a>00837 <span class="keywordflow">try</span> {
-<a name="l00838"></a>00838 data ^= n.data;
-<a name="l00839"></a>00839 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00840"></a>00840 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00841"></a>00841 data.make_nan();
-<a name="l00842"></a>00842 }
-<a name="l00843"></a>00843 }
-<a name="l00844"></a>00844 } <span class="keywordflow">else</span> {
-<a name="l00845"></a>00845 data ^= n.data;
-<a name="l00846"></a>00846 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00847"></a>00847 }
-<a name="l00848"></a>00848 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00849"></a>00849 }
-<a name="l00850"></a>00850
-<a name="l00859"></a>00859 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00860"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#ae328872eb71547090e6259c7af6d9005">00860</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">BOOST_XINT_INTEGER_TYPE::operator&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"></span>
-<a name="l00861"></a>00861 <span class="keyword"> const</span>
-<a name="l00862"></a>00862 <span class="keyword"></span>{
-<a name="l00863"></a>00863 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00864"></a>00864 <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="l00865"></a>00865 <span class="keywordflow">try</span> {
-<a name="l00866"></a>00866 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data &lt;&lt; shift);
-<a name="l00867"></a>00867 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00868"></a>00868 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00869"></a>00869 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00870"></a>00870 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00871"></a>00871 }
-<a name="l00872"></a>00872 } <span class="keywordflow">else</span> {
-<a name="l00873"></a>00873 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data &lt;&lt; shift);
-<a name="l00874"></a>00874 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00875"></a>00875 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00876"></a>00876 }
-<a name="l00877"></a>00877 }
-<a name="l00878"></a>00878
-<a name="l00887"></a>00887 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00888"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a62d51331f6ec9b4878c537b7848265d8">00888</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">BOOST_XINT_INTEGER_TYPE::operator&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"></span>
-<a name="l00889"></a>00889 <span class="keyword"> const</span>
-<a name="l00890"></a>00890 <span class="keyword"></span>{
-<a name="l00891"></a>00891 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00892"></a>00892 <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="l00893"></a>00893 <span class="keywordflow">try</span> {
-<a name="l00894"></a>00894 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data &gt;&gt; shift);
-<a name="l00895"></a>00895 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00896"></a>00896 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00897"></a>00897 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00898"></a>00898 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l00899"></a>00899 }
-<a name="l00900"></a>00900 } <span class="keywordflow">else</span> {
-<a name="l00901"></a>00901 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(data &gt;&gt; shift);
-<a name="l00902"></a>00902 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l00903"></a>00903 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l00904"></a>00904 }
-<a name="l00905"></a>00905 }
-<a name="l00906"></a>00906
-<a name="l00908"></a>00908 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00909"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a75912e8f7238e9db46f53e793be13549">00909</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator&lt;&lt;=(<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="l00910"></a>00910 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00911"></a>00911 <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="l00912"></a>00912 <span class="keywordflow">try</span> {
-<a name="l00913"></a>00913 data &lt;&lt;= shift;
-<a name="l00914"></a>00914 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00915"></a>00915 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00916"></a>00916 data.make_nan();
-<a name="l00917"></a>00917 }
-<a name="l00918"></a>00918 }
-<a name="l00919"></a>00919 } <span class="keywordflow">else</span> {
-<a name="l00920"></a>00920 data &lt;&lt;= shift;
-<a name="l00921"></a>00921 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00922"></a>00922 }
-<a name="l00923"></a>00923 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00924"></a>00924 }
-<a name="l00925"></a>00925
-<a name="l00927"></a>00927 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00928"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aaf46801d882d2f215b03eab5ec8622dc">00928</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; BOOST_XINT_INTEGER_TYPE::operator&gt;&gt;=(<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="l00929"></a>00929 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00930"></a>00930 <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="l00931"></a>00931 <span class="keywordflow">try</span> {
-<a name="l00932"></a>00932 data &gt;&gt;= shift;
-<a name="l00933"></a>00933 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00934"></a>00934 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l00935"></a>00935 data.make_nan();
-<a name="l00936"></a>00936 }
-<a name="l00937"></a>00937 }
-<a name="l00938"></a>00938 } <span class="keywordflow">else</span> {
-<a name="l00939"></a>00939 data &gt;&gt;= shift;
-<a name="l00940"></a>00940 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) data.make_unique();
-<a name="l00941"></a>00941 }
-<a name="l00942"></a>00942 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00943"></a>00943 }
-<a name="l00944"></a>00944
-<a name="l00952"></a>00952 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00953"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a28c1cf2549da47e36ada1e3a2a020654">00953</a> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::is_odd()<span class="keyword"> const </span>{
-<a name="l00954"></a>00954 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00955"></a>00955 <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="l00956"></a>00956 <span class="keywordflow">return</span> data.is_odd();
-<a name="l00957"></a>00957 } <span class="keywordflow">else</span> {
-<a name="l00958"></a>00958 <span class="keywordflow">return</span> data.is_odd();
-<a name="l00959"></a>00959 }
-<a name="l00960"></a>00960 }
-<a name="l00961"></a>00961
-<a name="l00969"></a>00969 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00970"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#af7d57cc73521c4d72bc853435127b790">00970</a> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::is_even()<span class="keyword"> const </span>{
-<a name="l00971"></a>00971 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l00972"></a>00972 <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="l00973"></a>00973 <span class="keywordflow">return</span> data.is_even();
-<a name="l00974"></a>00974 } <span class="keywordflow">else</span> {
-<a name="l00975"></a>00975 <span class="keywordflow">return</span> data.is_even();
-<a name="l00976"></a>00976 }
-<a name="l00977"></a>00977 }
-<a name="l00978"></a>00978
-<a name="l00990"></a>00990 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l00991"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a9afdf728b490f4fea0f6bd4805e96bd5">00991</a> <span class="keywordtype">bool</span> BOOST_XINT_INTEGER_TYPE::is_nan()<span class="keyword"> const </span>{
-<a name="l00992"></a>00992 <span class="keywordflow">return</span> data.is_nan();
-<a name="l00993"></a>00993 }
-<a name="l00994"></a>00994
-<a name="l01006"></a>01006 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01007"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#aa278c48753019fe3deaa623eecdb16b3">01007</a> <span class="keywordtype">int</span> BOOST_XINT_INTEGER_TYPE::sign(<span class="keywordtype">bool</span> signed_zero)<span class="keyword"> const </span>{
-<a name="l01008"></a>01008 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01009"></a>01009 <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="l01010"></a>01010 <span class="keywordflow">try</span> {
-<a name="l01011"></a>01011 <span class="keywordflow">return</span> data.sign(signed_zero);
-<a name="l01012"></a>01012 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01013"></a>01013 <span class="keywordflow">return</span> 0;
-<a name="l01014"></a>01014 }
-<a name="l01015"></a>01015 } <span class="keywordflow">else</span> {
-<a name="l01016"></a>01016 <span class="keywordflow">return</span> data.sign(signed_zero);
-<a name="l01017"></a>01017 }
-<a name="l01018"></a>01018 }
-<a name="l01019"></a>01019
-<a name="l01027"></a>01027 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01028"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a6575f1fd58be6bf73145459b4b46afbb">01028</a> <span class="keywordtype">size_t</span> BOOST_XINT_INTEGER_TYPE::hex_digits()<span class="keyword"> const </span>{
-<a name="l01029"></a>01029 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01030"></a>01030 <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="l01031"></a>01031 <span class="keywordflow">try</span> {
-<a name="l01032"></a>01032 <span class="keywordflow">return</span> data.hex_digits();
-<a name="l01033"></a>01033 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01034"></a>01034 <span class="keywordflow">return</span> 0;
-<a name="l01035"></a>01035 }
-<a name="l01036"></a>01036 } <span class="keywordflow">else</span> {
-<a name="l01037"></a>01037 <span class="keywordflow">return</span> data.hex_digits();
-<a name="l01038"></a>01038 }
-<a name="l01039"></a>01039 }
-<a name="l01040"></a>01040
-<a name="l01054"></a>01054 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01055"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a5d14ff656a3464ecf2e81d490f1acb76">01055</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::pow2(std::size_t exponent) {
-<a name="l01056"></a>01056 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01057"></a>01057 <span class="keywordflow">try</span> {
-<a name="l01058"></a>01058 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01059"></a>01059 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a5d14ff656a3464ecf2e81d490f1acb76" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
-<a name="l01060"></a>01060 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01061"></a>01061 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01062"></a>01062 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01063"></a>01063 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l01064"></a>01064 }
-<a name="l01065"></a>01065 } <span class="keywordflow">else</span> {
-<a name="l01066"></a>01066 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01067"></a>01067 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a5d14ff656a3464ecf2e81d490f1acb76" title="Calculate the value of 2e">detail::pow2</a>(r.data, exponent);
-<a name="l01068"></a>01068 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01069"></a>01069 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01070"></a>01070 }
-<a name="l01071"></a>01071 }
-<a name="l01072"></a>01072
-<a name="l01086"></a>01086 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01087"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a7bc8e4868073626d1ea0dc7e9668f6e0">01087</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::factorial(std::size_t n) {
-<a name="l01088"></a>01088 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01089"></a>01089 <span class="keywordflow">try</span> {
-<a name="l01090"></a>01090 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01091"></a>01091 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7bc8e4868073626d1ea0dc7e9668f6e0" title="Calculate the value of n! ">detail::factorial</a>(r.data, n);
-<a name="l01092"></a>01092 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01093"></a>01093 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01094"></a>01094 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01095"></a>01095 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l01096"></a>01096 }
-<a name="l01097"></a>01097 } <span class="keywordflow">else</span> {
-<a name="l01098"></a>01098 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01099"></a>01099 <a class="code" href="classboost_1_1xint_1_1integer__t.html#a7bc8e4868073626d1ea0dc7e9668f6e0" title="Calculate the value of n! ">detail::factorial</a>(r.data, n);
-<a name="l01100"></a>01100 <span class="keywordflow">if</span> (Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01101"></a>01101 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01102"></a>01102 }
-<a name="l01103"></a>01103 }
-<a name="l01104"></a>01104
-<a name="l01118"></a>01118 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01119"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1">01119</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::nan() {
-<a name="l01120"></a>01120 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01121"></a>01121 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01122"></a>01122 r._data().make_nan();
-<a name="l01123"></a>01123 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01124"></a>01124 } <span class="keywordflow">else</span> {
-<a name="l01125"></a>01125 <span class="keywordflow">throw</span> <a class="code" href="classboost_1_1xint_1_1exceptions_1_1not__a__number.html">exceptions::not_a_number</a>();
-<a name="l01126"></a>01126 }
-<a name="l01127"></a>01127 }
-<a name="l01128"></a>01128
-<a name="l01151"></a>01151 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01152"></a>01152 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt;
-<a name="l01153"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2">01153</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::random_by_size(Type&amp; gen,
-<a name="l01154"></a>01154 <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="l01155"></a>01155 can_be_negative)
-<a name="l01156"></a>01156 {
-<a name="l01157"></a>01157 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01158"></a>01158 <span class="keywordflow">try</span> {
-<a name="l01159"></a>01159 <span class="keywordflow">return</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(datatype::random_by_size(gen,
-<a name="l01160"></a>01160 size_in_bits, high_bit_on, low_bit_on, can_be_negative));
-<a name="l01161"></a>01161 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01162"></a>01162 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l01163"></a>01163 }
-<a name="l01164"></a>01164 } <span class="keywordflow">else</span> {
-<a name="l01165"></a>01165 <span class="keywordflow">return</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(datatype::random_by_size(gen,
-<a name="l01166"></a>01166 size_in_bits, high_bit_on, low_bit_on, can_be_negative));
-<a name="l01167"></a>01167 }
-<a name="l01168"></a>01168 }
-<a name="l01169"></a>01169
-<a name="l01197"></a>01197 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01198"></a>01198 <span class="keyword">template</span> &lt;<span class="keyword">class</span> Type&gt;
-<a name="l01199"></a><a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02">01199</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> BOOST_XINT_INTEGER_TYPE::random_prime(Type&amp; gen,
-<a name="l01200"></a>01200 <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="l01201"></a>01201 {
-<a name="l01202"></a>01202 <span class="keywordflow">if</span> (Nothrow) {
-<a name="l01203"></a>01203 <span class="keywordflow">try</span> {
-<a name="l01204"></a>01204 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen, size_in_bits, callback);
-<a name="l01205"></a>01205 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01206"></a>01206 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#a49eff434d2a1f0729d7757e6349fd2c1" title="Returns a Not-a-Number value, for types that support it.">nan</a>();
-<a name="l01207"></a>01207 }
-<a name="l01208"></a>01208 } <span class="keywordflow">else</span> {
-<a name="l01209"></a>01209 <span class="keywordflow">return</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">datatype::random_prime</a>(gen, size_in_bits, callback);
-<a name="l01210"></a>01210 }
-<a name="l01211"></a>01211 }
-<a name="l01212"></a>01212
-<a name="l01214"></a>01214 <span class="comment">// Free function template definitions</span>
-<a name="l01220"></a>01220 <span class="comment"></span>
-<a name="l01221"></a>01221
-<a name="l01230"></a>01230 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01231"></a><a class="code" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523">01231</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523" title="Returns the absolute value of an integer.">abs</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l01232"></a>01232 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01233"></a>01233 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01234"></a>01234 <span class="keywordflow">try</span> {
-<a name="l01235"></a>01235 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n._data().abs());
-<a name="l01236"></a>01236 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01237"></a>01237 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01238"></a>01238 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01239"></a>01239 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01240"></a>01240 }
-<a name="l01241"></a>01241 } <span class="keywordflow">else</span> {
-<a name="l01242"></a>01242 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n._data().abs());
-<a name="l01243"></a>01243 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01244"></a>01244 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01245"></a>01245 }
-<a name="l01246"></a>01246 }
-<a name="l01247"></a>01247
-<a name="l01266"></a>01266 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01267"></a><a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4">01267</a> <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">divide</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>
-<a name="l01268"></a>01268 dividend, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> divisor)
-<a name="l01269"></a>01269 {
-<a name="l01270"></a>01270 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01271"></a>01271 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span> <span class="keyword">typename</span>
-<a name="l01272"></a>01272 BOOST_XINT_INTEGER_TYPE::divide_t(BOOST_XINT_INTEGER_TYPE::nan(),
-<a name="l01273"></a>01273 BOOST_XINT_INTEGER_TYPE::nan());
-<a name="l01274"></a>01274 <span class="keywordflow">try</span> {
-<a name="l01275"></a>01275 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::datatype::divide_t rr =
-<a name="l01276"></a>01276 <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
-<a name="l01277"></a>01277 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t
-<a name="l01278"></a>01278 r(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(rr.quotient),
-<a name="l01279"></a>01279 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(rr.remainder));
-<a name="l01280"></a>01280 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01281"></a>01281 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01282"></a>01282 <span class="keywordflow">return</span> <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t(
-<a name="l01283"></a>01283 BOOST_XINT_INTEGER_TYPE::nan(), BOOST_XINT_INTEGER_TYPE::nan());
-<a name="l01284"></a>01284 }
-<a name="l01285"></a>01285 } <span class="keywordflow">else</span> {
-<a name="l01286"></a>01286 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::datatype::divide_t rr =
-<a name="l01287"></a>01287 <a class="code" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4" title="Calculate how many dividends would fit into divisor, with the remainder.">detail::divide</a>(dividend._data(), divisor._data());
-<a name="l01288"></a>01288 <span class="keyword">typename</span> BOOST_XINT_INTEGER_TYPE::divide_t
-<a name="l01289"></a>01289 r(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(rr.quotient),
-<a name="l01290"></a>01290 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>(rr.remainder));
-<a name="l01291"></a>01291 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01292"></a>01292 }
-<a name="l01293"></a>01293 }
-<a name="l01295"></a>01295
-<a name="l01301"></a>01301
-<a name="l01302"></a>01302
-<a name="l01314"></a>01314 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01315"></a><a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424">01315</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">square</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l01316"></a>01316 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01317"></a>01317 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01318"></a>01318 <span class="keywordflow">try</span> {
-<a name="l01319"></a>01319 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">detail::square</a>(n._data()));
-<a name="l01320"></a>01320 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01321"></a>01321 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01322"></a>01322 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01323"></a>01323 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01324"></a>01324 }
-<a name="l01325"></a>01325 } <span class="keywordflow">else</span> {
-<a name="l01326"></a>01326 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">detail::square</a>(n._data()));
-<a name="l01327"></a>01327 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01328"></a>01328 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01329"></a>01329 }
-<a name="l01330"></a>01330 }
-<a name="l01331"></a>01331
-<a name="l01340"></a>01340 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01341"></a><a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52">01341</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01342"></a>01342 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> e)
-<a name="l01343"></a>01343 {
-<a name="l01344"></a>01344 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01345"></a>01345 <span class="keywordflow">if</span> (n.is_nan() || e.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01346"></a>01346 <span class="keywordflow">try</span> {
-<a name="l01347"></a>01347 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01348"></a>01348 <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
-<a name="l01349"></a>01349 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01350"></a>01350 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01351"></a>01351 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01352"></a>01352 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01353"></a>01353 }
-<a name="l01354"></a>01354 } <span class="keywordflow">else</span> {
-<a name="l01355"></a>01355 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l01356"></a>01356 <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(r._data(), n._data(), e._data());
-<a name="l01357"></a>01357 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01358"></a>01358 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01359"></a>01359 }
-<a name="l01360"></a>01360 }
-<a name="l01361"></a>01361
-<a name="l01374"></a>01374 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01375"></a><a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2">01375</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l01376"></a>01376 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01377"></a>01377 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01378"></a>01378 <span class="keywordflow">try</span> {
-<a name="l01379"></a>01379 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(n._data()));
-<a name="l01380"></a>01380 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01381"></a>01381 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01382"></a>01382 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01383"></a>01383 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01384"></a>01384 }
-<a name="l01385"></a>01385 } <span class="keywordflow">else</span> {
-<a name="l01386"></a>01386 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(n._data()));
-<a name="l01387"></a>01387 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01388"></a>01388 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01389"></a>01389 }
-<a name="l01390"></a>01390 }
-<a name="l01392"></a>01392
-<a name="l01398"></a>01398
-<a name="l01399"></a>01399
-<a name="l01412"></a>01412 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3, <span class="keyword">class</span> A4&gt;
-<a name="l01413"></a><a class="code" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69">01413</a> T <a class="code" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69" title="Converts an xint::integer type to a built-in integer type.">to</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l01414"></a>01414 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01415"></a>01415 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> T(0);
-<a name="l01416"></a>01416 <span class="keywordflow">try</span> {
-<a name="l01417"></a>01417 <span class="keywordflow">return</span> to&lt;T&gt;(n._data());
-<a name="l01418"></a>01418 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01419"></a>01419 <span class="keywordflow">return</span> T(0);
-<a name="l01420"></a>01420 }
-<a name="l01421"></a>01421 } <span class="keywordflow">else</span> {
-<a name="l01422"></a>01422 <span class="keywordflow">return</span> to&lt;T&gt;(n._data());
-<a name="l01423"></a>01423 }
-<a name="l01424"></a>01424 }
-<a name="l01425"></a>01425
-<a name="l01448"></a>01448 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T, <span class="keyword">class</span> A0, <span class="keyword">class</span> A1, <span class="keyword">class</span> A2, <span class="keyword">class</span> A3, <span class="keyword">class</span> A4&gt;
-<a name="l01449"></a><a class="code" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">01449</a> std::basic_string&lt;charT&gt; <a class="code" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e" title="Creates a string representation of the specified integer.">to_stringtype</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n,
-<a name="l01450"></a>01450 std::size_t base = 10, <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
-<a name="l01451"></a>01451 {
-<a name="l01452"></a>01452 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01453"></a>01453 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> detail::nan_text&lt;charT&gt;();
-<a name="l01454"></a>01454 <span class="keywordflow">try</span> {
-<a name="l01455"></a>01455 <span class="keywordflow">return</span> detail::to_string&lt;charT&gt;(n._data(), base, uppercase);
-<a name="l01456"></a>01456 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01457"></a>01457 <span class="keywordflow">return</span> std::basic_string&lt;charT&gt;();
-<a name="l01458"></a>01458 }
-<a name="l01459"></a>01459 } <span class="keywordflow">else</span> {
-<a name="l01460"></a>01460 <span class="keywordflow">return</span> detail::to_string&lt;charT&gt;(n._data(), base, uppercase);
-<a name="l01461"></a>01461 }
-<a name="l01462"></a>01462 }
-<a name="l01463"></a>01463
-<a name="l01467"></a>01467 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01468"></a><a class="code" href="namespaceboost_1_1xint.html#a92cfd4119fbf9eeb0a503d4e0dbe553c">01468</a> std::string <a class="code" href="namespaceboost_1_1xint.html#a92cfd4119fbf9eeb0a503d4e0dbe553c" title="A shorthand function that calls to_stringtype&amp;lt;char&amp;gt;.">to_string</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, std::size_t base = 10,
-<a name="l01469"></a>01469 <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
+<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="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="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">return</span> to_stringtype&lt;char&gt;(n, base, uppercase);
-<a name="l01472"></a>01472 }
-<a name="l01473"></a>01473
-<a name="l01477"></a>01477 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01478"></a><a class="code" href="namespaceboost_1_1xint.html#a2493d0acb308a3ec0abd7326d9bc6a27">01478</a> std::wstring <a class="code" href="namespaceboost_1_1xint.html#a2493d0acb308a3ec0abd7326d9bc6a27" title="A shorthand function that calls to_stringtype&amp;lt;wchar_t&amp;gt;.">to_wstring</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, std::size_t base = 10,
-<a name="l01479"></a>01479 <span class="keywordtype">bool</span> uppercase = <span class="keyword">false</span>)
-<a name="l01480"></a>01480 {
-<a name="l01481"></a>01481 <span class="keywordflow">return</span> to_stringtype&lt;wchar_t&gt;(n, base, uppercase);
-<a name="l01482"></a>01482 }
-<a name="l01483"></a>01483
-<a name="l01511"></a>01511 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01512"></a><a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40">01512</a> <a class="code" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bits = 0) {
-<a name="l01513"></a>01513 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01514"></a>01514 <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="l01515"></a>01515 <span class="keywordflow">try</span> {
-<a name="l01516"></a>01516 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
-<a name="l01517"></a>01517 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01518"></a>01518 <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="l01519"></a>01519 }
-<a name="l01520"></a>01520 } <span class="keywordflow">else</span> {
-<a name="l01521"></a>01521 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40" title="Creates a binary representation of an integer.">to_binary</a>(n._data(), bits);
-<a name="l01522"></a>01522 }
-<a name="l01523"></a>01523 }
-<a name="l01525"></a>01525
-<a name="l01528"></a>01528
-<a name="l01539"></a>01539 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01540"></a><a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba">01540</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> bit) {
-<a name="l01541"></a>01541 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01542"></a>01542 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01543"></a>01543 <span class="keywordflow">try</span> {
-<a name="l01544"></a>01544 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
-<a name="l01545"></a>01545 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01546"></a>01546 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01547"></a>01547 }
-<a name="l01548"></a>01548 } <span class="keywordflow">else</span> {
-<a name="l01549"></a>01549 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba" title="Queries the value of a particular bit in an integer.">getbit</a>(n._data(), bit);
-<a name="l01550"></a>01550 }
-<a name="l01551"></a>01551 }
-<a name="l01552"></a>01552
-<a name="l01562"></a>01562 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01563"></a><a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921">01563</a> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&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="l01564"></a>01564 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01565"></a>01565 <span class="keywordflow">if</span> (!n.is_nan()) {
-<a name="l01566"></a>01566 <span class="keywordflow">try</span> {
-<a name="l01567"></a>01567 <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
-<a name="l01568"></a>01568 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01569"></a>01569 <span class="comment">// Do nothing.</span>
-<a name="l01570"></a>01570 }
-<a name="l01571"></a>01571 }
-<a name="l01572"></a>01572 } <span class="keywordflow">else</span> {
-<a name="l01573"></a>01573 <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(n._data(), bit);
-<a name="l01574"></a>01574 }
-<a name="l01575"></a>01575 }
-<a name="l01576"></a>01576
-<a name="l01586"></a>01586 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01587"></a><a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175">01587</a> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&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="l01588"></a>01588 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01589"></a>01589 <span class="keywordflow">if</span> (!n.is_nan()) {
-<a name="l01590"></a>01590 <span class="keywordflow">try</span> {
-<a name="l01591"></a>01591 <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
-<a name="l01592"></a>01592 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01593"></a>01593 <span class="comment">// Do nothing.</span>
-<a name="l01594"></a>01594 }
-<a name="l01595"></a>01595 }
-<a name="l01596"></a>01596 } <span class="keywordflow">else</span> {
-<a name="l01597"></a>01597 <a class="code" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175" title="Sets a specific bit in an integer to zero.">clearbit</a>(n._data(), bit);
-<a name="l01598"></a>01598 }
-<a name="l01599"></a>01599 }
-<a name="l01600"></a>01600
-<a name="l01614"></a>01614 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01615"></a><a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4">01615</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> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> return_if_zero =
-<a name="l01616"></a>01616 0)
-<a name="l01617"></a>01617 {
-<a name="l01618"></a>01618 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01619"></a>01619 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
-<a name="l01620"></a>01620 <span class="keywordflow">try</span> {
-<a name="l01621"></a>01621 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(n._data(), return_if_zero);
-<a name="l01622"></a>01622 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01623"></a>01623 <span class="keywordflow">return</span> return_if_zero;
-<a name="l01624"></a>01624 }
-<a name="l01625"></a>01625 } <span class="keywordflow">else</span> {
-<a name="l01626"></a>01626 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4" title="Obtains the index of the lowest bit in an integer with a value of one.">lowestbit</a>(n._data(), return_if_zero);
-<a name="l01627"></a>01627 }
-<a name="l01628"></a>01628 }
-<a name="l01629"></a>01629
-<a name="l01643"></a>01643 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01644"></a><a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0">01644</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> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764" title="This makes it easier to tell when an item is measured in bits.">bitsize_t</a> return_if_zero =
-<a name="l01645"></a>01645 0)
-<a name="l01646"></a>01646 {
-<a name="l01647"></a>01647 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01648"></a>01648 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> return_if_zero;
-<a name="l01649"></a>01649 <span class="keywordflow">try</span> {
-<a name="l01650"></a>01650 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(n._data(), return_if_zero);
-<a name="l01651"></a>01651 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01652"></a>01652 <span class="keywordflow">return</span> return_if_zero;
-<a name="l01653"></a>01653 }
-<a name="l01654"></a>01654 } <span class="keywordflow">else</span> {
-<a name="l01655"></a>01655 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a>(n._data(), return_if_zero);
-<a name="l01656"></a>01656 }
-<a name="l01657"></a>01657 }
-<a name="l01659"></a>01659
-<a name="l01668"></a>01668
-<a name="l01669"></a>01669
-<a name="l01684"></a>01684 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01685"></a><a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564">01685</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01686"></a>01686 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> by, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus)
-<a name="l01687"></a>01687 {
-<a name="l01688"></a>01688 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01689"></a>01689 <span class="keywordflow">if</span> (n.is_nan() || by.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01690"></a>01690 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01691"></a>01691 <span class="keywordflow">try</span> {
-<a name="l01692"></a>01692 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
-<a name="l01693"></a>01693 modulus._data()));
-<a name="l01694"></a>01694 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01695"></a>01695 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01696"></a>01696 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01697"></a>01697 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01698"></a>01698 }
-<a name="l01699"></a>01699 } <span class="keywordflow">else</span> {
-<a name="l01700"></a>01700 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(n._data(), by._data(),
-<a name="l01701"></a>01701 modulus._data()));
-<a name="l01702"></a>01702 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01703"></a>01703 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01704"></a>01704 }
-<a name="l01705"></a>01705 }
-<a name="l01706"></a>01706
-<a name="l01721"></a>01721 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01722"></a><a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877">01722</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01723"></a>01723 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus)
-<a name="l01724"></a>01724 {
-<a name="l01725"></a>01725 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01726"></a>01726 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> n;
-<a name="l01727"></a>01727 <span class="keywordflow">try</span> {
-<a name="l01728"></a>01728 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(), modulus._data());
-<a name="l01729"></a>01729 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01730"></a>01730 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01731"></a>01731 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01732"></a>01732 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01733"></a>01733 }
-<a name="l01734"></a>01734 } <span class="keywordflow">else</span> {
-<a name="l01735"></a>01735 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r = <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(n._data(), modulus._data());
-<a name="l01736"></a>01736 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01737"></a>01737 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01738"></a>01738 }
-<a name="l01739"></a>01739 }
-<a name="l01740"></a>01740
-<a name="l01764"></a>01764 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01765"></a><a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0">01765</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01766"></a>01766 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> exponent, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus,
-<a name="l01767"></a>01767 <span class="keywordtype">bool</span> no_monty = <span class="keyword">false</span>)
-<a name="l01768"></a>01768 {
-<a name="l01769"></a>01769 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01770"></a>01770 <span class="keywordflow">if</span> (n.is_nan() || exponent.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01771"></a>01771 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01772"></a>01772 <span class="keywordflow">try</span> {
-<a name="l01773"></a>01773 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
-<a name="l01774"></a>01774 modulus._data(), no_monty));
-<a name="l01775"></a>01775 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01776"></a>01776 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01777"></a>01777 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01778"></a>01778 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01779"></a>01779 }
-<a name="l01780"></a>01780 } <span class="keywordflow">else</span> {
-<a name="l01781"></a>01781 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(n._data(), exponent._data(),
-<a name="l01782"></a>01782 modulus._data(), no_monty));
-<a name="l01783"></a>01783 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01784"></a>01784 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01785"></a>01785 }
-<a name="l01786"></a>01786 }
-<a name="l01787"></a>01787
-<a name="l01800"></a>01800 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01801"></a><a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad">01801</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <span class="keyword">const</span>
-<a name="l01802"></a>01802 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> modulus)
-<a name="l01803"></a>01803 {
-<a name="l01804"></a>01804 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01805"></a>01805 <span class="keywordflow">if</span> (n.is_nan() || modulus.is_nan()) <span class="keywordflow">return</span>
-<a name="l01806"></a>01806 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01807"></a>01807 <span class="keywordflow">try</span> {
-<a name="l01808"></a>01808 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data()));
-<a name="l01809"></a>01809 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::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 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01812"></a>01812 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01813"></a>01813 }
-<a name="l01814"></a>01814 } <span class="keywordflow">else</span> {
-<a name="l01815"></a>01815 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(<a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(n._data(), modulus._data()));
-<a name="l01816"></a>01816 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l01817"></a>01817 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01818"></a>01818 }
-<a name="l01819"></a>01819 }
-<a name="l01821"></a>01821
-<a name="l01827"></a>01827
-<a name="l01828"></a>01828
-<a name="l01853"></a>01853 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01854"></a><a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4">01854</a> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n, <a class="code" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547" title="A callback function takes no parameters and returns a bool.">callback_t</a> callback = <a class="code" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696" title="An empty callback_t, used as a default parameter for some functions.">no_callback</a>)
-<a name="l01855"></a>01855 {
-<a name="l01856"></a>01856 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01857"></a>01857 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> -2;
-<a name="l01858"></a>01858 <span class="keywordflow">try</span> {
-<a name="l01859"></a>01859 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
-<a name="l01860"></a>01860 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01861"></a>01861 <span class="keywordflow">return</span> -2;
-<a name="l01862"></a>01862 }
-<a name="l01863"></a>01863 } <span class="keywordflow">else</span> {
-<a name="l01864"></a>01864 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(n._data(), callback);
-<a name="l01865"></a>01865 }
-<a name="l01866"></a>01866 }
-<a name="l01868"></a>01868
-<a name="l01876"></a>01876
-<a name="l01877"></a><a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">01877</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01878"></a>01878 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01879"></a>01879 {
-<a name="l01880"></a>01880 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01881"></a>01881 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01882"></a>01882 <span class="keywordflow">try</span> {
-<a name="l01883"></a>01883 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator&lt;</a>(n1._data(), n2._data());
-<a name="l01884"></a>01884 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01885"></a>01885 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01886"></a>01886 }
-<a name="l01887"></a>01887 } <span class="keywordflow">else</span> {
-<a name="l01888"></a>01888 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator&lt;</a>(n1._data(), n2._data());
-<a name="l01889"></a>01889 }
-<a name="l01890"></a>01890 }
-<a name="l01891"></a>01891
-<a name="l01892"></a><a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">01892</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01893"></a>01893 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01894"></a>01894 {
-<a name="l01895"></a>01895 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01896"></a>01896 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01897"></a>01897 <span class="keywordflow">try</span> {
-<a name="l01898"></a>01898 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator&gt;</a>(n1._data(), n2._data());
-<a name="l01899"></a>01899 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01900"></a>01900 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01901"></a>01901 }
-<a name="l01902"></a>01902 } <span class="keywordflow">else</span> {
-<a name="l01903"></a>01903 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator&gt;</a>(n1._data(), n2._data());
-<a name="l01904"></a>01904 }
-<a name="l01905"></a>01905 }
-<a name="l01906"></a>01906
-<a name="l01907"></a><a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">01907</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01908"></a>01908 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01909"></a>01909 {
-<a name="l01910"></a>01910 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01911"></a>01911 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01912"></a>01912 <span class="keywordflow">try</span> {
-<a name="l01913"></a>01913 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator&lt;=</a>(n1._data(), n2._data());
-<a name="l01914"></a>01914 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01915"></a>01915 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01916"></a>01916 }
-<a name="l01917"></a>01917 } <span class="keywordflow">else</span> {
-<a name="l01918"></a>01918 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator&lt;=</a>(n1._data(), n2._data());
-<a name="l01919"></a>01919 }
-<a name="l01920"></a>01920 }
-<a name="l01921"></a>01921
-<a name="l01922"></a><a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">01922</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01923"></a>01923 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01924"></a>01924 {
-<a name="l01925"></a>01925 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01926"></a>01926 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01927"></a>01927 <span class="keywordflow">try</span> {
-<a name="l01928"></a>01928 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator&gt;=</a>(n1._data(), n2._data());
-<a name="l01929"></a>01929 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01930"></a>01930 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01931"></a>01931 }
-<a name="l01932"></a>01932 } <span class="keywordflow">else</span> {
-<a name="l01933"></a>01933 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator&gt;=</a>(n1._data(), n2._data());
-<a name="l01934"></a>01934 }
-<a name="l01935"></a>01935 }
-<a name="l01936"></a>01936
-<a name="l01937"></a><a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">01937</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01938"></a>01938 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01939"></a>01939 {
-<a name="l01940"></a>01940 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01941"></a>01941 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01942"></a>01942 <span class="keywordflow">try</span> {
-<a name="l01943"></a>01943 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(n1._data(), n2._data());
-<a name="l01944"></a>01944 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01945"></a>01945 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01946"></a>01946 }
-<a name="l01947"></a>01947 } <span class="keywordflow">else</span> {
-<a name="l01948"></a>01948 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a>(n1._data(), n2._data());
-<a name="l01949"></a>01949 }
-<a name="l01950"></a>01950 }
-<a name="l01951"></a>01951
-<a name="l01952"></a><a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">01952</a> <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a> <span class="keywordtype">bool</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01953"></a>01953 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01954"></a>01954 {
-<a name="l01955"></a>01955 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01956"></a>01956 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01957"></a>01957 <span class="keywordflow">try</span> {
-<a name="l01958"></a>01958 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(n1._data(), n2._data());
-<a name="l01959"></a>01959 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01960"></a>01960 <span class="keywordflow">return</span> <span class="keyword">false</span>;
-<a name="l01961"></a>01961 }
-<a name="l01962"></a>01962 } <span class="keywordflow">else</span> {
-<a name="l01963"></a>01963 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a>(n1._data(), n2._data());
-<a name="l01964"></a>01964 }
-<a name="l01965"></a>01965 }
-<a name="l01967"></a>01967
-<a name="l01972"></a>01972
-<a name="l01973"></a>01973
-<a name="l01982"></a>01982 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l01983"></a><a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915">01983</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l01984"></a>01984 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l01985"></a>01985 {
-<a name="l01986"></a>01986 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l01987"></a>01987 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01988"></a>01988 <span class="keywordflow">try</span> {
-<a name="l01989"></a>01989 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() + n2._data());
-<a name="l01990"></a>01990 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01991"></a>01991 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l01992"></a>01992 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l01993"></a>01993 }
-<a name="l01994"></a>01994 } <span class="keywordflow">else</span> {
-<a name="l01995"></a>01995 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() + n2._data());
-<a name="l01996"></a>01996 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l01997"></a>01997 }
-<a name="l01998"></a>01998 }
+<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="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="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="l02008"></a>02008 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02009"></a><a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27">02009</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">operator-</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02010"></a>02010 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02011"></a>02011 {
-<a name="l02012"></a>02012 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02013"></a>02013 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02014"></a>02014 <span class="keywordflow">try</span> {
-<a name="l02015"></a>02015 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() - n2._data());
-<a name="l02016"></a>02016 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02017"></a>02017 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02018"></a>02018 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02019"></a>02019 }
-<a name="l02020"></a>02020 } <span class="keywordflow">else</span> {
-<a name="l02021"></a>02021 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() - n2._data());
-<a name="l02022"></a>02022 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02023"></a>02023 }
-<a name="l02024"></a>02024 }
-<a name="l02025"></a>02025
-<a name="l02038"></a>02038 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02039"></a><a class="code" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455">02039</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455" title="Calculate the product of two integers.">operator*</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02040"></a>02040 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02041"></a>02041 {
-<a name="l02042"></a>02042 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02043"></a>02043 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02044"></a>02044 <span class="keywordflow">try</span> {
-<a name="l02045"></a>02045 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() * n2._data());
-<a name="l02046"></a>02046 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02047"></a>02047 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02048"></a>02048 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02049"></a>02049 }
-<a name="l02050"></a>02050 } <span class="keywordflow">else</span> {
-<a name="l02051"></a>02051 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() * n2._data());
-<a name="l02052"></a>02052 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02053"></a>02053 }
-<a name="l02054"></a>02054 }
-<a name="l02055"></a>02055
-<a name="l02066"></a>02066 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02067"></a><a class="code" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21">02067</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21" title="Calculate how many dividends would fit into divisor.">operator/</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> dividend, <span class="keyword">const</span>
-<a name="l02068"></a>02068 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> divisor)
-<a name="l02069"></a>02069 {
-<a name="l02070"></a>02070 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02071"></a>02071 <span class="keywordflow">if</span> (dividend.is_nan() || divisor.is_nan()) <span class="keywordflow">return</span>
-<a name="l02072"></a>02072 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02073"></a>02073 <span class="keywordflow">try</span> {
-<a name="l02074"></a>02074 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(dividend._data() / divisor._data());
-<a name="l02075"></a>02075 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02076"></a>02076 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02077"></a>02077 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02078"></a>02078 }
-<a name="l02079"></a>02079 } <span class="keywordflow">else</span> {
-<a name="l02080"></a>02080 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(dividend._data() / divisor._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 name="l02083"></a>02083 }
-<a name="l02084"></a>02084
-<a name="l02094"></a>02094 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02095"></a><a class="code" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67">02095</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67" title="Get the remainder after dividing a number by another.">operator%</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02096"></a>02096 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02097"></a>02097 {
-<a name="l02098"></a>02098 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02099"></a>02099 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02100"></a>02100 <span class="keywordflow">try</span> {
-<a name="l02101"></a>02101 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() % n2._data());
-<a name="l02102"></a>02102 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02103"></a>02103 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02104"></a>02104 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02105"></a>02105 }
-<a name="l02106"></a>02106 } <span class="keywordflow">else</span> {
-<a name="l02107"></a>02107 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() % n2._data());
-<a name="l02108"></a>02108 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02109"></a>02109 }
-<a name="l02110"></a>02110 }
-<a name="l02111"></a>02111
-<a name="l02121"></a>02121 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02122"></a><a class="code" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3">02122</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3" title="Combine two integers using a bitwise AND operation.">operator&amp;</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02123"></a>02123 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02124"></a>02124 {
-<a name="l02125"></a>02125 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02126"></a>02126 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02127"></a>02127 <span class="keywordflow">try</span> {
-<a name="l02128"></a>02128 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() &amp; n2._data());
-<a name="l02129"></a>02129 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02130"></a>02130 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02131"></a>02131 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02132"></a>02132 }
-<a name="l02133"></a>02133 } <span class="keywordflow">else</span> {
-<a name="l02134"></a>02134 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() &amp; n2._data());
-<a name="l02135"></a>02135 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02136"></a>02136 }
-<a name="l02137"></a>02137 }
-<a name="l02138"></a>02138
-<a name="l02148"></a>02148 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02149"></a><a class="code" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075">02149</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075" title="Combine two integers using a bitwise OR operation.">operator|</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02150"></a>02150 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02151"></a>02151 {
-<a name="l02152"></a>02152 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02153"></a>02153 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02154"></a>02154 <span class="keywordflow">try</span> {
-<a name="l02155"></a>02155 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() | n2._data());
-<a name="l02156"></a>02156 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02157"></a>02157 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02158"></a>02158 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02159"></a>02159 }
-<a name="l02160"></a>02160 } <span class="keywordflow">else</span> {
-<a name="l02161"></a>02161 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() | n2._data());
-<a name="l02162"></a>02162 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02163"></a>02163 }
-<a name="l02164"></a>02164 }
-<a name="l02165"></a>02165
-<a name="l02175"></a>02175 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02176"></a><a class="code" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025">02176</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025" title="Combine two integers using a bitwise XOR operation.">operator^</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span>
-<a name="l02177"></a>02177 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2)
-<a name="l02178"></a>02178 {
-<a name="l02179"></a>02179 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02180"></a>02180 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02181"></a>02181 <span class="keywordflow">try</span> {
-<a name="l02182"></a>02182 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() ^ n2._data());
-<a name="l02183"></a>02183 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02184"></a>02184 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02185"></a>02185 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02186"></a>02186 }
-<a name="l02187"></a>02187 } <span class="keywordflow">else</span> {
-<a name="l02188"></a>02188 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r(n1._data() ^ n2._data());
-<a name="l02189"></a>02189 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02190"></a>02190 }
-<a name="l02191"></a>02191 }
-<a name="l02193"></a>02193
-<a name="l02196"></a>02196
-<a name="l02206"></a>02206 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02207"></a><a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e">02207</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num1, <span class="keyword">const</span>
-<a name="l02208"></a>02208 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num2)
-<a name="l02209"></a>02209 {
-<a name="l02210"></a>02210 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02211"></a>02211 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
-<a name="l02212"></a>02212 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02213"></a>02213 <span class="keywordflow">try</span> {
-<a name="l02214"></a>02214 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l02215"></a>02215 <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
-<a name="l02216"></a>02216 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02217"></a>02217 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02218"></a>02218 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02219"></a>02219 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02220"></a>02220 }
-<a name="l02221"></a>02221 } <span class="keywordflow">else</span> {
-<a name="l02222"></a>02222 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l02223"></a>02223 <a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>(r._data(), num1._data(), num2._data());
-<a name="l02224"></a>02224 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02225"></a>02225 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02226"></a>02226 }
-<a name="l02227"></a>02227 }
-<a name="l02228"></a>02228
-<a name="l02239"></a>02239 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02240"></a><a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4">02240</a> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num1, <span class="keyword">const</span>
-<a name="l02241"></a>02241 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> num2)
-<a name="l02242"></a>02242 {
-<a name="l02243"></a>02243 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02244"></a>02244 <span class="keywordflow">if</span> (num1.is_nan() || num2.is_nan()) <span class="keywordflow">return</span>
-<a name="l02245"></a>02245 BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02246"></a>02246 <span class="keywordflow">try</span> {
-<a name="l02247"></a>02247 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l02248"></a>02248 <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
-<a name="l02249"></a>02249 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02250"></a>02250 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02251"></a>02251 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02252"></a>02252 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPE::nan();
-<a name="l02253"></a>02253 }
-<a name="l02254"></a>02254 } <span class="keywordflow">else</span> {
-<a name="l02255"></a>02255 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> r;
-<a name="l02256"></a>02256 <a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>(r._data(), num1._data(), num2._data());
-<a name="l02257"></a>02257 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Threadsafe == <span class="keyword">true</span>) r._make_unique();
-<a name="l02258"></a>02258 <span class="keywordflow">return</span> <a class="code" href="basic__types__and__includes_8hpp.html#a73c3b02410381da656b7cb59c7ba9314">BOOST_XINT_MOVE</a>(r);
-<a name="l02259"></a>02259 }
-<a name="l02260"></a>02260 }
-<a name="l02261"></a>02261
-<a name="l02274"></a>02274 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02275"></a><a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0">02275</a> <span class="keywordtype">int</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n1, <span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n2,
-<a name="l02276"></a>02276 <span class="keywordtype">bool</span> ignoresign = <span class="keyword">false</span>)
-<a name="l02277"></a>02277 {
-<a name="l02278"></a>02278 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02279"></a>02279 <span class="keywordflow">if</span> (n1.is_nan() || n2.is_nan()) <span class="keywordflow">return</span> 2;
-<a name="l02280"></a>02280 <span class="keywordflow">try</span> {
-<a name="l02281"></a>02281 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
-<a name="l02282"></a>02282 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02283"></a>02283 <span class="keywordflow">return</span> 2;
-<a name="l02284"></a>02284 }
-<a name="l02285"></a>02285 } <span class="keywordflow">else</span> {
-<a name="l02286"></a>02286 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>(n1._data(), n2._data(), ignoresign);
-<a name="l02287"></a>02287 }
-<a name="l02288"></a>02288 }
-<a name="l02289"></a>02289
-<a name="l02306"></a>02306 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02307"></a><a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18">02307</a> <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n) {
-<a name="l02308"></a>02308 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02309"></a>02309 <span class="keywordflow">if</span> (n.is_nan()) <span class="keywordflow">return</span> 0;
-<a name="l02310"></a>02310 <span class="keywordflow">try</span> {
-<a name="l02311"></a>02311 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(n._data());
-<a name="l02312"></a>02312 } <span class="keywordflow">catch</span> (std::exception&amp;) {
-<a name="l02313"></a>02313 <span class="keywordflow">return</span> 0;
-<a name="l02314"></a>02314 }
-<a name="l02315"></a>02315 } <span class="keywordflow">else</span> {
-<a name="l02316"></a>02316 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(n._data());
-<a name="l02317"></a>02317 }
-<a name="l02318"></a>02318 }
-<a name="l02320"></a>02320
-<a name="l02322"></a><a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd">02322</a> <span class="preprocessor">#define BOOST_XINT_ANY_COMPARE(rtype, op) \</span>
-<a name="l02323"></a>02323 <span class="preprocessor"> template &lt;class A0, class A1, class A2, class A3, class A4, typename N&gt; \</span>
-<a name="l02324"></a>02324 <span class="preprocessor"> rtype op(const BOOST_XINT_INTEGER_TYPE n1, const N n2) { \</span>
-<a name="l02325"></a>02325 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
-<a name="l02326"></a>02326 <span class="preprocessor"> try { \</span>
-<a name="l02327"></a>02327 <span class="preprocessor"> return op(n1, BOOST_XINT_INTEGER_TYPE(n2)); \</span>
-<a name="l02328"></a>02328 <span class="preprocessor"> } catch (std::exception&amp;) { \</span>
-<a name="l02329"></a>02329 <span class="preprocessor"> return rtype(0); \</span>
-<a name="l02330"></a>02330 <span class="preprocessor"> } \</span>
-<a name="l02331"></a>02331 <span class="preprocessor"> } else { \</span>
-<a name="l02332"></a>02332 <span class="preprocessor"> return op(n1, BOOST_XINT_INTEGER_TYPE(n2)); \</span>
-<a name="l02333"></a>02333 <span class="preprocessor"> } \</span>
-<a name="l02334"></a>02334 <span class="preprocessor"> } \</span>
-<a name="l02335"></a>02335 <span class="preprocessor"> \</span>
-<a name="l02336"></a>02336 <span class="preprocessor"> template &lt;typename N, class A0, class A1, class A2, class A3, class A4&gt; \</span>
-<a name="l02337"></a>02337 <span class="preprocessor"> rtype op(const N n1, const BOOST_XINT_INTEGER_TYPE n2) { \</span>
-<a name="l02338"></a>02338 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
-<a name="l02339"></a>02339 <span class="preprocessor"> try { \</span>
-<a name="l02340"></a>02340 <span class="preprocessor"> return op(BOOST_XINT_INTEGER_TYPE(n1), n2); \</span>
-<a name="l02341"></a>02341 <span class="preprocessor"> } catch (std::exception&amp;) { \</span>
-<a name="l02342"></a>02342 <span class="preprocessor"> return rtype(0); \</span>
-<a name="l02343"></a>02343 <span class="preprocessor"> } \</span>
-<a name="l02344"></a>02344 <span class="preprocessor"> } else { \</span>
-<a name="l02345"></a>02345 <span class="preprocessor"> return op(BOOST_XINT_INTEGER_TYPE(n1), n2); \</span>
-<a name="l02346"></a>02346 <span class="preprocessor"> } \</span>
-<a name="l02347"></a>02347 <span class="preprocessor"> }</span>
-<a name="l02348"></a>02348 <span class="preprocessor"></span>
-<a name="l02349"></a>02349 <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="l02350"></a>02350 <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="l02351"></a>02351 <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="l02352"></a>02352 <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="l02353"></a>02353 <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="l02354"></a>02354 <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="l02355"></a>02355 <a class="code" href="integer_8hpp.html#a0d448137aa53fae5fcb6f49444348cbd" title="Allows for comparisons between integer_t types and other integral values.">BOOST_XINT_ANY_COMPARE</a>(<span class="keywordtype">int</span>, <a class="code" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare</a>)
-<a name="l02356"></a>02356
-<a name="l02358"></a><a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090">02358</a> <span class="preprocessor">#define BOOST_XINT_ANY_MATH(op) \</span>
-<a name="l02359"></a>02359 <span class="preprocessor"> template &lt;class A0, class A1, class A2, class A3, class A4, typename N&gt; \</span>
-<a name="l02360"></a>02360 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE op(const BOOST_XINT_INTEGER_TYPE n1, const N n2) { \</span>
-<a name="l02361"></a>02361 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</span>
-<a name="l02362"></a>02362 <span class="preprocessor"> try { \</span>
-<a name="l02363"></a>02363 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(n1, BOOST_XINT_INTEGER_TYPE(n2)));\</span>
-<a name="l02364"></a>02364 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
-<a name="l02365"></a>02365 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02366"></a>02366 <span class="preprocessor"> } catch (std::exception&amp;) { \</span>
-<a name="l02367"></a>02367 <span class="preprocessor"> return BOOST_XINT_INTEGER_TYPE::nan(); \</span>
-<a name="l02368"></a>02368 <span class="preprocessor"> } \</span>
-<a name="l02369"></a>02369 <span class="preprocessor"> } else { \</span>
-<a name="l02370"></a>02370 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(n1, BOOST_XINT_INTEGER_TYPE(n2))); \</span>
-<a name="l02371"></a>02371 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
-<a name="l02372"></a>02372 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
+<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, class A0, class A1, class A2, class A3, class A4&gt; \</span>
-<a name="l02377"></a>02377 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE op(const N n1, const BOOST_XINT_INTEGER_TYPE n2) { \</span>
-<a name="l02378"></a>02378 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Nothrow) { \</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"> BOOST_XINT_INTEGER_TYPE r(op(BOOST_XINT_INTEGER_TYPE(n1), n2));\</span>
-<a name="l02381"></a>02381 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
-<a name="l02382"></a>02382 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02383"></a>02383 <span class="preprocessor"> } catch (std::exception&amp;) { \</span>
-<a name="l02384"></a>02384 <span class="preprocessor"> return BOOST_XINT_INTEGER_TYPE::nan(); \</span>
-<a name="l02385"></a>02385 <span class="preprocessor"> } \</span>
-<a name="l02386"></a>02386 <span class="preprocessor"> } else { \</span>
-<a name="l02387"></a>02387 <span class="preprocessor"> BOOST_XINT_INTEGER_TYPE r(op(BOOST_XINT_INTEGER_TYPE(n1), n2)); \</span>
-<a name="l02388"></a>02388 <span class="preprocessor"> if (BOOST_XINT_INTEGER_TYPE::Threadsafe == true) r._make_unique(); \</span>
-<a name="l02389"></a>02389 <span class="preprocessor"> return BOOST_XINT_MOVE(r); \</span>
-<a name="l02390"></a>02390 <span class="preprocessor"> } \</span>
-<a name="l02391"></a>02391 <span class="preprocessor"> }</span>
-<a name="l02392"></a>02392 <span class="preprocessor"></span>
-<a name="l02393"></a>02393 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>)
-<a name="l02394"></a>02394 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>)
-<a name="l02395"></a>02395 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>)
-<a name="l02396"></a>02396 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>)
-<a name="l02397"></a>02397 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>)
-<a name="l02398"></a>02398 <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="l02399"></a>02399 <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="l02400"></a>02400 <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="l02401"></a>02401 <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="l02402"></a>02402 <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="l02403"></a>02403 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator&amp;)
-<a name="l02404"></a>02404 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator|)
-<a name="l02405"></a>02405 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(operator^)
-<a name="l02406"></a>02406 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e" title="Calculate the Greatest Common Denominator of two integers.">gcd</a>)
-<a name="l02407"></a>02407 <a class="code" href="integer_8hpp.html#a156a9c77202e0b05ebf2cc2494d6f090" title="Allows for operations between integer_t types and other integral values.">BOOST_XINT_ANY_MATH</a>(<a class="code" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4" title="Calculate the Least Common Multiple of two integers.">lcm</a>)
-<a name="l02408"></a>02408
-<a name="l02411"></a>02411 template &lt;typename charT, typename traits, class A0, class A1, class A2, class
-<a name="l02412"></a>02412 A3, class A4&gt; inline std::basic_ostream&lt;charT,traits&gt;&amp;
-<a name="l02413"></a><a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">02413</a> operator&lt;&lt;(std::basic_ostream&lt;charT, traits&gt;&amp; out, const
-<a name="l02414"></a>02414 <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a> n)
-<a name="l02415"></a>02415 {
-<a name="l02416"></a>02416 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow &amp;&amp; n.is_nan()) <span class="keywordflow">return</span> <span class="keyword">operator</span>&lt;&lt;(out,
-<a name="l02417"></a>02417 detail::nan_text&lt;charT&gt;());
-<a name="l02418"></a>02418 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">operator&lt;&lt;</a>(out, n._data());
-<a name="l02419"></a>02419 }
-<a name="l02420"></a>02420
-<a name="l02421"></a>02421 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> charT, <span class="keyword">typename</span> traits, <span class="keyword">class </span>A0, <span class="keyword">class </span>A1, <span class="keyword">class </span>A2, <span class="keyword">class</span>
-<a name="l02422"></a>02422 A3, <span class="keyword">class </span>A4&gt; <span class="keyword">inline</span> std::basic_istream&lt;charT,traits&gt;&amp;
-<a name="l02423"></a><a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">02423</a> <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator&gt;&gt;</a>(std::basic_istream&lt;charT, traits&gt;&amp; in, <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp;
-<a name="l02424"></a>02424 n)
-<a name="l02425"></a>02425 {
-<a name="l02426"></a>02426 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPE::Nothrow) {
-<a name="l02427"></a>02427 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; tnan = detail::nan_text&lt;charT&gt;();
-<a name="l02428"></a>02428 charT nextchar = charT(in.peek());
-<a name="l02429"></a>02429 <span class="keywordflow">if</span> (nextchar == tnan[0]) {
-<a name="l02430"></a>02430 <span class="comment">// Must be either #NaN# or an error</span>
-<a name="l02431"></a>02431 std::vector&lt;charT&gt; buffer;
-<a name="l02432"></a>02432
-<a name="l02433"></a>02433 charT p = 0;
-<a name="l02434"></a>02434 <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; tnan.length(); ++i) {
-<a name="l02435"></a>02435 in &gt;&gt; p;
-<a name="l02436"></a>02436 buffer.push_back(p);
-<a name="l02437"></a>02437 }
-<a name="l02438"></a>02438 buffer.push_back(0);
-<a name="l02439"></a>02439
-<a name="l02440"></a>02440 std::basic_string&lt;charT&gt; str(&amp;buffer[0]);
-<a name="l02441"></a>02441 <span class="keywordflow">if</span> (str == tnan) n = n.nan();
-<a name="l02442"></a>02442 <span class="keywordflow">else</span> in.setstate(std::ios::failbit);
-<a name="l02443"></a>02443 <span class="keywordflow">return</span> in;
-<a name="l02444"></a>02444 }
-<a name="l02445"></a>02445 }
-<a name="l02446"></a>02446 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator&gt;&gt;</a>(in, n._data());
-<a name="l02447"></a>02447 }
-<a name="l02449"></a>02449
-<a name="l02450"></a>02450 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02451"></a><a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">02451</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(<a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; left, <a class="code" href="integer_8hpp.html#a4aaa66b9b8169b785506dfaf7de1fcd7">BOOST_XINT_INTEGER_TYPE</a>&amp; right)
-<a name="l02452"></a>02452 {
-<a name="l02453"></a>02453 left._swap(right);
-<a name="l02454"></a>02454 }
-<a name="l02455"></a>02455
-<a name="l02460"></a><a class="code" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">02460</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;&gt;</a> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer</a>;
-<a name="l02461"></a>02461
-<a name="l02467"></a><a class="code" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4">02467</a> <span class="keyword">typedef</span> <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t&lt;options::nothrow&lt;true&gt;</a> &gt; <a class="code" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">nothrow_integer</a>;
+<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="l02469"></a>02469 } <span class="comment">// namespace xint</span>
-<a name="l02470"></a>02470 } <span class="comment">// namespace boost</span>
-<a name="l02471"></a>02471
-<a name="l02472"></a>02472 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l02473"></a>02473 <span class="preprocessor"></span><span class="keyword">namespace </span>std {
-<a name="l02474"></a>02474
-<a name="l02475"></a>02475 <span class="preprocessor">#define BOOST_XINT_INTEGER_TYPENAME boost::xint::integer_t&lt;A0, A1, A2, A3, A4&gt;</span>
-<a name="l02476"></a>02476 <span class="preprocessor"></span>
-<a name="l02477"></a>02477 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02478"></a>02478 <span class="keyword">class </span>numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt; {
-<a name="l02479"></a>02479 <span class="keyword">public</span>:
-<a name="l02480"></a>02480 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_specialized;
-<a name="l02481"></a>02481
-<a name="l02482"></a>02482 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME min BOOST_PREVENT_MACRO_SUBSTITUTION()
-<a name="l02483"></a>02483 <span class="keywordflow">throw</span>()
-<a name="l02484"></a>02484 {
-<a name="l02485"></a>02485 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPENAME::Bits)
-<a name="l02486"></a>02486 <span class="keywordflow">return</span> -~(BOOST_XINT_INTEGER_TYPENAME());
-<a name="l02487"></a>02487 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02488"></a>02488 }
-<a name="l02489"></a>02489 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME max BOOST_PREVENT_MACRO_SUBSTITUTION()
-<a name="l02490"></a>02490 throw()
-<a name="l02491"></a>02491 {
-<a name="l02492"></a>02492 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPENAME::Bits)
-<a name="l02493"></a>02493 <span class="keywordflow">return</span> ~(BOOST_XINT_INTEGER_TYPENAME());
-<a name="l02494"></a>02494 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02495"></a>02495 }
-<a name="l02496"></a>02496
-<a name="l02497"></a>02497 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits;
-<a name="l02498"></a>02498 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> digits10;
-<a name="l02499"></a>02499 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_signed;
-<a name="l02500"></a>02500 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_integer;
-<a name="l02501"></a>02501 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_exact;
-<a name="l02502"></a>02502 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> radix;
-<a name="l02503"></a>02503 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME epsilon() throw() { <span class="keywordflow">return</span> 0; }
-<a name="l02504"></a>02504 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME round_error() throw() { <span class="keywordflow">return</span> 0; }
-<a name="l02505"></a>02505
-<a name="l02506"></a>02506 <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="l02507"></a>02507 <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="l02508"></a>02508 <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="l02509"></a>02509 <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="l02510"></a>02510
-<a name="l02511"></a>02511 <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="l02512"></a>02512 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> has_quiet_NaN;
-<a name="l02513"></a>02513 <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="l02514"></a>02514 <span class="keyword">static</span> <span class="keyword">const</span> float_denorm_style has_denorm; <span class="comment">// N/A</span>
-<a name="l02515"></a>02515 <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="l02516"></a>02516
-<a name="l02517"></a>02517 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME infinity() throw() { <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02518"></a>02518 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME quiet_NaN() throw() {
-<a name="l02519"></a>02519 <span class="keywordflow">if</span> (BOOST_XINT_INTEGER_TYPENAME::Nothrow)
-<a name="l02520"></a>02520 <span class="keywordflow">return</span> BOOST_XINT_INTEGER_TYPENAME::nan();
-<a name="l02521"></a>02521 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
-<a name="l02522"></a>02522 }
-<a name="l02523"></a>02523 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME signaling_NaN() throw() { <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02524"></a>02524 <span class="keyword">static</span> BOOST_XINT_INTEGER_TYPENAME denorm_min() throw() { <span class="keywordflow">return</span> 0; } <span class="comment">// N/A</span>
-<a name="l02525"></a>02525
-<a name="l02526"></a>02526 <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="l02527"></a>02527 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_bounded;
-<a name="l02528"></a>02528 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_modulo;
-<a name="l02529"></a>02529
-<a name="l02530"></a>02530 <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="l02531"></a>02531 <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="l02532"></a>02532 <span class="keyword">static</span> <span class="keyword">const</span> float_round_style round_style; <span class="comment">// N/A</span>
-<a name="l02533"></a>02533 };
+<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 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02536"></a>02536 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::is_specialized = <span class="keyword">true</span>;
+<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 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02539"></a>02539 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::digits =
-<a name="l02540"></a>02540 <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(BOOST_XINT_INTEGER_TYPENAME::Bits);
-<a name="l02541"></a>02541
-<a name="l02542"></a>02542 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02543"></a>02543 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::digits10 =
-<a name="l02544"></a>02544 <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(boost::xint::detail::log10_bits(
-<a name="l02545"></a>02545 BOOST_XINT_INTEGER_TYPENAME::Bits));
-<a name="l02546"></a>02546
-<a name="l02547"></a>02547 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02548"></a>02548 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::is_signed = <span class="keyword">true</span>;
-<a name="l02549"></a>02549
-<a name="l02550"></a>02550 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02551"></a>02551 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::is_integer = <span class="keyword">true</span>;
-<a name="l02552"></a>02552
-<a name="l02553"></a>02553 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02554"></a>02554 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::is_exact = <span class="keyword">true</span>;
-<a name="l02555"></a>02555
-<a name="l02556"></a>02556 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02557"></a>02557 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::radix = 2;
-<a name="l02558"></a>02558
-<a name="l02559"></a>02559 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02560"></a>02560 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::min_exponent = 0;
-<a name="l02561"></a>02561
-<a name="l02562"></a>02562 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02563"></a>02563 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::min_exponent10 = 0;
-<a name="l02564"></a>02564
-<a name="l02565"></a>02565 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02566"></a>02566 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::max_exponent = 0;
-<a name="l02567"></a>02567
-<a name="l02568"></a>02568 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02569"></a>02569 <span class="keyword">const</span> <span class="keywordtype">int</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::max_exponent10 = 0;
-<a name="l02570"></a>02570
-<a name="l02571"></a>02571 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02572"></a>02572 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::has_infinity = <span class="keyword">false</span>;
+<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 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02575"></a>02575 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::has_quiet_NaN =
-<a name="l02576"></a>02576 (BOOST_XINT_INTEGER_TYPENAME::Nothrow ? <span class="keyword">true</span> : <span class="keyword">false</span>);
-<a name="l02577"></a>02577
-<a name="l02578"></a>02578 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02579"></a>02579 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::has_signaling_NaN =
-<a name="l02580"></a>02580 <span class="keyword">false</span>;
-<a name="l02581"></a>02581
-<a name="l02582"></a>02582 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02583"></a>02583 <span class="keyword">const</span> float_denorm_style numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::has_denorm
-<a name="l02584"></a>02584 = denorm_absent;
-<a name="l02585"></a>02585
-<a name="l02586"></a>02586 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02587"></a>02587 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::has_denorm_loss = <span class="keyword">false</span>;
-<a name="l02588"></a>02588
-<a name="l02589"></a>02589 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02590"></a>02590 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::is_iec559 = <span class="keyword">false</span>;
+<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 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02593"></a>02593 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::is_bounded =
-<a name="l02594"></a>02594 (BOOST_XINT_INTEGER_TYPENAME::Bits == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>);
+<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 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02597"></a>02597 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::is_modulo =
-<a name="l02598"></a>02598 (BOOST_XINT_INTEGER_TYPENAME::Bits == 0 ? <span class="keyword">false</span> : <span class="keyword">true</span>);
-<a name="l02599"></a>02599
-<a name="l02600"></a>02600 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02601"></a>02601 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::traps =
-<a name="l02602"></a>02602 (BOOST_XINT_INTEGER_TYPENAME::Nothrow ? <span class="keyword">false</span> : <span class="keyword">true</span>);
-<a name="l02603"></a>02603
-<a name="l02604"></a>02604 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02605"></a>02605 <span class="keyword">const</span> <span class="keywordtype">bool</span> numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::tinyness_before = <span class="keyword">false</span>;
-<a name="l02606"></a>02606
-<a name="l02607"></a>02607 <a class="code" href="integer_8hpp.html#ae52121dc019a317d3d044eb35e44b817">BOOST_XINT_INTEGER_TPL</a>
-<a name="l02608"></a>02608 <span class="keyword">const</span> float_round_style numeric_limits&lt;BOOST_XINT_INTEGER_TYPENAME&gt;::round_style
-<a name="l02609"></a>02609 = round_indeterminate;
-<a name="l02610"></a>02610
-<a name="l02611"></a>02611 } <span class="comment">// namespace std</span>
-<a name="l02612"></a>02612 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
-<a name="l02613"></a>02613 <span class="preprocessor"></span><span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_HPP</span>
+<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>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -50,7 +50,7 @@
 
 <p>Definition in file <a class="el" href="internals_8hpp_source.html">internals.hpp</a>.</p>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -73,55 +73,68 @@
 <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="l00057"></a>00057 <span class="preprocessor">#include &quot;<a class="code" href="options_8hpp.html" title="Declares the arbitrary-length integer type.">options.hpp</a>&quot;</span>
-<a name="l00058"></a>00058
-<a name="l00061"></a>00061
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 <span class="keyword">namespace </span>boost {
-<a name="l00066"></a>00066 <span class="keyword">namespace </span>xint {
-<a name="l00067"></a>00067 <span class="keyword">namespace </span>detail {
-<a name="l00069"></a>00069
-<a name="l00070"></a>00070 <span class="keyword">inline</span> std::size_t log10_bits(std::size_t bits) {
-<a name="l00071"></a>00071 <span class="comment">// large_step and count_per_large_step are based on a minimum-32-bit integer</span>
-<a name="l00072"></a>00072 assert(std::numeric_limits&lt;boost::intmax_t&gt;::digits &gt;= 32);
-<a name="l00073"></a>00073
-<a name="l00074"></a>00074 <span class="keyword">typedef</span> raw_integer_t&lt;0, false, std::allocator&lt;digit_t&gt; &gt; T;
-<a name="l00075"></a>00075 <span class="keyword">const</span> T large_step(1000000000), small_step(10);
-<a name="l00076"></a>00076 <span class="keyword">const</span> std::size_t count_per_large_step = 9, count_per_small_step = 1;
-<a name="l00077"></a>00077
-<a name="l00078"></a>00078 T n;
-<a name="l00079"></a>00079 pow2(n, bits);
-<a name="l00080"></a>00080 --n;
-<a name="l00081"></a>00081
-<a name="l00082"></a>00082 std::size_t r = 0;
-<a name="l00083"></a>00083 <span class="keywordflow">while</span> (n &gt;= large_step) { n /= large_step; r += count_per_large_step; }
-<a name="l00084"></a>00084 <span class="keywordflow">while</span> (n &gt;= small_step) { n /= small_step; r += count_per_small_step; }
-<a name="l00085"></a>00085 <span class="keywordflow">return</span> r;
-<a name="l00086"></a>00086 }
-<a name="l00087"></a>00087
-<a name="l00088"></a>00088 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00089"></a>00089 <span class="keyword">const</span> std::basic_string&lt;charT&gt;&amp; nan_text() {
-<a name="l00090"></a>00090 <span class="keyword">static</span> std::basic_string&lt;charT&gt; r;
-<a name="l00091"></a>00091 <span class="keywordflow">if</span> (r.empty()) {
-<a name="l00092"></a>00092 std::basic_ostringstream&lt;charT&gt; out;
-<a name="l00093"></a>00093 out &lt;&lt; <span class="stringliteral">&quot;#NaN#&quot;</span>;
-<a name="l00094"></a>00094 r = out.str();
-<a name="l00095"></a>00095 }
-<a name="l00096"></a>00096 <span class="keywordflow">return</span> r;
-<a name="l00097"></a>00097 }
-<a name="l00098"></a>00098
-<a name="l00099"></a>00099 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> <span class="keywordtype">char</span>T&gt;
-<a name="l00100"></a>00100 <span class="keywordtype">bool</span> is_nan_text(<span class="keyword">const</span> std::basic_string&lt;charT&gt; str) {
-<a name="l00101"></a>00101 <span class="keywordflow">return</span> (str == nan_text&lt;charT&gt;());
-<a name="l00102"></a>00102 }
-<a name="l00103"></a>00103
-<a name="l00105"></a>00105 } <span class="comment">// namespace detail</span>
-<a name="l00106"></a>00106 } <span class="comment">// namespace xint</span>
-<a name="l00107"></a>00107 } <span class="comment">// namespace boost</span>
-<a name="l00108"></a>00108
-<a name="l00109"></a>00109 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTERNALS_HPP</span>
+<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="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="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>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -70,16 +70,16 @@
 <a name="l00052"></a>00052 }
 <a name="l00053"></a>00053
 <a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;
-<a name="l00055"></a>00055 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> T n,
+<a name="l00055"></a>00055 <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> T n,
 <a name="l00056"></a>00056 <span class="keyword">typename</span> boost::enable_if&lt;boost::is_integral&lt;T&gt; &gt;::type* = 0)
 <a name="l00057"></a>00057 {
 <a name="l00058"></a>00058 <span class="keywordflow">return</span> log2_helper(n);
 <a name="l00059"></a>00059 }
 <a name="l00060"></a>00060
 <a name="l00061"></a>00061 BOOST_XINT_RAWINT_TPL
-<a name="l00062"></a>00062 <span class="keywordtype">size_t</span> <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n) {
+<a name="l00062"></a>00062 <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> BOOST_XINT_RAWINT n) {
 <a name="l00063"></a>00063 std::size_t r = bits_per_digit * (n.length - 1);
-<a name="l00064"></a>00064 <span class="keywordflow">return</span> r + <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(n[n.length - 1]);
+<a name="l00064"></a>00064 <span class="keywordflow">return</span> r + <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(n[n.length - 1]);
 <a name="l00065"></a>00065 }
 <a name="l00066"></a>00066
 <a name="l00068"></a>00068 } <span class="comment">// namespace detail</span>
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -79,8 +79,8 @@
 <a name="l00061"></a>00061 <span class="keywordtype">void</span> trim() { fixedlength_t&lt;Bits&gt;::trim(raw_data); }
 <a name="l00062"></a>00062
 <a name="l00063"></a>00063 <span class="keywordtype">void</span> _swap(magnitude_manager_t&lt;Bits, Secure, Allocator&gt;&amp; i2) {
-<a name="l00064"></a>00064 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
-<a name="l00065"></a>00065 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(raw_data, i2.raw_data);
+<a name="l00064"></a>00064 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">std::swap</a>;
+<a name="l00065"></a>00065 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(raw_data, i2.raw_data);
 <a name="l00066"></a>00066 }
 <a name="l00067"></a>00067
 <a name="l00068"></a>00068 <span class="keyword">private</span>:
@@ -98,7 +98,7 @@
 <a name="l00080"></a>00080 };
 <a name="l00081"></a>00081
 <a name="l00082"></a>00082 <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> Allocator&gt;
-<a name="l00083"></a>00083 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(magnitude_manager_t&lt;Bits, Secure, Allocator&gt;&amp; p1,
+<a name="l00083"></a>00083 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(magnitude_manager_t&lt;Bits, Secure, Allocator&gt;&amp; p1,
 <a name="l00084"></a>00084 magnitude_manager_t&lt;Bits, Secure, Allocator&gt;&amp; p2)
 <a name="l00085"></a>00085 {
 <a name="l00086"></a>00086 p1._swap(p2);
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -44,21 +44,21 @@
 <a name="l00026"></a>00026 <span class="keyword">namespace </span>detail {
 <a name="l00027"></a>00027
 <a name="l00028"></a>00028 BOOST_XINT_RAWINT_TPL
-<a name="l00029"></a>00029 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564" title="Get the modular product of two integers.">mulmod</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">const</span> BOOST_XINT_RAWINT by,
+<a name="l00029"></a>00029 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625" title="Get the modular product of two integers.">mulmod</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">const</span> BOOST_XINT_RAWINT by,
 <a name="l00030"></a>00030 <span class="keyword">const</span> BOOST_XINT_RAWINT modulus)
 <a name="l00031"></a>00031 {
 <a name="l00032"></a>00032 <span class="keywordflow">return</span> n * by % modulus;
 <a name="l00033"></a>00033 }
 <a name="l00034"></a>00034
 <a name="l00035"></a>00035 BOOST_XINT_RAWINT_TPL
-<a name="l00036"></a>00036 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">const</span> BOOST_XINT_RAWINT
+<a name="l00036"></a>00036 BOOST_XINT_RAWINT <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> BOOST_XINT_RAWINT n, <span class="keyword">const</span> BOOST_XINT_RAWINT
 <a name="l00037"></a>00037 modulus)
 <a name="l00038"></a>00038 {
-<a name="l00039"></a>00039 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">square</a>(n) % modulus;
+<a name="l00039"></a>00039 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">square</a>(n) % modulus;
 <a name="l00040"></a>00040 }
 <a name="l00041"></a>00041
 <a name="l00042"></a>00042 BOOST_XINT_RAWINT_TPL
-<a name="l00043"></a>00043 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">const</span> BOOST_XINT_RAWINT e,
+<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();
@@ -83,8 +83,8 @@
 <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#a2503b80a8b59b45190ea024884405564" 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#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(p, m);
+<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 }
@@ -101,7 +101,7 @@
 <a name="l00084"></a>00084 <span class="comment"></span>
 <a name="l00085"></a>00085 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_MODULAR_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -71,7 +71,7 @@
 <a name="l00059"></a>00059 <span class="keywordtype">void</span> fromMontgomeryForm(BOOST_XINT_RAWINT&amp; target, <span class="keyword">const</span> BOOST_XINT_RAWINT n,
 <a name="l00060"></a>00060 <span class="keyword">const</span> BOOST_XINT_RAWINT m)
 <a name="l00061"></a>00061 {
-<a name="l00062"></a>00062 BOOST_XINT_RAWINT mont(montgomeryR(m)), inv = <a class="code" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad" title="Get the modular inverse of a number in a modulus, if there is one.">invmod</a>(mont, m);
+<a name="l00062"></a>00062 BOOST_XINT_RAWINT mont(montgomeryR(m)), inv = <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>(mont, m);
 <a name="l00063"></a>00063 target = n * inv % m;
 <a name="l00064"></a>00064 }
 <a name="l00065"></a>00065
@@ -161,7 +161,7 @@
 <a name="l00152"></a>00152
 <a name="l00153"></a>00153 BOOST_XINT_RAWINT_TPL
 <a name="l00154"></a>00154 <span class="keywordtype">int</span> mostEfficientK(<span class="keyword">const</span> BOOST_XINT_RAWINT e) {
-<a name="l00155"></a>00155 doubledigit_t k = cMaxK, kTarget = <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(e) - 1;
+<a name="l00155"></a>00155 doubledigit_t k = cMaxK, kTarget = <a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(e) - 1;
 <a name="l00156"></a>00156 <span class="keywordflow">while</span> (k &gt; 1 &amp;&amp; ((k - 1) * (k &lt;&lt; ((k - 1) &lt;&lt; 1))
 <a name="l00157"></a>00157 / (ddPowerOfTwo(k) - k - 1)) &gt;= kTarget)
 <a name="l00158"></a>00158 --k;
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -44,7 +44,7 @@
 <a name="l00026"></a>00026 <span class="keyword">namespace </span>detail {
 <a name="l00027"></a>00027
 <a name="l00028"></a>00028 BOOST_XINT_RAWINT_TPL
-<a name="l00029"></a>00029 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">square</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n) {
+<a name="l00029"></a>00029 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">square</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n) {
 <a name="l00030"></a>00030 <span class="keyword">const</span> digit_t *ndigits = n.digits();
 <a name="l00031"></a>00031 std::size_t nlen = n.length;
 <a name="l00032"></a>00032
@@ -115,9 +115,9 @@
 <a name="l00097"></a>00097
 <a name="l00098"></a>00098 <span class="keywordflow">if</span> (n.same_storage(by)) {
 <a name="l00099"></a>00099 <span class="keywordflow">if</span> (n.negative != by.negative) {
-<a name="l00100"></a>00100 <span class="keywordflow">return</span> BOOST_XINT_RAWINT(<a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">square</a>(n), <span class="keyword">true</span>);
+<a name="l00100"></a>00100 <span class="keywordflow">return</span> BOOST_XINT_RAWINT(<a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">square</a>(n), <span class="keyword">true</span>);
 <a name="l00101"></a>00101 } <span class="keywordflow">else</span> {
-<a name="l00102"></a>00102 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">square</a>(n);
+<a name="l00102"></a>00102 <span class="keywordflow">return</span> <a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">square</a>(n);
 <a name="l00103"></a>00103 }
 <a name="l00104"></a>00104 }
 <a name="l00105"></a>00105
@@ -170,7 +170,7 @@
 <a name="l00152"></a>00152 }
 <a name="l00153"></a>00153
 <a name="l00154"></a>00154 BOOST_XINT_RAWINT_TPL
-<a name="l00155"></a>00155 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455" title="Calculate the product of two integers.">operator*</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
+<a name="l00155"></a>00155 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#ab33a5481a4a4b16ab592be6a88cd245c" title="Calculate the product of two integers.">operator*</a>(<span class="keyword">const</span> BOOST_XINT_RAWINT n1, <span class="keyword">const</span> BOOST_XINT_RAWINT
 <a name="l00156"></a>00156 n2)
 <a name="l00157"></a>00157 {
 <a name="l00158"></a>00158 <span class="keywordflow">return</span> multiply(n1, n2);
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -34,7 +34,7 @@
 </p>
 </table>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -65,168 +65,171 @@
 <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">integer</a></td></tr>
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The default arbitrary-length integer type. <br/></td></tr>
 <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>&lt; true &gt; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4">nothrow_integer</a></td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The default arbitrary-length nothrow_integer type. <br/></td></tr>
+&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 <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="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#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a> (<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;left, <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;right)</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>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp196dd2a5f50860e057df961a96d84ea3"></a> There are only a couple of functions here because almost all mathematical primitives are implemented as operators. </p>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp196dd2a5f50860e057df961a96d84ea3"></a> There are only a few functions here because almost all mathematical primitives are implemented as operators. </p>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523">abs</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute value of an integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a331d95962aedbdb34f04ef373555dd8a">abs</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the absolute value of an integer. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1base__divide__t.html">integer_t::divide_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4">divide</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> dividend, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> divisor)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>, with the remainder. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae58734c3f93951819e43af9fff2b9496">difference</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the absolute difference between two integers. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;::divide_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452">divide</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; dividend, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; divisor)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>, with the remainder. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Bit-manipulation functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpcc775c18f98f26f2b84ac7a2558636f2"></a> </p>
 </div></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#a9f0fe7813dc7e6d6d92b64cd68677175">clearbit</a> (<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> bit)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to zero. <br/></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#a5643216f91a4bb39bd88c1dc877e6ab8">clearbit</a> (<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to zero. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba">getbit</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> bit)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Queries the value of a particular bit in an integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a">getbit</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Queries the value of a particular bit in an integer. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0">highestbit</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> return_if_zero=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the highest bit in an integer with a value of one. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e">highestbit</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> return_if_zero=0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the highest bit in an integer with a value of one. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4">lowestbit</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> return_if_zero=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the lowest bit in an integer with a value of one. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7">lowestbit</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> return_if_zero=0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtains the index of the lowest bit in an integer with a value of one. <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#ac16087b6d58edabc3b67c94e63e22921">setbit</a> (<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> bit)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to one. <br/></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#ae957235f76cb2fa0e1530255ccbfa8d0">setbit</a> (<a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> bit)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a specific bit in an integer to one. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Miscellaneous functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp458f92801f3edfaf2e30b1f530c324e2"></a> </p>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0">compare</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2, bool ignoresign=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two integer objects. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5">compare</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2, bool ignoresign=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare two integer objects. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e">gcd</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> num1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> num2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Greatest Common Denominator of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4">gcd</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; num1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; num2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Greatest Common Denominator of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4">lcm</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> num1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> num2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Least Common Multiple of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0">lcm</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; num1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; num2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the Least Common Multiple of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18">log2</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the log<sub>2</sub> value of an integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b">log2</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the log<sub>2</sub> value of an integer. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Modular math functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpbf63e6a6a1029bb25b7aa51052b38655"></a> A common reason to use a large-integer library is to implement public-key encryption, and the algorithms for such encryption often use modular math.</p>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67" title="Get the remainder after dividing a number by another.">operator%(integer_t, integer_t)</a> </dd>
+<dl class="see"><dt><b>See also:</b></dt><dd>operator%(integer_t, integer_t) </dd>
 <dd>
-<a class="el" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">integer_t::operator%=</a> </dd></dl>
+<a class="el" href="classboost_1_1xint_1_1integer__t.html#a2144da90955b26120f5cfc724a24b8fc">integer_t::operator%=</a> </dd></dl>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad">invmod</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> modulus)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular inverse of a number in a modulus, if there is one. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b">invmod</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; modulus)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular inverse of a number in a modulus, if there is one. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564">mulmod</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> by, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> modulus)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625">mulmod</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; by, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; modulus)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0">powmod</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> exponent, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> modulus, bool no_monty=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the result of <code>n<sup>e</sup></code> % <code>m</code>, keeping the intermediate results (relatively) small. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815">powmod</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; exponent, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; modulus, bool no_monty=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the result of <code>n<sup>e</sup></code> % <code>m</code>, keeping the intermediate results (relatively) small. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877">sqrmod</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> modulus)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of squaring an integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3">sqrmod</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; modulus)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the modular product of squaring an integer. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Random and prime number functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpa3caa0f3187a2dcc617c005b6b75011b"></a> </p>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2" title="Generates a random integer with specific attributes.">integer_t::random_by_size</a> </dd>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683" title="Generates a random integer with specific attributes.">integer_t::random_by_size</a> </dd>
 <dd>
-<a class="el" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02" title="Generate a randomly-generated prime number of a particular bit-size.">integer_t::random_prime</a> </dd></dl>
+<a class="el" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947" title="Generate a randomly-generated prime number of a particular bit-size.">integer_t::random_prime</a> </dd></dl>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4">is_prime</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, <a class="el" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback=<a class="el" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">no_callback</a>)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests an integer for primality. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace">is_prime</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, <a class="el" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">callback_t</a> callback=<a class="el" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">no_callback</a>)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests an integer for primality. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Comparison Operators</div></td></tr>
-<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp54923b9793dae891d9489cc5947f263a"></a> The nothrow&lt;true&gt; versions of these functions return <code>false</code> instead of throwing.</p>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0" title="Compare two integer objects.">compare(integer_t, integer_t, bool)</a> </dd></dl>
+<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp54923b9793dae891d9489cc5947f263a"></a> The nothrow versions of these functions return <code>false</code> instead of throwing.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd>compare(integer_t, integer_t, bool) </dd></dl>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">operator!=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">operator!=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">operator&lt;</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">operator&lt;</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">operator&lt;=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">operator&lt;=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">operator==</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">operator==</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">operator&gt;</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">operator&gt;</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">operator&gt;=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">operator&gt;=</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Mathematical and Bitwise Operators</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp8eb1e0f0af70edd858d54ba68b80ce7e"></a> These act exactly the same as for the built-in integer types. </p>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67">operator%</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the remainder after dividing a number by another. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0ac4116f3a9285a7f2f10d0104b870f7">operator%</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the remainder after dividing a number by another. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3">operator&amp;</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>AND</code> operation. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad3bc201c8c1f3e87611abce8e6972538">operator&amp;</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>AND</code> operation. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455">operator*</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the product of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab33a5481a4a4b16ab592be6a88cd245c">operator*</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the product of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915">operator+</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the sum of two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da">operator+</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the sum of two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27">operator-</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the difference between two integers. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ab6132105fbe7d7bf7a756b868b6a372e">operator-</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the difference between two integers. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21">operator/</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> dividend, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> divisor)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a806df63b92124039591a4ca09a8538e0">operator/</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; dividend, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; divisor)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate how many <code>dividends</code> would fit into <code>divisor</code>. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025">operator^</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>XOR</code> operation. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0d1ce319bfb004fb6b93283bcb4f98c2">operator^</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>XOR</code> operation. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075">operator|</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n2)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>OR</code> operation. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0b58f99b2c5bab4f7eec71d6058b23dd">operator|</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n1, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n2)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Combine two integers using a bitwise <code>OR</code> operation. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Stream input/output functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpd9927783c44c1aad288df0ab8bfa9ddf"></a> </p>
 </div></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits , ... &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_ostream&lt; charT, <br class="typebreak"/>
-traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">operator&lt;&lt;</a> (std::basic_ostream&lt; charT, traits &gt; &amp;out, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n)</td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </td></tr>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">operator&lt;&lt;</a> (std::basic_ostream&lt; charT, traits &gt; &amp;out, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n)</td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , typename traits , ... &gt; </td></tr>
 <tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_istream&lt; charT, <br class="typebreak"/>
-traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator&gt;&gt;</a> (std::basic_istream&lt; charT, traits &gt; &amp;in, <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> &amp;n)</td></tr>
+traits &gt; &amp;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a> (std::basic_istream&lt; charT, traits &gt; &amp;in, <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; &amp;n)</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Powers and roots</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp928a8cb047602f789d7433e262ed4560"></a> </p>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classboost_1_1xint_1_1integer__t.html#a5d14ff656a3464ecf2e81d490f1acb76" title="Calculate the value of 2e">integer_t::pow2</a> </dd>
+<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classboost_1_1xint_1_1integer__t.html#af1ba624cd3a118bad2f8b603837bd952" title="Calculate the value of 2e">integer_t::pow2</a> </dd>
 <dd>
-<a class="el" href="classboost_1_1xint_1_1integer__t.html#a7bc8e4868073626d1ea0dc7e9668f6e0" title="Calculate the value of n! ">integer_t::factorial</a> </dd></dl>
+<a class="el" href="classboost_1_1xint_1_1integer__t.html#aaa28dad29e0a3fd16ec4bb26ec241a65" title="Calculate the value of n! ">integer_t::factorial</a> </dd></dl>
 </div></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52">pow</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> e)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>e</sup> <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644">pow</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; e)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>e</sup> <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424">square</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>2</sup> <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd">square</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the value of n<sup>2</sup> <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2">square_root</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the square root of <code>an</code> integer. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42">square_root</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculate the square root of <code>an</code> integer. <br/></td></tr>
 <tr><td colspan="2"><div class="groupHeader">Conversion functions</div></td></tr>
 <tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9c2e8a06d85d2c9b83b5a0d27e85d535"></a> Note that these only convert an integer type to something else. See the integer constructors for conversions the other way. </p>
 </div></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename T , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69">to</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts an <a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">xint::integer</a> type to a built-in integer type. <br/></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40">to_binary</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> bits=0)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a binary representation of an integer. <br/></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a92cfd4119fbf9eeb0a503d4e0dbe553c">to_string</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, std::size_t base=10, bool uppercase=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">to_stringtype&lt;char&gt;</a>. <br/></td></tr>
-<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; charT &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">to_stringtype</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, std::size_t base=10, bool uppercase=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a string representation of the specified integer. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename T , ... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a9aa52eb4533b04c27329b3f6b7aa842b">to</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts an <a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c" title="The default arbitrary-length integer type.">xint::integer</a> type to a built-in integer type. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b">to_binary</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, <a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> bits=0)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a binary representation of an integer. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::string&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2fb5a8cfac3e97a1641d424aac04a71f">to_string</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, std::size_t base=10, bool uppercase=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">to_stringtype&lt;char&gt;</a>. <br/></td></tr>
+<tr><td class="memTemplParams" colspan="2">template&lt;typename charT , ... &gt; </td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::basic_string&lt; charT &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">to_stringtype</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, std::size_t base=10, bool uppercase=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a string representation of the specified integer. <br/></td></tr>
 <tr><td class="memTemplParams" colspan="2">template&lt;... &gt; </td></tr>
-<tr><td class="memTemplItemLeft" align="right" valign="top">std::wstring&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a2493d0acb308a3ec0abd7326d9bc6a27">to_wstring</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> n, std::size_t base=10, bool uppercase=false)</td></tr>
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">to_stringtype&lt;wchar_t&gt;</a>. <br/></td></tr>
+<tr><td class="memTemplItemLeft" align="right" valign="top">std::wstring&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html#a6f24b4e0dc6e6c5de02480f5fb352030">to_wstring</a> (const <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; n, std::size_t base=10, bool uppercase=false)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">to_stringtype&lt;wchar_t&gt;</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">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>
@@ -249,7 +252,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#l00077">77</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#l00082">82</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -266,7 +269,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#l00084">84</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#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>
@@ -283,7 +286,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#l00071">71</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#l00076">76</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -301,16 +304,16 @@
 <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#l02460">2460</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#l02520">2520</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="af3a28f270195952c3bbe42bff5bf2cd4"></a><!-- doxytag: member="boost::xint::nothrow_integer" ref="af3a28f270195952c3bbe42bff5bf2cd4" args="" -->
+<a class="anchor" id="adb761045d90aee163058a57489b51df2"></a><!-- doxytag: member="boost::xint::nothrow_integer" ref="adb761045d90aee163058a57489b51df2" args="" -->
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
- <td class="memname">typedef <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;<a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">options::nothrow</a>&lt;true&gt; &gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::nothrow_integer</a></td>
+ <td class="memname">typedef <a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt;<a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">options::nothrow</a>&gt; <a class="el" href="classboost_1_1xint_1_1integer__t.html">boost::xint::nothrow_integer</a></td>
         </tr>
       </table>
 </div>
@@ -319,7 +322,7 @@
 <p>The default arbitrary-length nothrow_integer type. </p>
 <p>This uses the default parameters for the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> template, other than the <code>nothrow</code> one. </p>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02467">2467</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#l02527">2527</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -337,25 +340,25 @@
 <p>A convenience class for cryptographically-secure random numbers. </p>
 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="random.html">The XInt Random Number System</a> </dd>
 <dd>
-<a class="el" href="classboost_1_1xint_1_1integer__t.html#a8826eb41c3e4ca9b6b4ec81ff61d9ba2">integer_t::random_by_size</a> </dd>
+<a class="el" href="classboost_1_1xint_1_1integer__t.html#a60157b68c2e375faac4d325091fd1683">integer_t::random_by_size</a> </dd>
 <dd>
-<a class="el" href="classboost_1_1xint_1_1integer__t.html#adbbd33c6281a946db3608140bba62f02">integer_t::random_prime</a> </dd></dl>
+<a class="el" href="classboost_1_1xint_1_1integer__t.html#a87ea7ddc800621ebf2d9dda0d68d0947">integer_t::random_prime</a> </dd></dl>
 
 <p>Definition at line <a class="el" href="random_8hpp_source.html#l00097">97</a> of file <a class="el" href="random_8hpp_source.html">random.hpp</a>.</p>
 
 </div>
 </div>
 <hr/><h2>Function Documentation</h2>
-<a class="anchor" id="a5a98564162f30f3117a871a617af9523"></a><!-- doxytag: member="boost::xint::abs" ref="a5a98564162f30f3117a871a617af9523" args="(const integer_t n)" -->
+<a class="anchor" id="a331d95962aedbdb34f04ef373555dd8a"></a><!-- doxytag: member="boost::xint::abs" ref="a331d95962aedbdb34f04ef373555dd8a" args="(const integer_t&lt; ... &gt; n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::abs </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::abs </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -376,11 +379,11 @@
 </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#l01231">1231</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#l01215">1215</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a9f0fe7813dc7e6d6d92b64cd68677175"></a><!-- doxytag: member="boost::xint::clearbit" ref="a9f0fe7813dc7e6d6d92b64cd68677175" args="(integer_t &amp;n, bitsize_t bit)" -->
+<a class="anchor" id="a5643216f91a4bb39bd88c1dc877e6ab8"></a><!-- doxytag: member="boost::xint::clearbit" ref="a5643216f91a4bb39bd88c1dc877e6ab8" args="(integer_t&lt; ... &gt; &amp;n, bitsize_t bit)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -389,7 +392,7 @@
         <tr>
           <td class="memname">void boost::xint::clearbit </td>
           <td>(</td>
- <td class="paramtype">integer_t &amp;&nbsp;</td>
+ <td class="paramtype">integer_t&lt; ... &gt; &amp;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -420,11 +423,11 @@
 </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#l01587">1587</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#l01605">1605</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a740189c9646dcda553f1bd9de200cdd0"></a><!-- doxytag: member="boost::xint::compare" ref="a740189c9646dcda553f1bd9de200cdd0" args="(const integer_t n1, const integer_t n2, bool ignoresign=false)" -->
+<a class="anchor" id="ab832646bf44c70bae41518688d9f5cb5"></a><!-- doxytag: member="boost::xint::compare" ref="ab832646bf44c70bae41518688d9f5cb5" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2, bool ignoresign=false)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -433,13 +436,13 @@
         <tr>
           <td class="memname">int boost::xint::compare </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em>, </td>
         </tr>
         <tr>
@@ -468,28 +471,72 @@
   </table>
   </dd>
 </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&lt;true&gt; version returns 2 instead of throwing. </dd></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>
+
+</div>
+</div>
+<a class="anchor" id="ae58734c3f93951819e43af9fff2b9496"></a><!-- doxytag: member="boost::xint::difference" ref="ae58734c3f93951819e43af9fff2b9496" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;... &gt; </div>
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::difference </td>
+ <td>(</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
+ <td class="paramname"> <em>n1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
+ <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td><td><code> [inline]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Calculate the absolute difference between two integers. </p>
+<ul>
+<li>Complexity: O(n)</li>
+</ul>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>n1,n2</em>&nbsp;</td><td>The integers to operate on.</td></tr>
+ </table>
+ </dd>
+</dl>
+<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#l02275">2275</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#l01297">1297</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a7d5e37941c1085e1cc1e513d9f1857b4"></a><!-- doxytag: member="boost::xint::divide" ref="a7d5e37941c1085e1cc1e513d9f1857b4" args="(const integer_t dividend, const integer_t divisor)" -->
+<a class="anchor" id="a9696321a0a8ddea617223472a62f2452"></a><!-- doxytag: member="boost::xint::divide" ref="a9696321a0a8ddea617223472a62f2452" args="(const integer_t&lt; ... &gt; dividend, const integer_t&lt; ... &gt; divisor)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> ::divide_t boost::xint::divide </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt;::divide_t boost::xint::divide </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>dividend</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>divisor</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -511,41 +558,41 @@
   </table>
   </dd>
 </dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>divide_t</code> class containing the quotient and remainder of <code>dividend</code> divided by <code>divisor</code>. The nothrow&lt;true&gt; version returns a <code>divide_t</code> with both items set to Not-a-Number instead of throwing.</dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>A <code>divide_t</code> class containing the quotient and remainder of <code>dividend</code> divided by <code>divisor</code>. The nothrow version returns a <code>divide_t</code> with both items set to Not-a-Number instead of throwing.</dd></dl>
 <dl><dt><b>Exceptions:</b></dt><dd>
   <table border="0" cellspacing="2" cellpadding="0">
     <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exceptions_1_1divide__by__zero.html">exceptions::divide_by_zero</a></em>&nbsp;</td><td>if <code>d2</code> is zero.</td></tr>
   </table>
   </dd>
 </dl>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21" title="Calculate how many dividends would fit into divisor.">operator/(integer_t, integer_t)</a> </dd>
+<dl class="see"><dt><b>See also:</b></dt><dd>operator/(integer_t, integer_t) </dd>
 <dd>
-<a class="el" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67" title="Get the remainder after dividing a number by another.">operator%(integer_t, integer_t)</a> </dd>
+operator%(integer_t, integer_t) </dd>
 <dd>
-<a class="el" href="classboost_1_1xint_1_1integer__t.html#ae55c6a634e3bd3c37f7cace2f9b9e496">integer_t::operator/=</a> </dd>
+<a class="el" href="classboost_1_1xint_1_1integer__t.html#a4bf7befde3cb5eff8e6e84b290c0ce50">integer_t::operator/=</a> </dd>
 <dd>
-<a class="el" href="classboost_1_1xint_1_1integer__t.html#ac61ca4bfdf11efc044602e8d4205f7ce">integer_t::operator%=</a> </dd></dl>
+<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#l01267">1267</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#l01253">1253</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a011ac7b423cee444f6728ca2b061f31e"></a><!-- doxytag: member="boost::xint::gcd" ref="a011ac7b423cee444f6728ca2b061f31e" args="(const integer_t num1, const integer_t num2)" -->
+<a class="anchor" id="ad58ca08a1482ae77a979027da61d17f4"></a><!-- doxytag: member="boost::xint::gcd" ref="ad58ca08a1482ae77a979027da61d17f4" args="(const integer_t&lt; ... &gt; num1, const integer_t&lt; ... &gt; num2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::gcd </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::gcd </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>num1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -569,11 +616,11 @@
 </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#l02207">2207</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#l02242">2242</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ae44f7918320a37538c5fa8e4622cbfba"></a><!-- doxytag: member="boost::xint::getbit" ref="ae44f7918320a37538c5fa8e4622cbfba" args="(const integer_t n, bitsize_t bit)" -->
+<a class="anchor" id="a1f2a052f7f391bddace5348c3adcc97a"></a><!-- doxytag: member="boost::xint::getbit" ref="a1f2a052f7f391bddace5348c3adcc97a" args="(const integer_t&lt; ... &gt; n, bitsize_t bit)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -582,7 +629,7 @@
         <tr>
           <td class="memname">bool boost::xint::getbit </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -611,13 +658,13 @@
   </table>
   </dd>
 </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&lt;true&gt; version returns <code>false</code> instead of throwing. </dd></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#l01540">1540</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#l01558">1558</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a47f175d3a516b6e9e851890e2ce4a9b0"></a><!-- doxytag: member="boost::xint::highestbit" ref="a47f175d3a516b6e9e851890e2ce4a9b0" args="(const integer_t n, bitsize_t return_if_zero=0)" -->
+<a class="anchor" id="adee99f516c2480b2381f6c9b1a2abc6e"></a><!-- doxytag: member="boost::xint::highestbit" ref="adee99f516c2480b2381f6c9b1a2abc6e" args="(const integer_t&lt; ... &gt; n, bitsize_t return_if_zero=0)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -626,7 +673,7 @@
         <tr>
           <td class="memname"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> boost::xint::highestbit </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -655,28 +702,28 @@
   </table>
   </dd>
 </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&lt;true&gt; version returns <code>return_if_zero</code> instead of throwing. </dd></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#l01644">1644</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#l01662">1662</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ada4e628fe2275e6d6459b9b87167cbad"></a><!-- doxytag: member="boost::xint::invmod" ref="ada4e628fe2275e6d6459b9b87167cbad" args="(const integer_t n, const integer_t modulus)" -->
+<a class="anchor" id="aca3ee91c50b15fa902c37fa16763f52b"></a><!-- doxytag: member="boost::xint::invmod" ref="aca3ee91c50b15fa902c37fa16763f52b" args="(const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; modulus)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::invmod </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::invmod </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>modulus</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -707,11 +754,11 @@
   </dd>
 </dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01801">1801</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#l01824">1824</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a089d98ffc4599122209d1a3c1c7c39d4"></a><!-- doxytag: member="boost::xint::is_prime" ref="a089d98ffc4599122209d1a3c1c7c39d4" args="(const integer_t n, callback_t callback=no_callback)" -->
+<a class="anchor" id="a22c8ff3260bcb5c4c8e09e632c488ace"></a><!-- doxytag: member="boost::xint::is_prime" ref="a22c8ff3260bcb5c4c8e09e632c488ace" args="(const integer_t&lt; ... &gt; n, callback_t callback=no_callback)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -720,7 +767,7 @@
         <tr>
           <td class="memname">int boost::xint::is_prime </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -749,7 +796,7 @@
   </table>
   </dd>
 </dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>1 if <code>n</code> seems to be prime, 0 if it isn't, or -1 if the provided callback function cancelled the operation. The nothrow&lt;true&gt; version returns -2 instead of throwing.</dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>1 if <code>n</code> seems to be prime, 0 if it isn't, or -1 if the provided callback function cancelled the operation. The nothrow version returns -2 instead of throwing.</dd></dl>
 <dl><dt><b>Exceptions:</b></dt><dd>
   <table border="0" cellspacing="2" cellpadding="0">
     <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">exceptions::invalid_argument</a></em>&nbsp;</td><td>if <code>n</code> is less than 2.</td></tr>
@@ -759,26 +806,26 @@
 <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#l01854">1854</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01878">1878</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="affa4bae53c9bc3814816c70c8bb442b4"></a><!-- doxytag: member="boost::xint::lcm" ref="affa4bae53c9bc3814816c70c8bb442b4" args="(const integer_t num1, const integer_t num2)" -->
+<a class="anchor" id="a7740825a61553e51cead8af64ec763c0"></a><!-- doxytag: member="boost::xint::lcm" ref="a7740825a61553e51cead8af64ec763c0" args="(const integer_t&lt; ... &gt; num1, const integer_t&lt; ... &gt; num2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::lcm </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::lcm </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>num1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>num2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -802,11 +849,11 @@
 </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#l02240">2240</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#l02276">2276</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ab6cef2e4e1b3c3b841f6c1a085952f18"></a><!-- doxytag: member="boost::xint::log2" ref="ab6cef2e4e1b3c3b841f6c1a085952f18" args="(const integer_t n)" -->
+<a class="anchor" id="aec7b803cbc9245ccae1f88e4efab327b"></a><!-- doxytag: member="boost::xint::log2" ref="aec7b803cbc9245ccae1f88e4efab327b" args="(const integer_t&lt; ... &gt; n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -815,7 +862,7 @@
         <tr>
           <td class="memname">size_t boost::xint::log2 </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -834,15 +881,15 @@
   </table>
   </dd>
 </dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The integer log<sub>2</sub> value of the integer. The nothrow&lt;true&gt; version returns zero instead of throwing.</dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The integer log<sub>2</sub> value of the integer. The nothrow version returns zero instead of throwing.</dd></dl>
 <dl class="remark"><dt><b>Remarks:</b></dt><dd>pow2(log2(n)-1) will give you an integer with the highest set bit of <code>n</code>, assuming that <code>n</code> is non-zero.</dd></dl>
-<dl class="user"><dt><b></b></dt><dd>Similar to the <a class="el" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0" title="Obtains the index of the highest bit in an integer with a value of one.">highestbit</a> function. </dd></dl>
+<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#l02307">2307</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#l02344">2344</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a8f1c7103d951ba19510458166d4fd2f4"></a><!-- doxytag: member="boost::xint::lowestbit" ref="a8f1c7103d951ba19510458166d4fd2f4" args="(const integer_t n, bitsize_t return_if_zero=0)" -->
+<a class="anchor" id="a8512b348c82472dca48edb63f2a1f0e7"></a><!-- doxytag: member="boost::xint::lowestbit" ref="a8512b348c82472dca48edb63f2a1f0e7" args="(const integer_t&lt; ... &gt; n, bitsize_t return_if_zero=0)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -851,7 +898,7 @@
         <tr>
           <td class="memname"><a class="el" href="namespaceboost_1_1xint.html#ae9f6d103df04ad19a841ed3f8b94a764">bitsize_t</a> boost::xint::lowestbit </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -880,34 +927,34 @@
   </table>
   </dd>
 </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&lt;true&gt; version returns <code>return_if_zero</code> instead of throwing. </dd></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#l01615">1615</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#l01633">1633</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a2503b80a8b59b45190ea024884405564"></a><!-- doxytag: member="boost::xint::mulmod" ref="a2503b80a8b59b45190ea024884405564" args="(const integer_t n, const integer_t by, const integer_t modulus)" -->
+<a class="anchor" id="aca6917c25cdd7cac7c3eda4684567625"></a><!-- doxytag: member="boost::xint::mulmod" ref="aca6917c25cdd7cac7c3eda4684567625" args="(const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; by, const integer_t&lt; ... &gt; modulus)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::mulmod </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::mulmod </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>by</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>modulus</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -933,11 +980,11 @@
 <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#l01685">1685</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#l01703">1703</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ac6bf18fab19873cc55142b26ce11fda4"></a><!-- doxytag: member="boost::xint::operator!=" ref="ac6bf18fab19873cc55142b26ce11fda4" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="a07e81815254a7ca3afddd5398695a2b7"></a><!-- doxytag: member="boost::xint::operator!=" ref="a07e81815254a7ca3afddd5398695a2b7" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -946,13 +993,13 @@
         <tr>
           <td class="memname">bool boost::xint::operator!= </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -964,26 +1011,26 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01952">1952</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#l01976">1976</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aac56e280afa13284381f144a208eaf67"></a><!-- doxytag: member="boost::xint::operator%" ref="aac56e280afa13284381f144a208eaf67" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="a0ac4116f3a9285a7f2f10d0104b870f7"></a><!-- doxytag: member="boost::xint::operator%" ref="a0ac4116f3a9285a7f2f10d0104b870f7" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::operator% </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::operator% </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1008,26 +1055,26 @@
 </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#l02095">2095</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#l02126">2126</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a356d6efa380af7ee2c2f6f0a83e7c9a3"></a><!-- doxytag: member="boost::xint::operator&amp;" ref="a356d6efa380af7ee2c2f6f0a83e7c9a3" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="ad3bc201c8c1f3e87611abce8e6972538"></a><!-- doxytag: member="boost::xint::operator&amp;" ref="ad3bc201c8c1f3e87611abce8e6972538" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::operator&amp; </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::operator&amp; </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1051,26 +1098,26 @@
 </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#l02122">2122</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#l02154">2154</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a69c9fa493989cc96676a007f58031455"></a><!-- doxytag: member="boost::xint::operator*" ref="a69c9fa493989cc96676a007f58031455" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="ab33a5481a4a4b16ab592be6a88cd245c"></a><!-- doxytag: member="boost::xint::operator*" ref="ab33a5481a4a4b16ab592be6a88cd245c" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::operator* </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::operator* </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1095,26 +1142,26 @@
 <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#l02039">2039</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#l02069">2069</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a88b3b7bccb96dd8b0cd9d9f853025915"></a><!-- doxytag: member="boost::xint::operator+" ref="a88b3b7bccb96dd8b0cd9d9f853025915" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="a15c7951bc910713f8209b7ebd78396da"></a><!-- doxytag: member="boost::xint::operator+" ref="a15c7951bc910713f8209b7ebd78396da" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::operator+ </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::operator+ </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1138,26 +1185,26 @@
 </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#l01983">1983</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#l02007">2007</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="acda2a7a7d63582732505cc7128096f27"></a><!-- doxytag: member="boost::xint::operator&#45;" ref="acda2a7a7d63582732505cc7128096f27" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="ab6132105fbe7d7bf7a756b868b6a372e"></a><!-- doxytag: member="boost::xint::operator&#45;" ref="ab6132105fbe7d7bf7a756b868b6a372e" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::operator- </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::operator- </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1181,26 +1228,26 @@
 </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#l02009">2009</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#l02034">2034</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a800dca196da627207b63fccd3c132c21"></a><!-- doxytag: member="boost::xint::operator/" ref="a800dca196da627207b63fccd3c132c21" args="(const integer_t dividend, const integer_t divisor)" -->
+<a class="anchor" id="a806df63b92124039591a4ca09a8538e0"></a><!-- doxytag: member="boost::xint::operator/" ref="a806df63b92124039591a4ca09a8538e0" args="(const integer_t&lt; ... &gt; dividend, const integer_t&lt; ... &gt; divisor)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::operator/ </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::operator/ </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>dividend</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>divisor</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1230,11 +1277,11 @@
   </dd>
 </dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02067">2067</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#l02098">2098</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a0a987fd73c7c0844f9ed4fdabf0f27e4"></a><!-- doxytag: member="boost::xint::operator&lt;" ref="a0a987fd73c7c0844f9ed4fdabf0f27e4" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="af5698b6ba852f5a119429b17c2a08450"></a><!-- doxytag: member="boost::xint::operator&lt;" ref="af5698b6ba852f5a119429b17c2a08450" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1243,13 +1290,13 @@
         <tr>
           <td class="memname">bool boost::xint::operator&lt; </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1261,15 +1308,15 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01877">1877</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#l01901">1901</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a678851ea0cb31cb4ef66bc8389d369d3"></a><!-- doxytag: member="boost::xint::operator&lt;&lt;" ref="a678851ea0cb31cb4ef66bc8389d369d3" args="(std::basic_ostream&lt; charT, traits &gt; &amp;out, const integer_t n)" -->
+<a class="anchor" id="a0e501790ec0437c226ce54f98493aad9"></a><!-- doxytag: member="boost::xint::operator&lt;&lt;" ref="a0e501790ec0437c226ce54f98493aad9" args="(std::basic_ostream&lt; charT, traits &gt; &amp;out, const integer_t&lt; ... &gt; n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename charT , typename traits , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </div>
+template&lt;typename charT , typename traits , ... &gt; </div>
       <table class="memname">
         <tr>
           <td class="memname">std::basic_ostream&lt;charT,traits&gt;&amp; boost::xint::operator&lt;&lt; </td>
@@ -1280,7 +1327,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1292,11 +1339,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02413">2413</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#l02469">2469</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a9b01e116d91ad2d7d9f13138a1182d1d"></a><!-- doxytag: member="boost::xint::operator&lt;=" ref="a9b01e116d91ad2d7d9f13138a1182d1d" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="ac3daab81a55daeceedd256ce49634d4d"></a><!-- doxytag: member="boost::xint::operator&lt;=" ref="ac3daab81a55daeceedd256ce49634d4d" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1305,13 +1352,13 @@
         <tr>
           <td class="memname">bool boost::xint::operator&lt;= </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1323,11 +1370,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01907">1907</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#l01931">1931</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aa753a8fb37b38da8293fec1c9bb09711"></a><!-- doxytag: member="boost::xint::operator==" ref="aa753a8fb37b38da8293fec1c9bb09711" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="a7d9f811ac514e033c7fc965b5cd62ee3"></a><!-- doxytag: member="boost::xint::operator==" ref="a7d9f811ac514e033c7fc965b5cd62ee3" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1336,13 +1383,13 @@
         <tr>
           <td class="memname">bool boost::xint::operator== </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1354,11 +1401,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01937">1937</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#l01961">1961</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="af5c2bc8d95f42e9442c113d22614ac2d"></a><!-- doxytag: member="boost::xint::operator&gt;" ref="af5c2bc8d95f42e9442c113d22614ac2d" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="ad1ac6fb8431b231faecf34a5a2d01626"></a><!-- doxytag: member="boost::xint::operator&gt;" ref="ad1ac6fb8431b231faecf34a5a2d01626" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1367,13 +1414,13 @@
         <tr>
           <td class="memname">bool boost::xint::operator&gt; </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1385,11 +1432,11 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01892">1892</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#l01916">1916</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ad4fd77e8ed2e76028c3ae554bfc564f7"></a><!-- doxytag: member="boost::xint::operator&gt;=" ref="ad4fd77e8ed2e76028c3ae554bfc564f7" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="a00c5ad6cf63ecc8ea3a2294ccedac7d3"></a><!-- doxytag: member="boost::xint::operator&gt;=" ref="a00c5ad6cf63ecc8ea3a2294ccedac7d3" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1398,13 +1445,13 @@
         <tr>
           <td class="memname">bool boost::xint::operator&gt;= </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1416,15 +1463,15 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01922">1922</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#l01946">1946</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ad5bc89da790a0843ba90a88cbc7856a6"></a><!-- doxytag: member="boost::xint::operator&gt;&gt;" ref="ad5bc89da790a0843ba90a88cbc7856a6" args="(std::basic_istream&lt; charT, traits &gt; &amp;in, integer_t &amp;n)" -->
+<a class="anchor" id="a7ad17ed38204ec9a774788ea28368701"></a><!-- doxytag: member="boost::xint::operator&gt;&gt;" ref="a7ad17ed38204ec9a774788ea28368701" args="(std::basic_istream&lt; charT, traits &gt; &amp;in, integer_t&lt; ... &gt; &amp;n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename charT , typename traits , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </div>
+template&lt;typename charT , typename traits , ... &gt; </div>
       <table class="memname">
         <tr>
           <td class="memname">std::basic_istream&lt;charT,traits&gt;&amp; boost::xint::operator&gt;&gt; </td>
@@ -1435,7 +1482,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">integer_t &amp;&nbsp;</td>
+ <td class="paramtype">integer_t&lt; ... &gt; &amp;&nbsp;</td>
           <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1447,26 +1494,26 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02423">2423</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
+<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>
 
 </div>
 </div>
-<a class="anchor" id="a73c999d0550a46b24272e07f1720b025"></a><!-- doxytag: member="boost::xint::operator^" ref="a73c999d0550a46b24272e07f1720b025" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="a0d1ce319bfb004fb6b93283bcb4f98c2"></a><!-- doxytag: member="boost::xint::operator^" ref="a0d1ce319bfb004fb6b93283bcb4f98c2" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::operator^ </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::operator^ </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1490,26 +1537,26 @@
 </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#l02176">2176</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#l02210">2210</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="aa8537f29fb1ade411f79084ffe170075"></a><!-- doxytag: member="boost::xint::operator|" ref="aa8537f29fb1ade411f79084ffe170075" args="(const integer_t n1, const integer_t n2)" -->
+<a class="anchor" id="a0b58f99b2c5bab4f7eec71d6058b23dd"></a><!-- doxytag: member="boost::xint::operator|" ref="a0b58f99b2c5bab4f7eec71d6058b23dd" args="(const integer_t&lt; ... &gt; n1, const integer_t&lt; ... &gt; n2)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::operator| </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::operator| </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n1</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n2</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1533,26 +1580,26 @@
 </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#l02149">2149</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#l02182">2182</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a499b28ba7acd8b1534bb968826e23c52"></a><!-- doxytag: member="boost::xint::pow" ref="a499b28ba7acd8b1534bb968826e23c52" args="(const integer_t n, const integer_t e)" -->
+<a class="anchor" id="a483e2fdc6cef9afa1295afeceda4a644"></a><!-- doxytag: member="boost::xint::pow" ref="a483e2fdc6cef9afa1295afeceda4a644" args="(const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; e)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::pow </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::pow </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>e</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1576,32 +1623,32 @@
 </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#l01341">1341</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#l01353">1353</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a1108e56d7d500a384bd0bb0a6849bfa0"></a><!-- doxytag: member="boost::xint::powmod" ref="a1108e56d7d500a384bd0bb0a6849bfa0" args="(const integer_t n, const integer_t exponent, const integer_t modulus, bool no_monty=false)" -->
+<a class="anchor" id="a9c1648ef679123bb2bf77681ffdfa815"></a><!-- doxytag: member="boost::xint::powmod" ref="a9c1648ef679123bb2bf77681ffdfa815" args="(const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; exponent, const integer_t&lt; ... &gt; modulus, bool no_monty=false)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::powmod </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::powmod </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>exponent</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>modulus</em>, </td>
         </tr>
         <tr>
@@ -1642,11 +1689,11 @@
 <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#l01765">1765</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#l01787">1787</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="ac16087b6d58edabc3b67c94e63e22921"></a><!-- doxytag: member="boost::xint::setbit" ref="ac16087b6d58edabc3b67c94e63e22921" args="(integer_t &amp;n, bitsize_t bit)" -->
+<a class="anchor" id="ae957235f76cb2fa0e1530255ccbfa8d0"></a><!-- doxytag: member="boost::xint::setbit" ref="ae957235f76cb2fa0e1530255ccbfa8d0" args="(integer_t&lt; ... &gt; &amp;n, bitsize_t bit)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1655,7 +1702,7 @@
         <tr>
           <td class="memname">void boost::xint::setbit </td>
           <td>(</td>
- <td class="paramtype">integer_t &amp;&nbsp;</td>
+ <td class="paramtype">integer_t&lt; ... &gt; &amp;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -1686,26 +1733,26 @@
 </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#l01563">1563</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#l01581">1581</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a979ddb09a4d1a5dbfcb0707c19695877"></a><!-- doxytag: member="boost::xint::sqrmod" ref="a979ddb09a4d1a5dbfcb0707c19695877" args="(const integer_t n, const integer_t modulus)" -->
+<a class="anchor" id="aa41f48c60b257cb321fe89fe0b65b6c3"></a><!-- doxytag: member="boost::xint::sqrmod" ref="aa41f48c60b257cb321fe89fe0b65b6c3" args="(const integer_t&lt; ... &gt; n, const integer_t&lt; ... &gt; modulus)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::sqrmod </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::sqrmod </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>modulus</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1731,20 +1778,20 @@
 <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#l01722">1722</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#l01742">1742</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="abe5e63185f27f2c795dc287e030ec424"></a><!-- doxytag: member="boost::xint::square" ref="abe5e63185f27f2c795dc287e030ec424" args="(const integer_t n)" -->
+<a class="anchor" id="ac40d60956ef5af3b64804c7a9abffcdd"></a><!-- doxytag: member="boost::xint::square" ref="ac40d60956ef5af3b64804c7a9abffcdd" args="(const integer_t&lt; ... &gt; n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::square </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::square </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -1766,20 +1813,20 @@
 <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#l01315">1315</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#l01326">1326</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="adb652fa006fd8ed34993ea86cf317cb2"></a><!-- doxytag: member="boost::xint::square_root" ref="adb652fa006fd8ed34993ea86cf317cb2" args="(const integer_t n)" -->
+<a class="anchor" id="abb957c86cae5940b06172eb23345fe42"></a><!-- doxytag: member="boost::xint::square_root" ref="abb957c86cae5940b06172eb23345fe42" args="(const integer_t&lt; ... &gt; n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
 template&lt;... &gt; </div>
       <table class="memname">
         <tr>
- <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a> boost::xint::square_root </td>
+ <td class="memname"><a class="el" href="classboost_1_1xint_1_1integer__t.html">integer_t</a>&lt; ... &gt; boost::xint::square_root </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -1806,11 +1853,11 @@
   </dd>
 </dl>
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l01375">1375</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#l01389">1389</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a1a857d5cc4b15822d3dcaf70ec15b4e5"></a><!-- doxytag: member="boost::xint::swap" ref="a1a857d5cc4b15822d3dcaf70ec15b4e5" args="(integer_t &amp;left, integer_t &amp;right)" -->
+<a class="anchor" id="ab4aafdf3645cbad0cb3af54fdec4caff"></a><!-- doxytag: member="boost::xint::swap" ref="ab4aafdf3645cbad0cb3af54fdec4caff" args="(integer_t&lt; ... &gt; &amp;left, integer_t&lt; ... &gt; &amp;right)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1819,13 +1866,13 @@
         <tr>
           <td class="memname">void boost::xint::swap </td>
           <td>(</td>
- <td class="paramtype">integer_t &amp;&nbsp;</td>
+ <td class="paramtype">integer_t&lt; ... &gt; &amp;&nbsp;</td>
           <td class="paramname"> <em>left</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
- <td class="paramtype">integer_t &amp;&nbsp;</td>
+ <td class="paramtype">integer_t&lt; ... &gt; &amp;&nbsp;</td>
           <td class="paramname"> <em>right</em></td><td>&nbsp;</td>
         </tr>
         <tr>
@@ -1837,20 +1884,20 @@
 </div>
 <div class="memdoc">
 
-<p>Definition at line <a class="el" href="integer_8hpp_source.html#l02451">2451</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#l02510">2510</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="afd9d2c7743d11e6959d6cda44c8abf69"></a><!-- doxytag: member="boost::xint::to" ref="afd9d2c7743d11e6959d6cda44c8abf69" args="(const integer_t n)" -->
+<a class="anchor" id="a9aa52eb4533b04c27329b3f6b7aa842b"></a><!-- doxytag: member="boost::xint::to" ref="a9aa52eb4533b04c27329b3f6b7aa842b" args="(const integer_t&lt; ... &gt; n)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename T , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </div>
+template&lt;typename T , ... &gt; </div>
       <table class="memname">
         <tr>
           <td class="memname">T boost::xint::to </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em></td>
           <td>&nbsp;)&nbsp;</td>
           <td><code> [inline]</code></td>
@@ -1879,13 +1926,13 @@
   </table>
   </dd>
 </dl>
-<p>This function provides the most efficient means of converting to a built-in integral type. The nothrow&lt;true&gt; version returns T(0) instead of throwing. </p>
+<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#l01413">1413</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#l01429">1429</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a66514eef6594409cda1dfad652e2dc40"></a><!-- doxytag: member="boost::xint::to_binary" ref="a66514eef6594409cda1dfad652e2dc40" args="(const integer_t n, bitsize_t bits=0)" -->
+<a class="anchor" id="a36d0321bee2aade461e0f504400c7c1b"></a><!-- doxytag: member="boost::xint::to_binary" ref="a36d0321bee2aade461e0f504400c7c1b" args="(const integer_t&lt; ... &gt; n, bitsize_t bits=0)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1894,7 +1941,7 @@
         <tr>
           <td class="memname"><a class="el" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58">xint::binary_t</a> boost::xint::to_binary </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -1923,7 +1970,7 @@
   </table>
   </dd>
 </dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>An <code><a class="el" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a></code> containing the binary representation, lowest byte first. The nothrow&lt;true&gt; version returns an empty <code>binary_t</code> object instead of throwing.</dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>An <code><a class="el" href="namespaceboost_1_1xint.html#aae3128529370506165793f2771834e58" title="The format for the binary representations of integers.">xint::binary_t</a></code> containing the binary representation, lowest byte first. The nothrow version returns an empty <code>binary_t</code> object instead of throwing.</dd></dl>
 <dl><dt><b>Exceptions:</b></dt><dd>
   <table border="0" cellspacing="2" cellpadding="0">
     <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__argument.html">exceptions::invalid_argument</a></em>&nbsp;</td><td>if <code>bits</code> is greater than the number of bits in an unsigned character.</td></tr>
@@ -1934,11 +1981,11 @@
 <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#l01512">1512</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#l01528">1528</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a92cfd4119fbf9eeb0a503d4e0dbe553c"></a><!-- doxytag: member="boost::xint::to_string" ref="a92cfd4119fbf9eeb0a503d4e0dbe553c" args="(const integer_t n, std::size_t base=10, bool uppercase=false)" -->
+<a class="anchor" id="a2fb5a8cfac3e97a1641d424aac04a71f"></a><!-- doxytag: member="boost::xint::to_string" ref="a2fb5a8cfac3e97a1641d424aac04a71f" args="(const integer_t&lt; ... &gt; n, std::size_t base=10, bool uppercase=false)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1947,7 +1994,7 @@
         <tr>
           <td class="memname">std::string boost::xint::to_string </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -1971,22 +2018,22 @@
 </div>
 <div class="memdoc">
 
-<p>A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">to_stringtype&lt;char&gt;</a>. </p>
+<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#l01468">1468</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#l01484">1484</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a7621dd91fa7eb64856241f8cafd1ef7e"></a><!-- doxytag: member="boost::xint::to_stringtype" ref="a7621dd91fa7eb64856241f8cafd1ef7e" args="(const integer_t n, std::size_t base=10, bool uppercase=false)" -->
+<a class="anchor" id="a12e9d9268bae5d099227af78c1dea758"></a><!-- doxytag: member="boost::xint::to_stringtype" ref="a12e9d9268bae5d099227af78c1dea758" args="(const integer_t&lt; ... &gt; n, std::size_t base=10, bool uppercase=false)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
-template&lt;typename charT , class A0 , class A1 , class A2 , class A3 , class A4 &gt; </div>
+template&lt;typename charT , ... &gt; </div>
       <table class="memname">
         <tr>
           <td class="memname">std::basic_string&lt;charT&gt; boost::xint::to_stringtype </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -2028,7 +2075,7 @@
   </table>
   </dd>
 </dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>The string value of <code>n</code>. The nothrow&lt;true&gt; version returns the string "#NaN#" if <code>n</code> is a Not-a-Number, and an empty string instead of throwing.</dd></dl>
+<dl class="return"><dt><b>Returns:</b></dt><dd>The string value of <code>n</code>. The nothrow version returns the string "#NaN#" if <code>n</code> is a Not-a-Number, and an empty string instead of throwing.</dd></dl>
 <dl><dt><b>Exceptions:</b></dt><dd>
   <table border="0" cellspacing="2" cellpadding="0">
     <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classboost_1_1xint_1_1exceptions_1_1invalid__base.html">exceptions::invalid_base</a></em>&nbsp;</td><td>if base is less than two or greater than 36.</td></tr>
@@ -2037,11 +2084,11 @@
 </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#l01449">1449</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#l01465">1465</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
-<a class="anchor" id="a2493d0acb308a3ec0abd7326d9bc6a27"></a><!-- doxytag: member="boost::xint::to_wstring" ref="a2493d0acb308a3ec0abd7326d9bc6a27" args="(const integer_t n, std::size_t base=10, bool uppercase=false)" -->
+<a class="anchor" id="a6f24b4e0dc6e6c5de02480f5fb352030"></a><!-- doxytag: member="boost::xint::to_wstring" ref="a6f24b4e0dc6e6c5de02480f5fb352030" args="(const integer_t&lt; ... &gt; n, std::size_t base=10, bool uppercase=false)" -->
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -2050,7 +2097,7 @@
         <tr>
           <td class="memname">std::wstring boost::xint::to_wstring </td>
           <td>(</td>
- <td class="paramtype">const integer_t&nbsp;</td>
+ <td class="paramtype">const integer_t&lt; ... &gt;&nbsp;</td>
           <td class="paramname"> <em>n</em>, </td>
         </tr>
         <tr>
@@ -2074,9 +2121,9 @@
 </div>
 <div class="memdoc">
 
-<p>A shorthand function that calls <a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">to_stringtype&lt;wchar_t&gt;</a>. </p>
+<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#l01478">1478</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#l01494">1494</a> of file <a class="el" href="integer_8hpp_source.html">integer.hpp</a>.</p>
 
 </div>
 </div>
@@ -2094,7 +2141,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#l00081">81</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#l00086">86</a> of file <a class="el" href="basic__types__and__includes_8hpp_source.html">basic_types_and_includes.hpp</a>.</p>
 
 </div>
 </div>
@@ -2111,12 +2158,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#l00074">74</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#l00079">79</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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -32,52 +32,36 @@
 <a href="#_details">More...</a></p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1copy__on__write.html">copy_on_write</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allows faster operations, at a price. More...<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength.html">fixedlength</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">fixedlength_base</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make fixed-length integers. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__absolute.html">negative_absolute</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer type that forces any negative number to its absolute value. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__allowed.html">negative_allowed</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a signed integer type. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__exception.html">negative_exception</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer type that considers unsigned values invalid. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__modulus.html">negative_modulus</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make a fixedlength integer wrap like a built-in unsigned type. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__not__allowed.html">negative_not_allowed</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an unsigned integer with the most common negative-value handling. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__zero.html">negative_zero</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer type that forces any negative number to zero. More...<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">nothrow</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">nothrow_base</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables exceptions from the library. More...<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1secure.html">secure</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Zeros memory before deallocating. More...<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe.html">threadsafe</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">threadsafe_base</a></td></tr>
-<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef parameter::parameters<br class="typebreak"/>
-&lt; optional&lt; deduced<br class="typebreak"/>
-&lt; tag::fixedlength_tag &gt;<br class="typebreak"/>
-, is_base_of&lt; <a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">fixedlength_base</a>, <br class="typebreak"/>
-_ &gt; &gt;, optional&lt; deduced<br class="typebreak"/>
-&lt; tag::threadsafe_tag &gt;<br class="typebreak"/>
-, is_base_of&lt; <a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">threadsafe_base</a>, <br class="typebreak"/>
-_ &gt; &gt;, optional&lt; deduced<br class="typebreak"/>
-&lt; tag::secure_tag &gt;<br class="typebreak"/>
-, is_base_of&lt; <a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a>, _ &gt;<br class="typebreak"/>
- &gt;, optional&lt; deduced<br class="typebreak"/>
-&lt; tag::nothrow_tag &gt;<br class="typebreak"/>
-, is_base_of&lt; <a class="el" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">nothrow_base</a>, _ &gt;<br class="typebreak"/>
- &gt;, optional&lt; deduced<br class="typebreak"/>
-&lt; tag::allocator_tag &gt;<br class="typebreak"/>
-, is_class&lt; _ &gt; &gt;&gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1options.html#af65b057a2b140d4ca9daec17bba31722">integer_signature</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ensures that the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> objects can be safely used by multiple threads. More...<br/></td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <p>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. </p>
-<hr/><h2>Typedef Documentation</h2>
-<a class="anchor" id="af65b057a2b140d4ca9daec17bba31722"></a><!-- doxytag: member="boost::xint::options::integer_signature" ref="af65b057a2b140d4ca9daec17bba31722" args="" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">typedef parameter::parameters&lt; optional&lt;deduced&lt;tag::fixedlength_tag&gt;, is_base_of&lt;<a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">fixedlength_base</a>, _&gt; &gt;, optional&lt;deduced&lt;tag::threadsafe_tag&gt;, is_base_of&lt;<a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">threadsafe_base</a>, _&gt; &gt;, optional&lt;deduced&lt;tag::secure_tag&gt;, is_base_of&lt;<a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a>, _&gt; &gt;, optional&lt;deduced&lt;tag::nothrow_tag&gt;, is_base_of&lt;<a class="el" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">nothrow_base</a>, _&gt; &gt;, optional&lt;deduced&lt;tag::allocator_tag&gt;, is_class&lt;_&gt; &gt;&gt; <a class="el" href="namespaceboost_1_1xint_1_1options.html#af65b057a2b140d4ca9daec17bba31722">boost::xint::options::integer_signature</a></td>
- </tr>
- </table>
+<p>Thanks to the magic of Boost.Parameter, you can use as few or as many options as you need, and in any order.</p>
+<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>
-<div class="memdoc">
-
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00058">58</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
-
-</div>
-</div>
-</div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -55,7 +55,7 @@
 
 <h3><a class="anchor" id="index_a">- a -</a></h3><ul>
 <li>abs()
-: <a class="el" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a331d95962aedbdb34f04ef373555dd8a">boost::xint</a>
 </li>
 <li>autobase
 : <a class="el" href="namespaceboost_1_1xint.html#a6e2c55f95b91dfcb7586599faca34cb2">boost::xint</a>
@@ -78,34 +78,37 @@
 : <a class="el" href="namespaceboost_1_1xint.html#a48deb76c9c428a4b3a50177b1b0cb547">boost::xint</a>
 </li>
 <li>clearbit()
-: <a class="el" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8">boost::xint</a>
 </li>
 <li>compare()
-: <a class="el" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+<li>difference()
+: <a class="el" href="namespaceboost_1_1xint.html#ae58734c3f93951819e43af9fff2b9496">boost::xint</a>
+</li>
 <li>divide()
-: <a class="el" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_g">- g -</a></h3><ul>
 <li>gcd()
-: <a class="el" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4">boost::xint</a>
 </li>
 <li>getbit()
-: <a class="el" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_h">- h -</a></h3><ul>
 <li>highestbit()
-: <a class="el" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e">boost::xint</a>
 </li>
 </ul>
 
@@ -114,34 +117,31 @@
 <li>integer
 : <a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">boost::xint</a>
 </li>
-<li>integer_signature
-: <a class="el" href="namespaceboost_1_1xint_1_1options.html#af65b057a2b140d4ca9daec17bba31722">boost::xint::options</a>
-</li>
 <li>invmod()
-: <a class="el" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b">boost::xint</a>
 </li>
 <li>is_prime()
-: <a class="el" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_l">- l -</a></h3><ul>
 <li>lcm()
-: <a class="el" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0">boost::xint</a>
 </li>
 <li>log2()
-: <a class="el" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b">boost::xint</a>
 </li>
 <li>lowestbit()
-: <a class="el" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_m">- m -</a></h3><ul>
 <li>mulmod()
-: <a class="el" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625">boost::xint</a>
 </li>
 </ul>
 
@@ -151,114 +151,114 @@
 : <a class="el" href="namespaceboost_1_1xint.html#a758d415a476a5eeed28dc6b5869b1696">boost::xint</a>
 </li>
 <li>nothrow_integer
-: <a class="el" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
 <li>operator!=()
-: <a class="el" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">boost::xint</a>
 </li>
 <li>operator%()
-: <a class="el" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0ac4116f3a9285a7f2f10d0104b870f7">boost::xint</a>
 </li>
 <li>operator&amp;()
-: <a class="el" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ad3bc201c8c1f3e87611abce8e6972538">boost::xint</a>
 </li>
 <li>operator*()
-: <a class="el" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab33a5481a4a4b16ab592be6a88cd245c">boost::xint</a>
 </li>
 <li>operator+()
-: <a class="el" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da">boost::xint</a>
 </li>
 <li>operator-()
-: <a class="el" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab6132105fbe7d7bf7a756b868b6a372e">boost::xint</a>
 </li>
 <li>operator/()
-: <a class="el" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a806df63b92124039591a4ca09a8538e0">boost::xint</a>
 </li>
 <li>operator&lt;()
-: <a class="el" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">boost::xint</a>
 </li>
 <li>operator&lt;&lt;()
-: <a class="el" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">boost::xint</a>
 </li>
 <li>operator&lt;=()
-: <a class="el" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">boost::xint</a>
 </li>
 <li>operator==()
-: <a class="el" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">boost::xint</a>
 </li>
 <li>operator&gt;()
-: <a class="el" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">boost::xint</a>
 </li>
 <li>operator&gt;=()
-: <a class="el" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">boost::xint</a>
 </li>
 <li>operator&gt;&gt;()
-: <a class="el" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">boost::xint</a>
 </li>
 <li>operator^()
-: <a class="el" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0d1ce319bfb004fb6b93283bcb4f98c2">boost::xint</a>
 </li>
 <li>operator|()
-: <a class="el" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0b58f99b2c5bab4f7eec71d6058b23dd">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_p">- p -</a></h3><ul>
 <li>pow()
-: <a class="el" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644">boost::xint</a>
 </li>
 <li>powmod()
-: <a class="el" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_s">- s -</a></h3><ul>
 <li>setbit()
-: <a class="el" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0">boost::xint</a>
 </li>
 <li>sqrmod()
-: <a class="el" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3">boost::xint</a>
 </li>
 <li>square()
-: <a class="el" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd">boost::xint</a>
 </li>
 <li>square_root()
-: <a class="el" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42">boost::xint</a>
 </li>
 <li>strong_random_generator
 : <a class="el" href="namespaceboost_1_1xint.html#ac38b0aafb375c80ff42b5488a52d9e8f">boost::xint</a>
 </li>
 <li>swap()
-: <a class="el" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_t">- t -</a></h3><ul>
 <li>to()
-: <a class="el" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9aa52eb4533b04c27329b3f6b7aa842b">boost::xint</a>
 </li>
 <li>to_binary()
-: <a class="el" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b">boost::xint</a>
 </li>
 <li>to_string()
-: <a class="el" href="namespaceboost_1_1xint.html#a92cfd4119fbf9eeb0a503d4e0dbe553c">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a2fb5a8cfac3e97a1641d424aac04a71f">boost::xint</a>
 </li>
 <li>to_stringtype()
-: <a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">boost::xint</a>
 </li>
 <li>to_wstring()
-: <a class="el" href="namespaceboost_1_1xint.html#a2493d0acb308a3ec0abd7326d9bc6a27">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6f24b4e0dc6e6c5de02480f5fb352030">boost::xint</a>
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -53,175 +53,178 @@
 
 <h3><a class="anchor" id="index_a">- a -</a></h3><ul>
 <li>abs()
-: <a class="el" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a331d95962aedbdb34f04ef373555dd8a">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_c">- c -</a></h3><ul>
 <li>clearbit()
-: <a class="el" href="namespaceboost_1_1xint.html#a9f0fe7813dc7e6d6d92b64cd68677175">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a5643216f91a4bb39bd88c1dc877e6ab8">boost::xint</a>
 </li>
 <li>compare()
-: <a class="el" href="namespaceboost_1_1xint.html#a740189c9646dcda553f1bd9de200cdd0">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab832646bf44c70bae41518688d9f5cb5">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_d">- d -</a></h3><ul>
+<li>difference()
+: <a class="el" href="namespaceboost_1_1xint.html#ae58734c3f93951819e43af9fff2b9496">boost::xint</a>
+</li>
 <li>divide()
-: <a class="el" href="namespaceboost_1_1xint.html#a7d5e37941c1085e1cc1e513d9f1857b4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9696321a0a8ddea617223472a62f2452">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_g">- g -</a></h3><ul>
 <li>gcd()
-: <a class="el" href="namespaceboost_1_1xint.html#a011ac7b423cee444f6728ca2b061f31e">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ad58ca08a1482ae77a979027da61d17f4">boost::xint</a>
 </li>
 <li>getbit()
-: <a class="el" href="namespaceboost_1_1xint.html#ae44f7918320a37538c5fa8e4622cbfba">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a1f2a052f7f391bddace5348c3adcc97a">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_h">- h -</a></h3><ul>
 <li>highestbit()
-: <a class="el" href="namespaceboost_1_1xint.html#a47f175d3a516b6e9e851890e2ce4a9b0">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#adee99f516c2480b2381f6c9b1a2abc6e">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_i">- i -</a></h3><ul>
 <li>invmod()
-: <a class="el" href="namespaceboost_1_1xint.html#ada4e628fe2275e6d6459b9b87167cbad">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aca3ee91c50b15fa902c37fa16763f52b">boost::xint</a>
 </li>
 <li>is_prime()
-: <a class="el" href="namespaceboost_1_1xint.html#a089d98ffc4599122209d1a3c1c7c39d4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a22c8ff3260bcb5c4c8e09e632c488ace">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_l">- l -</a></h3><ul>
 <li>lcm()
-: <a class="el" href="namespaceboost_1_1xint.html#affa4bae53c9bc3814816c70c8bb442b4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a7740825a61553e51cead8af64ec763c0">boost::xint</a>
 </li>
 <li>log2()
-: <a class="el" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b">boost::xint</a>
 </li>
 <li>lowestbit()
-: <a class="el" href="namespaceboost_1_1xint.html#a8f1c7103d951ba19510458166d4fd2f4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a8512b348c82472dca48edb63f2a1f0e7">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_m">- m -</a></h3><ul>
 <li>mulmod()
-: <a class="el" href="namespaceboost_1_1xint.html#a2503b80a8b59b45190ea024884405564">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aca6917c25cdd7cac7c3eda4684567625">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_o">- o -</a></h3><ul>
 <li>operator!=()
-: <a class="el" href="namespaceboost_1_1xint.html#ac6bf18fab19873cc55142b26ce11fda4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a07e81815254a7ca3afddd5398695a2b7">boost::xint</a>
 </li>
 <li>operator%()
-: <a class="el" href="namespaceboost_1_1xint.html#aac56e280afa13284381f144a208eaf67">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0ac4116f3a9285a7f2f10d0104b870f7">boost::xint</a>
 </li>
 <li>operator&amp;()
-: <a class="el" href="namespaceboost_1_1xint.html#a356d6efa380af7ee2c2f6f0a83e7c9a3">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ad3bc201c8c1f3e87611abce8e6972538">boost::xint</a>
 </li>
 <li>operator*()
-: <a class="el" href="namespaceboost_1_1xint.html#a69c9fa493989cc96676a007f58031455">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab33a5481a4a4b16ab592be6a88cd245c">boost::xint</a>
 </li>
 <li>operator+()
-: <a class="el" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da">boost::xint</a>
 </li>
 <li>operator-()
-: <a class="el" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab6132105fbe7d7bf7a756b868b6a372e">boost::xint</a>
 </li>
 <li>operator/()
-: <a class="el" href="namespaceboost_1_1xint.html#a800dca196da627207b63fccd3c132c21">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a806df63b92124039591a4ca09a8538e0">boost::xint</a>
 </li>
 <li>operator&lt;()
-: <a class="el" href="namespaceboost_1_1xint.html#a0a987fd73c7c0844f9ed4fdabf0f27e4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#af5698b6ba852f5a119429b17c2a08450">boost::xint</a>
 </li>
 <li>operator&lt;&lt;()
-: <a class="el" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">boost::xint</a>
 </li>
 <li>operator&lt;=()
-: <a class="el" href="namespaceboost_1_1xint.html#a9b01e116d91ad2d7d9f13138a1182d1d">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac3daab81a55daeceedd256ce49634d4d">boost::xint</a>
 </li>
 <li>operator==()
-: <a class="el" href="namespaceboost_1_1xint.html#aa753a8fb37b38da8293fec1c9bb09711">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a7d9f811ac514e033c7fc965b5cd62ee3">boost::xint</a>
 </li>
 <li>operator&gt;()
-: <a class="el" href="namespaceboost_1_1xint.html#af5c2bc8d95f42e9442c113d22614ac2d">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ad1ac6fb8431b231faecf34a5a2d01626">boost::xint</a>
 </li>
 <li>operator&gt;=()
-: <a class="el" href="namespaceboost_1_1xint.html#ad4fd77e8ed2e76028c3ae554bfc564f7">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a00c5ad6cf63ecc8ea3a2294ccedac7d3">boost::xint</a>
 </li>
 <li>operator&gt;&gt;()
-: <a class="el" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">boost::xint</a>
 </li>
 <li>operator^()
-: <a class="el" href="namespaceboost_1_1xint.html#a73c999d0550a46b24272e07f1720b025">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0d1ce319bfb004fb6b93283bcb4f98c2">boost::xint</a>
 </li>
 <li>operator|()
-: <a class="el" href="namespaceboost_1_1xint.html#aa8537f29fb1ade411f79084ffe170075">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a0b58f99b2c5bab4f7eec71d6058b23dd">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_p">- p -</a></h3><ul>
 <li>pow()
-: <a class="el" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644">boost::xint</a>
 </li>
 <li>powmod()
-: <a class="el" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_s">- s -</a></h3><ul>
 <li>setbit()
-: <a class="el" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0">boost::xint</a>
 </li>
 <li>sqrmod()
-: <a class="el" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3">boost::xint</a>
 </li>
 <li>square()
-: <a class="el" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd">boost::xint</a>
 </li>
 <li>square_root()
-: <a class="el" href="namespaceboost_1_1xint.html#adb652fa006fd8ed34993ea86cf317cb2">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#abb957c86cae5940b06172eb23345fe42">boost::xint</a>
 </li>
 <li>swap()
-: <a class="el" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">boost::xint</a>
 </li>
 </ul>
 
 
 <h3><a class="anchor" id="index_t">- t -</a></h3><ul>
 <li>to()
-: <a class="el" href="namespaceboost_1_1xint.html#afd9d2c7743d11e6959d6cda44c8abf69">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a9aa52eb4533b04c27329b3f6b7aa842b">boost::xint</a>
 </li>
 <li>to_binary()
-: <a class="el" href="namespaceboost_1_1xint.html#a66514eef6594409cda1dfad652e2dc40">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a36d0321bee2aade461e0f504400c7c1b">boost::xint</a>
 </li>
 <li>to_string()
-: <a class="el" href="namespaceboost_1_1xint.html#a92cfd4119fbf9eeb0a503d4e0dbe553c">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a2fb5a8cfac3e97a1641d424aac04a71f">boost::xint</a>
 </li>
 <li>to_stringtype()
-: <a class="el" href="namespaceboost_1_1xint.html#a7621dd91fa7eb64856241f8cafd1ef7e">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a12e9d9268bae5d099227af78c1dea758">boost::xint</a>
 </li>
 <li>to_wstring()
-: <a class="el" href="namespaceboost_1_1xint.html#a2493d0acb308a3ec0abd7326d9bc6a27">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#a6f24b4e0dc6e6c5de02480f5fb352030">boost::xint</a>
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -46,18 +46,15 @@
 <li>integer
 : <a class="el" href="namespaceboost_1_1xint.html#a3f9537c30e9c1f7341574fcd0223147c">boost::xint</a>
 </li>
-<li>integer_signature
-: <a class="el" href="namespaceboost_1_1xint_1_1options.html#af65b057a2b140d4ca9daec17bba31722">boost::xint::options</a>
-</li>
 <li>nothrow_integer
-: <a class="el" href="namespaceboost_1_1xint.html#af3a28f270195952c3bbe42bff5bf2cd4">boost::xint</a>
+: <a class="el" href="namespaceboost_1_1xint.html#adb761045d90aee163058a57489b51df2">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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -42,7 +42,7 @@
 </li>
 </ul>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -26,20 +26,34 @@
 </div>
 <div class="contents">
 <h1>detail/options.hpp File Reference</h1>
-<p>Declares the arbitrary-length integer type.
+<p>Declares the integer_t template options.
 <a href="#_details">More...</a></p>
 
 <p>Go to the source code of this file.</p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td colspan="2"><h2>Classes</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1copy__on__write.html">boost::xint::options::copy_on_write</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allows faster operations, at a price. More...<br/></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength.html">boost::xint::options::fixedlength&lt; Bits &gt;</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">boost::xint::options::fixedlength_base</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">boost::xint::options::nothrow&lt; Value &gt;</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">boost::xint::options::nothrow_base</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1secure.html">boost::xint::options::secure&lt; Value &gt;</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">boost::xint::options::secure_base</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe.html">boost::xint::options::threadsafe&lt; Value &gt;</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">boost::xint::options::threadsafe_base</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make fixed-length integers. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__absolute.html">boost::xint::options::negative_absolute</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer type that forces any negative number to its absolute value. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__allowed.html">boost::xint::options::negative_allowed</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a signed integer type. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__exception.html">boost::xint::options::negative_exception</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer type that considers unsigned values invalid. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__modulus.html">boost::xint::options::negative_modulus</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make a fixedlength integer wrap like a built-in unsigned type. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__not__allowed.html">boost::xint::options::negative_not_allowed</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an unsigned integer with the most common negative-value handling. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1negative__zero.html">boost::xint::options::negative_zero</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an integer type that forces any negative number to zero. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1nothrow.html">boost::xint::options::nothrow</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disables exceptions from the library. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1secure.html">boost::xint::options::secure</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Zeros memory before deallocating. More...<br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe.html">boost::xint::options::threadsafe</a></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ensures that the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> objects can be safely used by multiple threads. More...<br/></td></tr>
 <tr><td colspan="2"><h2>Namespaces</h2></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
 <tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint.html">boost::xint</a></td></tr>
@@ -47,35 +61,105 @@
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>All the types and functions of the library are within this namespace. </p>
 <br/></td></tr>
 </p>
+<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1detail.html">boost::xint::detail</a></td></tr>
+
+<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 class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1options.html">boost::xint::options</a></td></tr>
 
 <p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>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. </p>
 <br/></td></tr>
 </p>
-<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">typedef parameter::parameters<br class="typebreak"/>
-&lt; optional&lt; deduced<br class="typebreak"/>
-&lt; tag::fixedlength_tag &gt;<br class="typebreak"/>
-, is_base_of&lt; fixedlength_base, <br class="typebreak"/>
-_ &gt; &gt;, optional&lt; deduced<br class="typebreak"/>
-&lt; tag::threadsafe_tag &gt;<br class="typebreak"/>
-, is_base_of&lt; threadsafe_base, <br class="typebreak"/>
-_ &gt; &gt;, optional&lt; deduced<br class="typebreak"/>
-&lt; tag::secure_tag &gt;<br class="typebreak"/>
-, is_base_of&lt; secure_base, _ &gt;<br class="typebreak"/>
- &gt;, optional&lt; deduced<br class="typebreak"/>
-&lt; tag::nothrow_tag &gt;<br class="typebreak"/>
-, is_base_of&lt; nothrow_base, _ &gt;<br class="typebreak"/>
- &gt;, optional&lt; deduced<br class="typebreak"/>
-&lt; tag::allocator_tag &gt;<br class="typebreak"/>
-, is_class&lt; _ &gt; &gt;&gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1xint_1_1options.html#af65b057a2b140d4ca9daec17bba31722">boost::xint::options::integer_signature</a></td></tr>
+<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="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&nbsp;&nbsp;&nbsp;...</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="options_8hpp.html#ac2e7764d34cf12c1de4ae325d982d8e3">BOOST_XINT_BPARAMS</a>&nbsp;&nbsp;&nbsp;other</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">BOOST_XINT_CLASS_APARAMS</a>&nbsp;&nbsp;&nbsp;...</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="options_8hpp.html#a703c6d9989c912340d776ea5b2dbf4cd">BOOST_XINT_CLASS_BPARAMS</a>&nbsp;&nbsp;&nbsp;other</td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="options_8hpp.html#ab1e73a691d4b867f4a4269502bd09540">BOOST_XINT_INITIAL_APARAMS</a>&nbsp;&nbsp;&nbsp;...</td></tr>
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
-<p>Declares the arbitrary-length integer type. </p>
+<p>Declares the integer_t template options. </p>
 
 <p>Definition in file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<hr/><h2>Define Documentation</h2>
+<a class="anchor" id="aa350afa46bc87068c0cefb1925130b6c"></a><!-- doxytag: member="options.hpp::BOOST_XINT_APARAMS" ref="aa350afa46bc87068c0cefb1925130b6c" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BOOST_XINT_APARAMS&nbsp;&nbsp;&nbsp;...</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00237">237</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac2e7764d34cf12c1de4ae325d982d8e3"></a><!-- doxytag: member="options.hpp::BOOST_XINT_BPARAMS" ref="ac2e7764d34cf12c1de4ae325d982d8e3" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BOOST_XINT_BPARAMS&nbsp;&nbsp;&nbsp;other</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00238">238</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aeebffc787ad64df0fd45d351e3c36d89"></a><!-- doxytag: member="options.hpp::BOOST_XINT_CLASS_APARAMS" ref="aeebffc787ad64df0fd45d351e3c36d89" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BOOST_XINT_CLASS_APARAMS&nbsp;&nbsp;&nbsp;...</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00235">235</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a703c6d9989c912340d776ea5b2dbf4cd"></a><!-- doxytag: member="options.hpp::BOOST_XINT_CLASS_BPARAMS" ref="a703c6d9989c912340d776ea5b2dbf4cd" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BOOST_XINT_CLASS_BPARAMS&nbsp;&nbsp;&nbsp;other</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00236">236</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab1e73a691d4b867f4a4269502bd09540"></a><!-- doxytag: member="options.hpp::BOOST_XINT_INITIAL_APARAMS" ref="ab1e73a691d4b867f4a4269502bd09540" args="" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define BOOST_XINT_INITIAL_APARAMS&nbsp;&nbsp;&nbsp;...</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00234">234</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+
+</div>
+</div>
 </div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -41,49 +41,340 @@
 <a name="l00020"></a>00020 <span class="keyword">namespace </span>boost {
 <a name="l00021"></a>00021 <span class="keyword">namespace </span>xint {
 <a name="l00022"></a>00022
-<a name="l00023"></a>00023 BOOST_PARAMETER_TEMPLATE_KEYWORD(fixedlength_tag)
-<a name="l00024"></a>00024 BOOST_PARAMETER_TEMPLATE_KEYWORD(threadsafe_tag)
-<a name="l00025"></a>00025 BOOST_PARAMETER_TEMPLATE_KEYWORD(secure_tag)
-<a name="l00026"></a>00026 BOOST_PARAMETER_TEMPLATE_KEYWORD(nothrow_tag)
-<a name="l00027"></a>00027 BOOST_PARAMETER_TEMPLATE_KEYWORD(allocator_tag)
-<a name="l00028"></a>00028
-<a name="l00029"></a>00029 using boost::is_base_of;
-<a name="l00030"></a>00030 using boost::mpl::_;
-<a name="l00031"></a>00031 using boost::parameter::binding;
-<a name="l00032"></a>00032 using boost::parameter::optional;
-<a name="l00033"></a>00033 using boost::parameter::deduced;
-<a name="l00034"></a>00034
-<a name="l00036"></a><a class="code" href="namespaceboost_1_1xint_1_1options.html">00036</a> namespace options {
+<a name="l00023"></a>00023 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00024"></a>00024 <span class="preprocessor"></span>BOOST_PARAMETER_TEMPLATE_KEYWORD(fixedlength_tag)
+<a name="l00025"></a>00025 BOOST_PARAMETER_TEMPLATE_KEYWORD(threadsafe_tag)
+<a name="l00026"></a>00026 BOOST_PARAMETER_TEMPLATE_KEYWORD(secure_tag)
+<a name="l00027"></a>00027 BOOST_PARAMETER_TEMPLATE_KEYWORD(nothrow_tag)
+<a name="l00028"></a>00028 BOOST_PARAMETER_TEMPLATE_KEYWORD(allocator_tag)
+<a name="l00029"></a>00029 BOOST_PARAMETER_TEMPLATE_KEYWORD(sign_tag)
+<a name="l00030"></a>00030 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="keyword">using</span> boost::is_base_of;
+<a name="l00033"></a>00033 <span class="keyword">using</span> boost::mpl::_;
+<a name="l00034"></a>00034 <span class="keyword">using</span> boost::parameter::binding;
+<a name="l00035"></a>00035 <span class="keyword">using</span> boost::parameter::optional;
+<a name="l00036"></a>00036 <span class="keyword">using</span> boost::parameter::deduced;
 <a name="l00037"></a>00037
-<a name="l00038"></a><a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">00038</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">fixedlength_base</a> { };
-<a name="l00039"></a><a class="code" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">00039</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">threadsafe_base</a> { };
-<a name="l00040"></a><a class="code" href="structboost_1_1xint_1_1options_1_1secure__base.html">00040</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a> { };
-<a name="l00041"></a><a class="code" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">00041</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">nothrow_base</a> { };
-<a name="l00042"></a>00042
-<a name="l00043"></a><a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength.html">00043</a> <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits&gt; <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength.html">fixedlength</a>: <span class="keyword">public</span> <a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">fixedlength_base</a>, <span class="keyword">public</span>
-<a name="l00044"></a>00044 boost::mpl::integral_c&lt;bitsize_t, Bits&gt; { };
-<a name="l00045"></a><a class="code" href="structboost_1_1xint_1_1options_1_1threadsafe.html">00045</a> <span class="keyword">template</span> &lt;<span class="keywordtype">bool</span> Value&gt; <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1threadsafe.html">threadsafe</a>: <span class="keyword">public</span> <a class="code" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">threadsafe_base</a>, <span class="keyword">public</span>
-<a name="l00046"></a>00046 boost::mpl::bool_&lt;Value&gt; { };
-<a name="l00047"></a><a class="code" href="structboost_1_1xint_1_1options_1_1secure.html">00047</a> <span class="keyword">template</span> &lt;<span class="keywordtype">bool</span> Value&gt; <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1secure.html">secure</a>: <span class="keyword">public</span> <a class="code" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a>, <span class="keyword">public</span>
-<a name="l00048"></a>00048 boost::mpl::bool_&lt;Value&gt; { };
-<a name="l00049"></a><a class="code" href="structboost_1_1xint_1_1options_1_1nothrow.html">00049</a> <span class="keyword">template</span> &lt;<span class="keywordtype">bool</span> Value&gt; <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1nothrow.html">nothrow</a>: <span class="keyword">public</span> <a class="code" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">nothrow_base</a>, <span class="keyword">public</span>
-<a name="l00050"></a>00050 boost::mpl::bool_&lt;Value&gt; { };
-<a name="l00051"></a>00051
-<a name="l00052"></a>00052 <span class="keyword">typedef</span> parameter::parameters&lt;
-<a name="l00053"></a>00053 optional&lt;deduced&lt;tag::fixedlength_tag&gt;, is_base_of&lt;fixedlength_base, _&gt; &gt;,
-<a name="l00054"></a>00054 optional&lt;deduced&lt;tag::threadsafe_tag&gt;, is_base_of&lt;threadsafe_base, _&gt; &gt;,
-<a name="l00055"></a>00055 optional&lt;deduced&lt;tag::secure_tag&gt;, is_base_of&lt;secure_base, _&gt; &gt;,
-<a name="l00056"></a>00056 optional&lt;deduced&lt;tag::nothrow_tag&gt;, is_base_of&lt;nothrow_base, _&gt; &gt;,
-<a name="l00057"></a>00057 optional&lt;deduced&lt;tag::allocator_tag&gt;, is_class&lt;_&gt; &gt;
-<a name="l00058"></a><a class="code" href="namespaceboost_1_1xint_1_1options.html#af65b057a2b140d4ca9daec17bba31722">00058</a> &gt; <a class="code" href="namespaceboost_1_1xint_1_1options.html#af65b057a2b140d4ca9daec17bba31722">integer_signature</a>;
-<a name="l00059"></a>00059
-<a name="l00060"></a>00060 } <span class="comment">// namespace options</span>
-<a name="l00061"></a>00061 } <span class="comment">// namespace xint</span>
-<a name="l00062"></a>00062 } <span class="comment">// namespace boost</span>
-<a name="l00063"></a>00063
-<a name="l00064"></a>00064 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_INTEGER_OPTIONS_HPP</span>
+<a name="l00038"></a>00038 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="keyword">namespace </span>detail {
+<a name="l00040"></a>00040 <span class="keyword">enum</span> negative_policy {
+<a name="l00041"></a>00041 <span class="comment">// This says it&#39;s signed, and is the default.</span>
+<a name="l00042"></a>00042 p_signed_type,
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="comment">// This says it&#39;s unsigned, and to use the default negative policy (modulus</span>
+<a name="l00045"></a>00045 <span class="comment">// for fixed-length, throw_exception for variable-length).</span>
+<a name="l00046"></a>00046 p_unsigned_type,
+<a name="l00047"></a>00047
+<a name="l00048"></a>00048 <span class="comment">// These say that it&#39;s unsigned, and to use the specific negative policy</span>
+<a name="l00049"></a>00049 <span class="comment">// named.</span>
+<a name="l00050"></a>00050 p_modulus,
+<a name="l00051"></a>00051 p_throw_exception, <span class="comment">// or return Not-a-Number for nothrow types</span>
+<a name="l00052"></a>00052 p_force_zero,
+<a name="l00053"></a>00053 p_force_absolute,
+<a name="l00054"></a>00054 };
+<a name="l00055"></a>00055 } <span class="comment">// namespace detail</span>
+<a name="l00056"></a>00056 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00057"></a>00057 <span class="preprocessor"></span>
+<a name="l00073"></a><a class="code" href="namespaceboost_1_1xint_1_1options.html">00073</a> <span class="keyword">namespace </span>options {
+<a name="l00074"></a>00074
+<a name="l00075"></a>00075 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="keyword">struct </span>fixedlength_base { };
+<a name="l00077"></a>00077 <span class="keyword">struct </span>threadsafe_base { };
+<a name="l00078"></a>00078 <span class="keyword">struct </span>secure_base { };
+<a name="l00079"></a>00079 <span class="keyword">struct </span>nothrow_base { };
+<a name="l00080"></a>00080 <span class="keyword">struct </span>sign_base { };
+<a name="l00081"></a>00081 <span class="preprocessor">#endif // BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00082"></a>00082 <span class="preprocessor"></span>
+<a name="l00085"></a>00085
+<a name="l00095"></a><a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength.html">00095</a> <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits&gt; <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1fixedlength.html" title="Make fixed-length integers.">fixedlength</a>: <span class="keyword">public</span> fixedlength_base, <span class="keyword">public</span>
+<a name="l00096"></a>00096 boost::mpl::integral_c&lt;bitsize_t, Bits&gt; { };
+<a name="l00098"></a>00098
+<a name="l00101"></a>00101
+<a name="l00112"></a><a class="code" href="structboost_1_1xint_1_1options_1_1threadsafe.html">00112</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1threadsafe.html" title="Ensures that the integer_t objects can be safely used by multiple threads.">threadsafe</a>: <span class="keyword">public</span> threadsafe_base, <span class="keyword">public</span> boost::mpl::bool_&lt;true&gt; { };
+<a name="l00113"></a>00113
+<a name="l00127"></a><a class="code" href="structboost_1_1xint_1_1options_1_1copy__on__write.html">00127</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1copy__on__write.html" title="Allows faster operations, at a price.">copy_on_write</a>: <span class="keyword">public</span> threadsafe_base, <span class="keyword">public</span> boost::mpl::bool_&lt;false&gt;{};
+<a name="l00129"></a>00129
+<a name="l00132"></a>00132
+<a name="l00137"></a><a class="code" href="structboost_1_1xint_1_1options_1_1secure.html">00137</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1secure.html" title="Zeros memory before deallocating.">secure</a>: <span class="keyword">public</span> secure_base, <span class="keyword">public</span> boost::mpl::bool_&lt;true&gt; { };
+<a name="l00138"></a>00138
+<a name="l00145"></a><a class="code" href="structboost_1_1xint_1_1options_1_1nothrow.html">00145</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1nothrow.html" title="Disables exceptions from the library.">nothrow</a>: <span class="keyword">public</span> nothrow_base, <span class="keyword">public</span> boost::mpl::bool_&lt;true&gt; { };
+<a name="l00147"></a>00147
+<a name="l00150"></a>00150
+<a name="l00156"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__allowed.html">00156</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1negative__allowed.html" title="Creates a signed integer type.">negative_allowed</a>: <span class="keyword">public</span> sign_base, <span class="keyword">public</span>
+<a name="l00157"></a>00157 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_signed_type&gt;
+<a name="l00158"></a>00158 { };
+<a name="l00159"></a>00159
+<a name="l00166"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__not__allowed.html">00166</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1negative__not__allowed.html" title="Creates an unsigned integer with the most common negative-value handling.">negative_not_allowed</a>: <span class="keyword">public</span> sign_base, <span class="keyword">public</span>
+<a name="l00167"></a>00167 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_unsigned_type&gt;
+<a name="l00168"></a>00168 { };
+<a name="l00169"></a>00169
+<a name="l00177"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__modulus.html">00177</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1negative__modulus.html" title="Make a fixedlength integer wrap like a built-in unsigned type.">negative_modulus</a>: <span class="keyword">public</span> sign_base, <span class="keyword">public</span>
+<a name="l00178"></a>00178 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_modulus&gt;
+<a name="l00179"></a>00179 { };
+<a name="l00180"></a>00180
+<a name="l00187"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__exception.html">00187</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1negative__exception.html" title="Creates an integer type that considers unsigned values invalid.">negative_exception</a>: <span class="keyword">public</span> sign_base, <span class="keyword">public</span>
+<a name="l00188"></a>00188 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_throw_exception&gt;
+<a name="l00189"></a>00189 { };
+<a name="l00190"></a>00190
+<a name="l00198"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__zero.html">00198</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1negative__zero.html" title="Creates an integer type that forces any negative number to zero.">negative_zero</a>: <span class="keyword">public</span> sign_base, <span class="keyword">public</span>
+<a name="l00199"></a>00199 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_force_zero&gt;
+<a name="l00200"></a>00200 { };
+<a name="l00201"></a>00201
+<a name="l00208"></a><a class="code" href="structboost_1_1xint_1_1options_1_1negative__absolute.html">00208</a> <span class="keyword">struct </span><a class="code" href="structboost_1_1xint_1_1options_1_1negative__absolute.html" title="Creates an integer type that forces any negative number to its absolute value.">negative_absolute</a>: <span class="keyword">public</span> sign_base, <span class="keyword">public</span>
+<a name="l00209"></a>00209 boost::mpl::integral_c&lt;detail::negative_policy, detail::p_force_absolute&gt;
+<a name="l00210"></a>00210 { };
+<a name="l00212"></a>00212
+<a name="l00213"></a>00213 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00214"></a>00214 <span class="preprocessor"></span><span class="keyword">typedef</span> parameter::parameters&lt;
+<a name="l00215"></a>00215 optional&lt;deduced&lt;tag::fixedlength_tag&gt;, is_base_of&lt;fixedlength_base, _&gt; &gt;,
+<a name="l00216"></a>00216 optional&lt;deduced&lt;tag::threadsafe_tag&gt;, is_base_of&lt;threadsafe_base, _&gt; &gt;,
+<a name="l00217"></a>00217 optional&lt;deduced&lt;tag::secure_tag&gt;, is_base_of&lt;secure_base, _&gt; &gt;,
+<a name="l00218"></a>00218 optional&lt;deduced&lt;tag::nothrow_tag&gt;, is_base_of&lt;nothrow_base, _&gt; &gt;,
+<a name="l00219"></a>00219 optional&lt;deduced&lt;tag::sign_tag&gt;, is_base_of&lt;sign_base, _&gt; &gt;,
+<a name="l00220"></a>00220 optional&lt;deduced&lt;tag::allocator_tag&gt;, is_class&lt;_&gt; &gt;
+<a name="l00221"></a>00221 &gt; integer_signature;
+<a name="l00222"></a>00222 <span class="preprocessor">#endif</span>
+<a name="l00223"></a>00223 <span class="preprocessor"></span>
+<a name="l00224"></a>00224 } <span class="comment">// namespace options</span>
+<a name="l00225"></a>00225
+<a name="l00226"></a>00226 <span class="keyword">namespace </span>detail {
+<a name="l00227"></a>00227
+<a name="l00229"></a>00229 <span class="comment">// integer_t data</span>
+<a name="l00230"></a>00230
+<a name="l00231"></a>00231 <span class="preprocessor">#ifdef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00232"></a>00232 <span class="preprocessor"></span> <span class="comment">// The documentation should see a simplified version of the template</span>
+<a name="l00233"></a>00233 <span class="comment">// parameters.</span>
+<a name="l00234"></a><a class="code" href="options_8hpp.html#ab1e73a691d4b867f4a4269502bd09540">00234</a> <span class="preprocessor"> #define BOOST_XINT_INITIAL_APARAMS ...</span>
+<a name="l00235"></a><a class="code" href="options_8hpp.html#aeebffc787ad64df0fd45d351e3c36d89">00235</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CLASS_APARAMS ...</span>
+<a name="l00236"></a><a class="code" href="options_8hpp.html#a703c6d9989c912340d776ea5b2dbf4cd">00236</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CLASS_BPARAMS other</span>
+<a name="l00237"></a><a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">00237</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_APARAMS ...</span>
+<a name="l00238"></a><a class="code" href="options_8hpp.html#ac2e7764d34cf12c1de4ae325d982d8e3">00238</a> <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_BPARAMS other</span>
+<a name="l00239"></a>00239 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00240"></a>00240 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_INITIAL_APARAMS \</span>
+<a name="l00241"></a>00241 <span class="preprocessor"> class A0 = parameter::void_, \</span>
+<a name="l00242"></a>00242 <span class="preprocessor"> class A1 = parameter::void_, \</span>
+<a name="l00243"></a>00243 <span class="preprocessor"> class A2 = parameter::void_, \</span>
+<a name="l00244"></a>00244 <span class="preprocessor"> class A3 = parameter::void_, \</span>
+<a name="l00245"></a>00245 <span class="preprocessor"> class A4 = parameter::void_, \</span>
+<a name="l00246"></a>00246 <span class="preprocessor"> class A5 = parameter::void_</span>
+<a name="l00247"></a>00247 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CLASS_APARAMS class A0, class A1, class A2, class A3, \</span>
+<a name="l00248"></a>00248 <span class="preprocessor"> class A4, class A5</span>
+<a name="l00249"></a>00249 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_APARAMS A0, A1, A2, A3, A4, A5</span>
+<a name="l00250"></a>00250 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_CLASS_BPARAMS class B0, class B1, class B2, class B3, \</span>
+<a name="l00251"></a>00251 <span class="preprocessor"> class B4, class B5</span>
+<a name="l00252"></a>00252 <span class="preprocessor"></span><span class="preprocessor"> #define BOOST_XINT_BPARAMS B0, B1, B2, B3, B4, B5</span>
+<a name="l00253"></a>00253 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00254"></a>00254 <span class="preprocessor"></span>
+<a name="l00255"></a>00255 <span class="preprocessor">#ifndef BOOST_XINT_DOXYGEN_IGNORE</span>
+<a name="l00256"></a>00256 <span class="preprocessor"></span>
+<a name="l00257"></a>00257 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00258"></a>00258 <span class="keyword">class </span>integer_t_data {
+<a name="l00259"></a>00259 <span class="keyword">public</span>:
+<a name="l00260"></a>00260 <span class="keyword">typedef</span> <span class="keyword">typename</span> options::integer_signature::bind&lt;BOOST_XINT_APARAMS&gt;::type
+<a name="l00261"></a>00261 args;
+<a name="l00262"></a>00262 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::fixedlength_tag,
+<a name="l00263"></a>00263 options::fixedlength&lt;0&gt; &gt;::type BitsType;
+<a name="l00264"></a>00264 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::threadsafe_tag, mpl::true_&gt;::type
+<a name="l00265"></a>00265 ThreadsafeType;
+<a name="l00266"></a>00266 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::secure_tag, mpl::false_&gt;::type
+<a name="l00267"></a>00267 SecureType;
+<a name="l00268"></a>00268 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::nothrow_tag, mpl::false_&gt;::type
+<a name="l00269"></a>00269 NothrowType;
+<a name="l00270"></a>00270 <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">typename</span> binding&lt;args, tag::sign_tag,
+<a name="l00271"></a>00271 options::negative_allowed&gt;::type SignType;
+<a name="l00272"></a>00272
+<a name="l00273"></a>00273 <span class="keyword">static</span> <span class="keyword">const</span> <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="l00274"></a>00274 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> Threadsafe, Secure, Nothrow, Signed;
+<a name="l00275"></a>00275 <span class="keyword">typedef</span> <span class="keyword">typename</span> binding&lt;args, tag::allocator_tag,
+<a name="l00276"></a>00276 std::allocator&lt;detail::digit_t&gt; &gt;::type Alloc;
+<a name="l00277"></a>00277 <span class="keyword">typedef</span> raw_integer_t&lt;BitsType::value, SecureType::value, Alloc&gt; datatype;
+<a name="l00278"></a>00278
+<a name="l00279"></a>00279 integer_t_data() { }
+<a name="l00280"></a>00280 integer_t_data(<span class="keyword">const</span> datatype&amp; copy): data(copy) { }
+<a name="l00281"></a>00281 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> B, <span class="keywordtype">bool</span> S, <span class="keyword">class</span> A&gt;
+<a name="l00282"></a>00282 integer_t_data(<span class="keyword">const</span> raw_integer_t&lt;B,S,A&gt;&amp; copy): data(copy) { }
+<a name="l00283"></a>00283
+<a name="l00285"></a>00285
+<a name="l00286"></a>00286 datatype&amp; _data() { <span class="keywordflow">return</span> data; }
+<a name="l00287"></a>00287 <span class="keyword">const</span> datatype&amp; _data()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }
+<a name="l00288"></a>00288 std::size_t _get_length()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data.length; }
+<a name="l00289"></a>00289 detail::digit_t _get_digit(std::size_t i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data[i]; }
+<a name="l00290"></a>00290 <span class="keywordtype">void</span> _make_unique() { data.make_unique(); }
+<a name="l00292"></a>00292
+<a name="l00293"></a>00293 <span class="keyword">protected</span>:
+<a name="l00294"></a>00294 datatype data;
+<a name="l00295"></a>00295 };
+<a name="l00296"></a>00296
+<a name="l00297"></a>00297 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00298"></a>00298 <span class="keyword">const</span> <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> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Bits =
+<a name="l00299"></a>00299 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::BitsType::value;
+<a name="l00300"></a>00300
+<a name="l00301"></a>00301 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00302"></a>00302 <span class="keyword">const</span> <span class="keywordtype">bool</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Threadsafe =
+<a name="l00303"></a>00303 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::ThreadsafeType::value;
+<a name="l00304"></a>00304
+<a name="l00305"></a>00305 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00306"></a>00306 <span class="keyword">const</span> <span class="keywordtype">bool</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Secure =
+<a name="l00307"></a>00307 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::SecureType::value;
+<a name="l00308"></a>00308
+<a name="l00309"></a>00309 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00310"></a>00310 <span class="keyword">const</span> <span class="keywordtype">bool</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Nothrow =
+<a name="l00311"></a>00311 integer_t_data&lt;BOOST_XINT_APARAMS&gt;::NothrowType::value;
+<a name="l00312"></a>00312
+<a name="l00313"></a>00313 <span class="keyword">template</span>&lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00314"></a>00314 <span class="keyword">const</span> <span class="keywordtype">bool</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Signed =
+<a name="l00315"></a>00315 (integer_t_data&lt;BOOST_XINT_APARAMS&gt;::SignType::value == p_signed_type);
+<a name="l00316"></a>00316
+<a name="l00318"></a>00318 <span class="comment">// class nan_functions, to handle nothrow-specific Not-a-Number stuff</span>
+<a name="l00319"></a>00319
+<a name="l00320"></a>00320 <span class="keyword">template</span> &lt;<span class="keywordtype">bool</span> Nothrow, <span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00321"></a>00321 <span class="keyword">class </span>nan_functions { };
+<a name="l00322"></a>00322
+<a name="l00323"></a>00323 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00324"></a>00324 <span class="keyword">class </span>nan_functions&lt;false, T, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span> <span class="keyword">public</span>
+<a name="l00325"></a>00325 integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00326"></a>00326 {
+<a name="l00327"></a>00327 <span class="keyword">public</span>:
+<a name="l00328"></a>00328 <span class="keywordtype">bool</span> is_nan()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }
+<a name="l00329"></a>00329 };
+<a name="l00330"></a>00330
+<a name="l00331"></a>00331 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00332"></a>00332 <span class="keyword">class </span>nan_functions&lt;true, T, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span> <span class="keyword">public</span>
+<a name="l00333"></a>00333 integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00334"></a>00334 {
+<a name="l00335"></a>00335 <span class="keyword">public</span>:
+<a name="l00336"></a>00336 <span class="keywordtype">bool</span> is_nan()<span class="keyword"> const </span>{
+<a name="l00337"></a>00337 <span class="keywordflow">return</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::data.is_nan();
+<a name="l00338"></a>00338 }
+<a name="l00339"></a>00339
+<a name="l00340"></a>00340 <span class="keyword">static</span> T nan() { <span class="keywordflow">return</span> get_nan&lt;T&gt;(); }
+<a name="l00341"></a>00341 };
+<a name="l00342"></a>00342
+<a name="l00344"></a>00344 <span class="comment">// class fixed_functions, to handle fixed-specific stuff</span>
+<a name="l00345"></a>00345
+<a name="l00346"></a>00346 <span class="keyword">template</span> &lt;bit<span class="keywordtype">size_t</span> Bits, <span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00347"></a>00347 <span class="keyword">class </span>fixed_functions: <span class="keyword">virtual</span> <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt; {
+<a name="l00348"></a>00348 <span class="keyword">using</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Threadsafe;
+<a name="l00349"></a>00349 <span class="keyword">using</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Nothrow;
+<a name="l00350"></a>00350 <span class="keyword">using</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::Signed;
+<a name="l00351"></a>00351
+<a name="l00352"></a>00352 <span class="keyword">public</span>:
+<a name="l00353"></a>00353 T operator~()<span class="keyword"> const </span>{
+<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="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="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="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="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 }
+<a name="l00374"></a>00374 };
+<a name="l00375"></a>00375
+<a name="l00376"></a>00376 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00377"></a>00377 <span class="keyword">class </span>fixed_functions&lt;0, T, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span> <span class="keyword">public</span>
+<a name="l00378"></a>00378 integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00379"></a>00379 {
+<a name="l00380"></a>00380 <span class="comment">// Nothing needed here at present.</span>
+<a name="l00381"></a>00381 };
+<a name="l00382"></a>00382
+<a name="l00384"></a>00384 <span class="comment">// class unsigned_negative_functions, for... well, unsigned negatives. :-)</span>
+<a name="l00385"></a>00385
+<a name="l00386"></a>00386 <span class="keyword">template</span> &lt;negative_policy P, BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00387"></a>00387 <span class="keyword">class </span>unsigned_negative_functions { };
+<a name="l00388"></a>00388
+<a name="l00389"></a>00389 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00390"></a>00390 <span class="keyword">class </span>unsigned_negative_functions&lt;p_signed_type, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt; {
+<a name="l00391"></a>00391 <span class="keyword">public</span>:
+<a name="l00392"></a>00392 <span class="keywordtype">void</span> _fix_negative_unsigned() { } <span class="comment">// Nothing to do for signed numbers</span>
+<a name="l00393"></a>00393 };
+<a name="l00394"></a>00394
+<a name="l00395"></a>00395 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00396"></a>00396 <span class="keyword">class </span>unsigned_negative_functions&lt;p_unsigned_type, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span>
+<a name="l00397"></a>00397 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;, <span class="keyword">public</span>
+<a name="l00398"></a>00398 unsigned_negative_functions&lt;(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::BitsType::
+<a name="l00399"></a>00399 value != 0 ? p_modulus : p_throw_exception), BOOST_XINT_APARAMS&gt;
+<a name="l00400"></a>00400 {
+<a name="l00401"></a>00401 <span class="comment">// Don&#39;t need anything here, it inherits from the proper default item</span>
+<a name="l00402"></a>00402 <span class="comment">// (modulus for fixed-length, throw_exception for variable-length)</span>
+<a name="l00403"></a>00403 };
+<a name="l00404"></a>00404
+<a name="l00405"></a>00405 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00406"></a>00406 <span class="keyword">class </span>unsigned_negative_functions&lt;p_modulus, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;: <span class="keyword">virtual</span>
+<a name="l00407"></a>00407 <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00408"></a>00408 {
+<a name="l00409"></a>00409 <span class="comment">// Types using unsigned_modulus must be fixedlength too.</span>
+<a name="l00410"></a>00410 <span class="keyword">typedef</span> <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::BitsType BitsType;
+<a name="l00411"></a>00411 BOOST_STATIC_ASSERT(BitsType::value != 0);
+<a name="l00412"></a>00412
+<a name="l00413"></a>00413 <span class="keyword">public</span>:
+<a name="l00414"></a>00414 <span class="keywordtype">void</span> _fix_negative_unsigned() {
+<a name="l00415"></a>00415 <span class="keyword">typename</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;::datatype&amp;
+<a name="l00416"></a>00416 data(integer_t_data&lt;BOOST_XINT_APARAMS&gt;::_data());
+<a name="l00417"></a>00417 data = ~data;
+<a name="l00418"></a>00418 ++data;
+<a name="l00419"></a>00419 }
+<a name="l00420"></a>00420 };
+<a name="l00421"></a>00421
+<a name="l00422"></a>00422 <span class="keyword">template</span> &lt;BOOST_XINT_CLASS_APARAMS&gt;
+<a name="l00423"></a>00423 <span class="keyword">class </span>unsigned_negative_functions&lt;p_throw_exception, <a class="code" href="options_8hpp.html#aa350afa46bc87068c0cefb1925130b6c">BOOST_XINT_APARAMS</a>&gt;:
+<a name="l00424"></a>00424 <span class="keyword">virtual</span> <span class="keyword">public</span> integer_t_data&lt;BOOST_XINT_APARAMS&gt;
+<a name="l00425"></a>00425 {
+<a name="l00426"></a>00426 <span class="keyword">public</span>:
+<a name="l00427"></a>00427 <span class="keywordtype">void</span> _fix_negative_unsigned() {
+<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>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -212,7 +212,7 @@
 <a name="l00198"></a>00198
 <a name="l00199"></a>00199 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_POLICY_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -44,7 +44,7 @@
 <a name="l00025"></a>00025 <span class="keyword">namespace </span>detail {
 <a name="l00027"></a>00027
 <a name="l00028"></a>00028 BOOST_XINT_RAWINT_TPL
-<a name="l00029"></a>00029 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a499b28ba7acd8b1534bb968826e23c52" title="Calculate the value of ne">pow</a>(BOOST_XINT_RAWINT&amp; target, <span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">const</span>
+<a name="l00029"></a>00029 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a483e2fdc6cef9afa1295afeceda4a644" title="Calculate the value of ne">pow</a>(BOOST_XINT_RAWINT&amp; target, <span class="keyword">const</span> BOOST_XINT_RAWINT n, <span class="keyword">const</span>
 <a name="l00030"></a>00030 BOOST_XINT_RAWINT e)
 <a name="l00031"></a>00031 {
 <a name="l00032"></a>00032 <span class="keywordflow">if</span> (e.is_zero()) {
@@ -73,7 +73,7 @@
 <a name="l00055"></a>00055 bits_per_digit));
 <a name="l00056"></a>00056 <span class="keywordflow">while</span> (bitCount-- &gt; 0) {
 <a name="l00057"></a>00057 <span class="keywordflow">if</span> (eee &amp; 0x01) target *= p;
-<a name="l00058"></a>00058 p = <a class="code" href="namespaceboost_1_1xint.html#abe5e63185f27f2c795dc287e030ec424" title="Calculate the value of n2">square</a>(p);
+<a name="l00058"></a>00058 p = <a class="code" href="namespaceboost_1_1xint.html#ac40d60956ef5af3b64804c7a9abffcdd" title="Calculate the value of n2">square</a>(p);
 <a name="l00059"></a>00059 eee &gt;&gt;= 1;
 <a name="l00060"></a>00060 }
 <a name="l00061"></a>00061 }
@@ -84,7 +84,7 @@
 <a name="l00066"></a>00066 BOOST_XINT_RAWINT_TPL <span class="keywordtype">void</span> pow2(BOOST_XINT_RAWINT&amp; target, std::size_t exponent)
 <a name="l00067"></a>00067 {
 <a name="l00068"></a>00068 target.set(0);
-<a name="l00069"></a>00069 <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(target, exponent);
+<a name="l00069"></a>00069 <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(target, exponent);
 <a name="l00070"></a>00070 target.trim();
 <a name="l00071"></a>00071 }
 <a name="l00072"></a>00072
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -84,12 +84,12 @@
 <a name="l00066"></a>00066 <span class="comment">// We check the congruence class of b^((2^i)r) % n for each i</span>
 <a name="l00067"></a>00067 <span class="comment">// from 0 to a - 1. If any one is correct, then n passes.</span>
 <a name="l00068"></a>00068 <span class="comment">// Otherwise, n fails.</span>
-<a name="l00069"></a>00069 BOOST_XINT_RAWINT test = <a class="code" href="namespaceboost_1_1xint.html#a1108e56d7d500a384bd0bb0a6849bfa0" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(b, r, n);
+<a name="l00069"></a>00069 BOOST_XINT_RAWINT test = <a class="code" href="namespaceboost_1_1xint.html#a9c1648ef679123bb2bf77681ffdfa815" title="Get the result of ne % m, keeping the intermediate results (relatively) small.">powmod</a>(b, r, n);
 <a name="l00070"></a>00070 <span class="keywordflow">if</span> (test == one || test == nMinus1)
 <a name="l00071"></a>00071 <span class="keywordflow">return</span> 1; <span class="comment">// Better than 3/4 chance it&#39;s prime</span>
 <a name="l00072"></a>00072
 <a name="l00073"></a>00073 <span class="keywordflow">while</span> (a-- &gt; 0) {
-<a name="l00074"></a>00074 test = <a class="code" href="namespaceboost_1_1xint.html#a979ddb09a4d1a5dbfcb0707c19695877" title="Get the modular product of squaring an integer.">sqrmod</a>(test, n);
+<a name="l00074"></a>00074 test = <a class="code" href="namespaceboost_1_1xint.html#aa41f48c60b257cb321fe89fe0b65b6c3" title="Get the modular product of squaring an integer.">sqrmod</a>(test, n);
 <a name="l00075"></a>00075 <span class="keywordflow">if</span> (test == nMinus1) <span class="keywordflow">return</span> 1;
 <a name="l00076"></a>00076 }
 <a name="l00077"></a>00077
@@ -98,7 +98,7 @@
 <a name="l00080"></a>00080 }
 <a name="l00081"></a>00081
 <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#a089d98ffc4599122209d1a3c1c7c39d4" 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="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>);
@@ -152,7 +152,7 @@
 <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#a089d98ffc4599122209d1a3c1c7c39d4" title="Tests an integer for primality.">is_prime</a>(target, callback);
+<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;
@@ -166,7 +166,7 @@
 <a name="l00149"></a>00149 <span class="comment"></span>
 <a name="l00150"></a>00150 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_PRIME_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -23,9 +23,9 @@
 <div class="contents">
 
 
-<h1><a class="anchor" id="r_random">Why did you implement your own random number generator? You should use Boost.Random instead. </a></h1><p>Boost.Random provides <code>boost::random_device</code> to tap into the operating system's strong random number generator, but at the time of this writing, the official released version only defines it for Linux and BSD systems. The current maintainer, Steven Watanabe, says that he has just added Windows compatibility to it, so the <code>xint::strong_random_generator</code> class will likely be reduced to a typedef for <code>boost::random_device</code>, or a thin shell around it, in the near future. </p>
+<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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -25,11 +25,11 @@
 
 <h1><a class="anchor" id="random">The XInt Random Number System </a></h1><p>The library includes two convenience classes, meant to be used with the <code>xint::random_prime</code> function.</p>
 <p><code>default_random_generator</code> is a thin shell around one of the faster pseudo-random generators provided by Boost.Random. It does <em>not</em> produce secure random numbers, but is often all that is needed.</p>
-<p><code>strong_random_generator</code> provides an interface to the operating system's secure random number generator, for both Windows and UNIX-derived systems. It will throw an exception of type <code>no_strong_random</code> if you try to instantiate it on a system that does not have an operating-system-supplied generator.</p>
+<p><code>strong_random_generator</code> provides an interface to the operating system's secure random number generator, for both Windows and UNIX-derived systems. It will throw an exception of type <code>no_strong_random</code> if you try to instantiate it on a system that does not have an operating-system-supplied generator. Note that, as of Boost 1.43, the <code>boost::random_device</code> class is basically identical to <code>xint::strong_random_generator</code>, and probably better in some respects. <code>xint::strong_random_generator</code> is still provided because <code>boost::random_device</code> requires a compiled library, making it more difficult to use in examples.</p>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -73,8 +73,8 @@
 <a name="l00055"></a>00055 <span class="keywordflow">for</span> (digit_t *i = tdigits + index + 1, *ie = tdigits + target.length; i &lt;
 <a name="l00056"></a>00056 ie; ++i) *i = 0;
 <a name="l00057"></a>00057
-<a name="l00058"></a>00058 <span class="keywordflow">if</span> (high_bit_on) <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(target, bits - 1);
-<a name="l00059"></a>00059 <span class="keywordflow">if</span> (low_bit_on) <a class="code" href="namespaceboost_1_1xint.html#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(target, 0);
+<a name="l00058"></a>00058 <span class="keywordflow">if</span> (high_bit_on) <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(target, bits - 1);
+<a name="l00059"></a>00059 <span class="keywordflow">if</span> (low_bit_on) <a class="code" href="namespaceboost_1_1xint.html#ae957235f76cb2fa0e1530255ccbfa8d0" title="Sets a specific bit in an integer to one.">setbit</a>(target, 0);
 <a name="l00060"></a>00060 target.negative = (can_be_negative &amp;&amp; (gen() &amp; 0x01));
 <a name="l00061"></a>00061 target.trim();
 <a name="l00062"></a>00062 <span class="keywordflow">return</span> target;
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -158,7 +158,7 @@
 <a name="l00142"></a>00142 <span class="comment"></span>
 <a name="l00143"></a>00143 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_RANDOMGEN_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -107,8 +107,8 @@
 <a name="l00090"></a>00090 <span class="keywordtype">bool</span> is_zero()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (length == 1 &amp;&amp; digits()[0] == 0); }
 <a name="l00091"></a>00091 <span class="keywordtype">bool</span> is_odd()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (digits()[0] &amp; 0x01) != 0; }
 <a name="l00092"></a>00092 <span class="keywordtype">bool</span> is_even()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (digits()[0] &amp; 0x01) == 0; }
-<a name="l00093"></a>00093 std::size_t hex_digits()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(*<span class="keyword">this</span>) + 3) / 4; }
-<a name="l00094"></a>00094 raw_integer_t <a class="code" href="namespaceboost_1_1xint.html#a5a98564162f30f3117a871a617af9523" title="Returns the absolute value of an integer.">abs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> raw_integer_t(*<span class="keyword">this</span>, <span class="keyword">false</span>); }
+<a name="l00093"></a>00093 std::size_t hex_digits()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="namespaceboost_1_1xint.html#aec7b803cbc9245ccae1f88e4efab327b" title="Get the log2 value of an integer.">log2</a>(*<span class="keyword">this</span>) + 3) / 4; }
+<a name="l00094"></a>00094 raw_integer_t <a class="code" href="namespaceboost_1_1xint.html#a331d95962aedbdb34f04ef373555dd8a" title="Returns the absolute value of an integer.">abs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> raw_integer_t(*<span class="keyword">this</span>, <span class="keyword">false</span>); }
 <a name="l00095"></a>00095 raw_integer_t negate()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> raw_integer_t(*<span class="keyword">this</span>, !negative); }
 <a name="l00096"></a>00096
 <a name="l00097"></a>00097 <span class="keywordtype">void</span> <span class="keyword">set</span>(<span class="keywordtype">int</span> n) { set_signed(n); }
@@ -130,10 +130,10 @@
 <a name="l00113"></a>00113 raw_integer_t operator--(<span class="keywordtype">int</span>); <span class="comment">// Postdecrement</span>
 <a name="l00114"></a>00114
 <a name="l00115"></a>00115 <span class="keywordtype">bool</span> operator!()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> is_zero(); }
-<a name="l00116"></a>00116 raw_integer_t <a class="code" href="namespaceboost_1_1xint.html#acda2a7a7d63582732505cc7128096f27" title="Calculate the difference between two integers.">operator-</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> BOOST_XINT_RAWINT(*<span class="keyword">this</span>,
+<a name="l00116"></a>00116 raw_integer_t <a class="code" href="namespaceboost_1_1xint.html#ab6132105fbe7d7bf7a756b868b6a372e" title="Calculate the difference between two integers.">operator-</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> BOOST_XINT_RAWINT(*<span class="keyword">this</span>,
 <a name="l00117"></a>00117 !negative, <span class="keyword">true</span>); }
-<a name="l00118"></a>00118 raw_integer_t&amp; <a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>() { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l00119"></a>00119 <span class="keyword">const</span> raw_integer_t&amp; <a class="code" href="namespaceboost_1_1xint.html#a88b3b7bccb96dd8b0cd9d9f853025915" title="Calculate the sum of two integers.">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00118"></a>00118 raw_integer_t&amp; <a class="code" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da" title="Calculate the sum of two integers.">operator+</a>() { <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
+<a name="l00119"></a>00119 <span class="keyword">const</span> raw_integer_t&amp; <a class="code" href="namespaceboost_1_1xint.html#a15c7951bc910713f8209b7ebd78396da" title="Calculate the sum of two integers.">operator+</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
 <a name="l00120"></a>00120 raw_integer_t operator~() <span class="keyword">const</span>; <span class="comment">// For fixed-size types only!</span>
 <a name="l00121"></a>00121
 <a name="l00122"></a>00122 raw_integer_t&amp; operator+=(<span class="keyword">const</span> raw_integer_t b);
@@ -263,17 +263,17 @@
 <a name="l00246"></a>00246
 <a name="l00247"></a>00247 BOOST_XINT_RAWINT_TPL
 <a name="l00248"></a>00248 <span class="keywordtype">void</span> BOOST_XINT_RAWINT::_swap(BOOST_XINT_RAWINT&amp; i2) {
-<a name="l00249"></a>00249 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">std::swap</a>;
-<a name="l00250"></a>00250 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(length, i2.length);
-<a name="l00251"></a>00251 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(negative, i2.negative);
-<a name="l00252"></a>00252 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(changed, i2.changed);
-<a name="l00253"></a>00253 <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(data, i2.data);
+<a name="l00249"></a>00249 <span class="keyword">using</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">std::swap</a>;
+<a name="l00250"></a>00250 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(length, i2.length);
+<a name="l00251"></a>00251 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(negative, i2.negative);
+<a name="l00252"></a>00252 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(changed, i2.changed);
+<a name="l00253"></a>00253 <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(data, i2.data);
 <a name="l00254"></a>00254 }
 <a name="l00255"></a>00255
 <a name="l00257"></a>00257 <span class="comment">// Free functions</span>
 <a name="l00258"></a>00258
 <a name="l00259"></a>00259 BOOST_XINT_RAWINT_TPL
-<a name="l00260"></a>00260 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#a1a857d5cc4b15822d3dcaf70ec15b4e5">swap</a>(BOOST_XINT_RAWINT&amp; i1, BOOST_XINT_RAWINT&amp; i2) {
+<a name="l00260"></a>00260 <span class="keywordtype">void</span> <a class="code" href="namespaceboost_1_1xint.html#ab4aafdf3645cbad0cb3af54fdec4caff">swap</a>(BOOST_XINT_RAWINT&amp; i1, BOOST_XINT_RAWINT&amp; i2) {
 <a name="l00261"></a>00261 i1._swap(i2);
 <a name="l00262"></a>00262 }
 <a name="l00263"></a>00263
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -44,7 +44,7 @@
 <a name="l00027"></a>00027 <span class="keyword">namespace </span>detail {
 <a name="l00028"></a>00028
 <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#adb652fa006fd8ed34993ea86cf317cb2" title="Calculate the square root of an integer.">square_root</a>(BOOST_XINT_RAWINT n) {
+<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>);
@@ -58,7 +58,7 @@
 <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#ac16087b6d58edabc3b67c94e63e22921" title="Sets a specific bit in an integer to one.">setbit</a>(target, <a class="code" href="namespaceboost_1_1xint.html#ab6cef2e4e1b3c3b841f6c1a085952f18" title="Get the log2 value of an integer.">log2</a>(n) / 2);
+<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) {
@@ -78,7 +78,7 @@
 <a name="l00062"></a>00062 <span class="comment"></span>
 <a name="l00063"></a>00063 <span class="preprocessor">#endif // BOOST_INCLUDED_XINT_ROOTS_HPP</span>
 </pre></div></div>
-<hr class="footer"/><address style="text-align: right;"><small>Generated on Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -113,12 +113,12 @@
 <a name="l00095"></a>00095 }
 <a name="l00096"></a>00096
 <a name="l00097"></a>00097 BOOST_XINT_RAWINT_TPL
-<a name="l00098"></a>00098 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">operator&lt;&lt;</a>(BOOST_XINT_RAWINT n, std::size_t bits) {
+<a name="l00098"></a>00098 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">operator&lt;&lt;</a>(BOOST_XINT_RAWINT n, std::size_t bits) {
 <a name="l00099"></a>00099 <span class="keywordflow">return</span> (n &lt;&lt;= bits);
 <a name="l00100"></a>00100 }
 <a name="l00101"></a>00101
 <a name="l00102"></a>00102 BOOST_XINT_RAWINT_TPL
-<a name="l00103"></a>00103 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator&gt;&gt;</a>(BOOST_XINT_RAWINT n, std::size_t bits) {
+<a name="l00103"></a>00103 BOOST_XINT_RAWINT <a class="code" href="namespaceboost_1_1xint.html#a7ad17ed38204ec9a774788ea28368701">operator&gt;&gt;</a>(BOOST_XINT_RAWINT n, std::size_t bits) {
 <a name="l00104"></a>00104 <span class="keywordflow">return</span> (n &gt;&gt;= bits);
 <a name="l00105"></a>00105 }
 <a name="l00106"></a>00106
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -45,7 +45,7 @@
 <a name="l00027"></a>00027
 <a name="l00028"></a>00028 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> charT, <span class="keyword">typename</span> traits, <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, <span class="keywordtype">bool</span> Secure, <span class="keyword">class </span>\
 <a name="l00029"></a>00029 Alloc&gt;
-<a name="l00030"></a>00030 <span class="keyword">inline</span> std::basic_ostream&lt;charT,traits&gt;&amp; <a class="code" href="namespaceboost_1_1xint.html#a678851ea0cb31cb4ef66bc8389d369d3">operator&lt;&lt;</a>(std::basic_ostream&lt;charT,
+<a name="l00030"></a>00030 <span class="keyword">inline</span> std::basic_ostream&lt;charT,traits&gt;&amp; <a class="code" href="namespaceboost_1_1xint.html#a0e501790ec0437c226ce54f98493aad9">operator&lt;&lt;</a>(std::basic_ostream&lt;charT,
 <a name="l00031"></a>00031 traits&gt;&amp; out, <span class="keyword">const</span> BOOST_XINT_RAWINT n)
 <a name="l00032"></a>00032 {
 <a name="l00033"></a>00033 <span class="keywordtype">int</span> base=((out.flags() &amp; std::ios::hex) ? 16
@@ -72,7 +72,7 @@
 <a name="l00054"></a>00054
 <a name="l00055"></a>00055 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> charT, <span class="keyword">typename</span> traits, <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, <span class="keywordtype">bool</span> Secure, <span class="keyword">class </span>\
 <a name="l00056"></a>00056 Alloc&gt;
-<a name="l00057"></a>00057 <span class="keyword">inline</span> std::basic_istream&lt;charT,traits&gt;&amp; <a class="code" href="namespaceboost_1_1xint.html#ad5bc89da790a0843ba90a88cbc7856a6">operator&gt;&gt;</a>(std::basic_istream&lt;charT,
+<a name="l00057"></a>00057 <span class="keyword">inline</span> 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="l00058"></a>00058 traits&gt;&amp; in, BOOST_XINT_RAWINT&amp; n)
 <a name="l00059"></a>00059 {
 <a name="l00060"></a>00060 <span class="keywordtype">int</span> hex=(in.flags() &amp; std::ios::hex) ? 1 : 0;
@@ -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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <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/structboost_1_1xint_1_1options_1_1copy__on__write.html (from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1copy__on__write.html 2010-06-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::secure_base Struct Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::copy_on_write Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,34 +20,29 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a>
+ <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1copy__on__write.html">copy_on_write</a>
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::secure_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::secure_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::secure_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1secure__base.png" usemap="#boost::xint::options::secure_base_map" alt=""/>
- <map id="boost::xint::options::secure_base_map" name="boost::xint::options::secure_base_map">
-<area href="structboost_1_1xint_1_1options_1_1secure.html" alt="boost::xint::options::secure&lt; Value &gt;" shape="rect" coords="0,56,215,80"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::copy_on_write Struct Reference</h1><!-- doxytag: class="boost::xint::options::copy_on_write" -->
+<p>Allows faster operations, at a price.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Allows faster operations, at a price. </p>
+<p>This is the opposite of the <a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe.html">threadsafe</a> option.</p>
+<p>By default, the library ensures that each object has its own unique storage before returning it. If this option is used, identical objects are allowed to share storage using a copy-on-write design, potentially increasing the speed of the library, but making it unsafe for multithreaded use (with <a class="el" href="threadsafe.html">some exceptions</a>). The library allows copy-on-write for internal functions regardless of this parameter, which is safe because the internal functions only use one thread at a time. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00040">40</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00127">127</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -28,29 +27,30 @@
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::fixedlength&lt; Bits &gt; Struct Template Reference</h1><!-- doxytag: class="boost::xint::options::fixedlength" --><!-- doxytag: inherits="boost::xint::options::fixedlength_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::fixedlength&lt; Bits &gt;:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1fixedlength.png" usemap="#boost::xint::options::fixedlength&lt; Bits &gt;_map" alt=""/>
- <map id="boost::xint::options::fixedlength&lt; Bits &gt;_map" name="boost::xint::options::fixedlength&lt; Bits &gt;_map">
-<area href="structboost_1_1xint_1_1options_1_1fixedlength__base.html" alt="boost::xint::options::fixedlength_base" shape="rect" coords="0,0,224,24"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::fixedlength&lt; Bits &gt; Struct Template Reference</h1><!-- doxytag: class="boost::xint::options::fixedlength" -->
+<p>Make fixed-length integers.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
 <h3>template&lt;bitsize_t Bits&gt;<br/>
  struct boost::xint::options::fixedlength&lt; Bits &gt;</h3>
 
+<p>Make fixed-length integers. </p>
+<dl><dt><b>Template Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>Bits</em>&nbsp;</td><td>The number of bits to limit it to, or zero for unlimited-length.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>If <code>Bits</code> is non-zero, integers of this type are <a class="el" href="fixedlength__type.html">fixed-length</a>, limited to the specified number of bits. If zero (the default), the integer is limited only by your system's memory. See also the <a class="el" href="structboost_1_1xint_1_1options_1_1negative__modulus.html">negative_modulus</a> option. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00043">43</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00095">95</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength.png
==============================================================================
Binary file. No diff available.

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
+++ (empty file)
@@ -1,54 +0,0 @@
-<!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: boost::xint::options::fixedlength_base Struct Reference</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 class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">fixedlength_base</a>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::options::fixedlength_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::fixedlength_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::fixedlength_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1fixedlength__base.png" usemap="#boost::xint::options::fixedlength_base_map" alt=""/>
- <map id="boost::xint::options::fixedlength_base_map" name="boost::xint::options::fixedlength_base_map">
-<area href="structboost_1_1xint_1_1options_1_1fixedlength.html" alt="boost::xint::options::fixedlength&lt; Bits &gt;" shape="rect" coords="0,56,224,80"/>
-</map>
- </div>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00038">38</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<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 Sun Jun 13 12:31:58 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>

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.png
==============================================================================
Binary file. No diff available.

Copied: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html (from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__absolute.html 2010-06-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::nothrow_base Struct Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::negative_absolute Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,34 +20,28 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">nothrow_base</a>
+ <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1negative__absolute.html">negative_absolute</a>
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::nothrow_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::nothrow_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::nothrow_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1nothrow__base.png" usemap="#boost::xint::options::nothrow_base_map" alt=""/>
- <map id="boost::xint::options::nothrow_base_map" name="boost::xint::options::nothrow_base_map">
-<area href="structboost_1_1xint_1_1options_1_1nothrow.html" alt="boost::xint::options::nothrow&lt; Value &gt;" shape="rect" coords="0,56,221,80"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::negative_absolute Struct Reference</h1><!-- doxytag: class="boost::xint::options::negative_absolute" -->
+<p>Creates an integer type that forces any negative number to its absolute value.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Creates an integer type that forces any negative number to its absolute value. </p>
+<p>A negative result while using this option is automatically changed to its positive counterpart. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00041">41</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00208">208</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <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/structboost_1_1xint_1_1options_1_1negative__allowed.html (from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__allowed.html 2010-06-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::secure_base Struct Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::negative_allowed Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,34 +20,28 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a>
+ <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1negative__allowed.html">negative_allowed</a>
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::secure_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::secure_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::secure_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1secure__base.png" usemap="#boost::xint::options::secure_base_map" alt=""/>
- <map id="boost::xint::options::secure_base_map" name="boost::xint::options::secure_base_map">
-<area href="structboost_1_1xint_1_1options_1_1secure.html" alt="boost::xint::options::secure&lt; Value &gt;" shape="rect" coords="0,56,215,80"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::negative_allowed Struct Reference</h1><!-- doxytag: class="boost::xint::options::negative_allowed" -->
+<p>Creates a signed integer type.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Creates a signed integer type. </p>
+<p>If none of the other <code>negative_*</code> options is specified, this one is used by default. It can also be explicitly specified, to make self-documenting code easier to write. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00040">40</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00156">156</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <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/structboost_1_1xint_1_1options_1_1negative__exception.html (from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1fixedlength__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__exception.html 2010-06-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::fixedlength_base Struct Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::negative_exception Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,34 +20,28 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1fixedlength__base.html">fixedlength_base</a>
+ <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1negative__exception.html">negative_exception</a>
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::fixedlength_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::fixedlength_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::fixedlength_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1fixedlength__base.png" usemap="#boost::xint::options::fixedlength_base_map" alt=""/>
- <map id="boost::xint::options::fixedlength_base_map" name="boost::xint::options::fixedlength_base_map">
-<area href="structboost_1_1xint_1_1options_1_1fixedlength.html" alt="boost::xint::options::fixedlength&lt; Bits &gt;" shape="rect" coords="0,56,224,80"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::negative_exception Struct Reference</h1><!-- doxytag: class="boost::xint::options::negative_exception" -->
+<p>Creates an integer type that considers unsigned values invalid.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Creates an integer type that considers unsigned values invalid. </p>
+<p>When using this option, if a calculation would result in a negative number, the library throws a <code>cannot_represent</code> exception. If exceptions are blocked, the calculation results in a Not-a-Number value instead. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00038">38</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00187">187</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <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/structboost_1_1xint_1_1options_1_1negative__modulus.html (from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__modulus.html 2010-06-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::threadsafe_base Struct Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::negative_modulus Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,34 +20,28 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">threadsafe_base</a>
+ <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1negative__modulus.html">negative_modulus</a>
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::threadsafe_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::threadsafe_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::threadsafe_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1threadsafe__base.png" usemap="#boost::xint::options::threadsafe_base_map" alt=""/>
- <map id="boost::xint::options::threadsafe_base_map" name="boost::xint::options::threadsafe_base_map">
-<area href="structboost_1_1xint_1_1options_1_1threadsafe.html" alt="boost::xint::options::threadsafe&lt; Value &gt;" shape="rect" coords="0,56,236,80"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::negative_modulus Struct Reference</h1><!-- doxytag: class="boost::xint::options::negative_modulus" -->
+<p>Make a fixedlength integer wrap like a built-in unsigned type.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Make a fixedlength integer wrap like a built-in unsigned type. </p>
+<p>This option can only be used with fixed-length types. If a calculation would result in a negative number, the number is "wrapped" in the same way that the built-in unsigned types are. For example, decrementing a zero will give you the maximum value for the type. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00039">39</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00177">177</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <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/structboost_1_1xint_1_1options_1_1negative__not__allowed.html (from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__not__allowed.html 2010-06-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::secure_base Struct Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::negative_not_allowed Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,34 +20,28 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a>
+ <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1negative__not__allowed.html">negative_not_allowed</a>
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::secure_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::secure_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::secure_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1secure__base.png" usemap="#boost::xint::options::secure_base_map" alt=""/>
- <map id="boost::xint::options::secure_base_map" name="boost::xint::options::secure_base_map">
-<area href="structboost_1_1xint_1_1options_1_1secure.html" alt="boost::xint::options::secure&lt; Value &gt;" shape="rect" coords="0,56,215,80"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::negative_not_allowed Struct Reference</h1><!-- doxytag: class="boost::xint::options::negative_not_allowed" -->
+<p>Creates an unsigned integer with the most common negative-value handling.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Creates an unsigned integer with the most common negative-value handling. </p>
+<p>This is a sort of default unsigned option. If the type is fixed-length, it acts like <code><a class="el" href="structboost_1_1xint_1_1options_1_1negative__modulus.html" title="Make a fixedlength integer wrap like a built-in unsigned type.">negative_modulus</a></code>; if not, it acts like <code><a class="el" href="structboost_1_1xint_1_1options_1_1negative__exception.html" title="Creates an integer type that considers unsigned values invalid.">negative_exception</a></code>. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00040">40</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00166">166</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <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/structboost_1_1xint_1_1options_1_1negative__zero.html (from r62997, /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html)
==============================================================================
--- /sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html (original)
+++ sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1negative__zero.html 2010-06-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::secure_base Struct Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::negative_zero Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,34 +20,29 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a>
+ <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1negative__zero.html">negative_zero</a>
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::secure_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::secure_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::secure_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1secure__base.png" usemap="#boost::xint::options::secure_base_map" alt=""/>
- <map id="boost::xint::options::secure_base_map" name="boost::xint::options::secure_base_map">
-<area href="structboost_1_1xint_1_1options_1_1secure.html" alt="boost::xint::options::secure&lt; Value &gt;" shape="rect" coords="0,56,215,80"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::negative_zero Struct Reference</h1><!-- doxytag: class="boost::xint::options::negative_zero" -->
+<p>Creates an integer type that forces any negative number to zero.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
+<p>Creates an integer type that forces any negative number to zero. </p>
+<p>This is useful for saturation arithmetic, though you'll have to handle the upper bound yourself.</p>
+<dl class="see"><dt><b>See also:</b></dt><dd>http://en.wikipedia.org/wiki/Saturation_arithmetic </dd></dl>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00040">40</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00198">198</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::nothrow&lt; Value &gt; Struct Template Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::nothrow Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -28,29 +27,21 @@
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::nothrow&lt; Value &gt; Struct Template Reference</h1><!-- doxytag: class="boost::xint::options::nothrow" --><!-- doxytag: inherits="boost::xint::options::nothrow_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::nothrow&lt; Value &gt;:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1nothrow.png" usemap="#boost::xint::options::nothrow&lt; Value &gt;_map" alt=""/>
- <map id="boost::xint::options::nothrow&lt; Value &gt;_map" name="boost::xint::options::nothrow&lt; Value &gt;_map">
-<area href="structboost_1_1xint_1_1options_1_1nothrow__base.html" alt="boost::xint::options::nothrow_base" shape="rect" coords="0,0,221,24"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::nothrow Struct Reference</h1><!-- doxytag: class="boost::xint::options::nothrow" -->
+<p>Disables exceptions from the library.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
-<h3>template&lt;bool Value&gt;<br/>
- struct boost::xint::options::nothrow&lt; Value &gt;</h3>
-
+<p>Disables exceptions from the library. </p>
+<p>If used, then operations using this library do not throw exceptions, they return special values (most often <a class="el" href="nan.html">Not-a-Number</a>) to indicate failures. The default is to allow exceptions. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00049">49</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00145">145</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow.png
==============================================================================
Binary file. No diff available.

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.html 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
+++ (empty file)
@@ -1,54 +0,0 @@
-<!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: boost::xint::options::nothrow_base Struct Reference</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 class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1nothrow__base.html">nothrow_base</a>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::options::nothrow_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::nothrow_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::nothrow_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1nothrow__base.png" usemap="#boost::xint::options::nothrow_base_map" alt=""/>
- <map id="boost::xint::options::nothrow_base_map" name="boost::xint::options::nothrow_base_map">
-<area href="structboost_1_1xint_1_1options_1_1nothrow.html" alt="boost::xint::options::nothrow&lt; Value &gt;" shape="rect" coords="0,56,221,80"/>
-</map>
- </div>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00041">41</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<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 Sun Jun 13 12:31:58 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>

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1nothrow__base.png
==============================================================================
Binary file. No diff available.

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-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::secure&lt; Value &gt; Struct Template Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::secure Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -28,29 +27,21 @@
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::secure&lt; Value &gt; Struct Template Reference</h1><!-- doxytag: class="boost::xint::options::secure" --><!-- doxytag: inherits="boost::xint::options::secure_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::secure&lt; Value &gt;:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1secure.png" usemap="#boost::xint::options::secure&lt; Value &gt;_map" alt=""/>
- <map id="boost::xint::options::secure&lt; Value &gt;_map" name="boost::xint::options::secure&lt; Value &gt;_map">
-<area href="structboost_1_1xint_1_1options_1_1secure__base.html" alt="boost::xint::options::secure_base" shape="rect" coords="0,0,215,24"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::secure Struct Reference</h1><!-- doxytag: class="boost::xint::options::secure" -->
+<p>Zeros memory before deallocating.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
-<h3>template&lt;bool Value&gt;<br/>
- struct boost::xint::options::secure&lt; Value &gt;</h3>
-
+<p>Zeros memory before deallocating. </p>
+<p>If used, the library zeros out all memory before deallocating it, for maximum security. The default is not to do so, for maximum speed. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00047">47</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00137">137</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure.png
==============================================================================
Binary file. No diff available.

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.html 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
+++ (empty file)
@@ -1,54 +0,0 @@
-<!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: boost::xint::options::secure_base Struct Reference</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 class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1secure__base.html">secure_base</a>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::options::secure_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::secure_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::secure_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1secure__base.png" usemap="#boost::xint::options::secure_base_map" alt=""/>
- <map id="boost::xint::options::secure_base_map" name="boost::xint::options::secure_base_map">
-<area href="structboost_1_1xint_1_1options_1_1secure.html" alt="boost::xint::options::secure&lt; Value &gt;" shape="rect" coords="0,56,215,80"/>
-</map>
- </div>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00040">40</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<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 Sun Jun 13 12:31:58 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>

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1secure__base.png
==============================================================================
Binary file. No diff available.

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-18 20:22:02 EDT (Fri, 18 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: boost::xint::options::threadsafe&lt; Value &gt; Struct Template Reference</title>
+<title>The Extended Integer (XInt) Library: boost::xint::options::threadsafe Struct Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
 </head>
@@ -20,7 +20,6 @@
   <div class="tabs">
     <ul>
       <li>Class List</li>
- <li>Class Hierarchy</li>
       <li>Class Members</li>
     </ul>
   </div>
@@ -28,29 +27,22 @@
   </div>
 </div>
 <div class="contents">
-<h1>boost::xint::options::threadsafe&lt; Value &gt; Struct Template Reference</h1><!-- doxytag: class="boost::xint::options::threadsafe" --><!-- doxytag: inherits="boost::xint::options::threadsafe_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::threadsafe&lt; Value &gt;:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1threadsafe.png" usemap="#boost::xint::options::threadsafe&lt; Value &gt;_map" alt=""/>
- <map id="boost::xint::options::threadsafe&lt; Value &gt;_map" name="boost::xint::options::threadsafe&lt; Value &gt;_map">
-<area href="structboost_1_1xint_1_1options_1_1threadsafe__base.html" alt="boost::xint::options::threadsafe_base" shape="rect" coords="0,0,236,24"/>
-</map>
- </div>
-</div>
+<h1>boost::xint::options::threadsafe Struct Reference</h1><!-- doxytag: class="boost::xint::options::threadsafe" -->
+<p>Ensures that the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> objects can be safely used by multiple threads.
+More...</p>
 <table border="0" cellpadding="0" cellspacing="0">
 </table>
 <hr/><a name="_details"></a><h2>Detailed Description</h2>
-<h3>template&lt;bool Value&gt;<br/>
- struct boost::xint::options::threadsafe&lt; Value &gt;</h3>
-
+<p>Ensures that the <a class="el" href="classboost_1_1xint_1_1integer__t.html" title="The integer_t class template.">integer_t</a> objects can be safely used by multiple threads. </p>
+<p>This is the opposite of the <a class="el" href="structboost_1_1xint_1_1options_1_1copy__on__write.html">copy_on_write</a> option. It is the default behavior; the option is provided only to make it easier to write self-documenting code.</p>
+<p>Note that even with this option, it is still your responsibility to ensure that only one thread accesses a particular integer object at a time. </p>
 
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00045">45</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
+<p>Definition at line <a class="el" href="options_8hpp_source.html#l00112">112</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
 <hr/>The documentation for this struct was generated from the following file:<ul>
 <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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe.png
==============================================================================
Binary file. No diff available.

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html
==============================================================================
--- sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.html 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
+++ (empty file)
@@ -1,54 +0,0 @@
-<!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: boost::xint::options::threadsafe_base Struct Reference</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 class="current">Classes</li>
- <li>Files</li>
- </ul>
- </div>
- <div class="tabs">
- <ul>
- <li>Class List</li>
- <li>Class Hierarchy</li>
- <li>Class Members</li>
- </ul>
- </div>
- <div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<a class="el" href="namespaceboost_1_1xint.html">xint</a>::<a class="el" href="namespaceboost_1_1xint_1_1options.html">options</a>::<a class="el" href="structboost_1_1xint_1_1options_1_1threadsafe__base.html">threadsafe_base</a>
- </div>
-</div>
-<div class="contents">
-<h1>boost::xint::options::threadsafe_base Struct Reference</h1><!-- doxytag: class="boost::xint::options::threadsafe_base" --><div class="dynheader">
-Inheritance diagram for boost::xint::options::threadsafe_base:</div>
-<div class="dynsection">
- <div class="center">
- <img src="structboost_1_1xint_1_1options_1_1threadsafe__base.png" usemap="#boost::xint::options::threadsafe_base_map" alt=""/>
- <map id="boost::xint::options::threadsafe_base_map" name="boost::xint::options::threadsafe_base_map">
-<area href="structboost_1_1xint_1_1options_1_1threadsafe.html" alt="boost::xint::options::threadsafe&lt; Value &gt;" shape="rect" coords="0,56,236,80"/>
-</map>
- </div>
-</div>
-<table border="0" cellpadding="0" cellspacing="0">
-</table>
-<hr/><a name="_details"></a><h2>Detailed Description</h2>
-
-<p>Definition at line <a class="el" href="options_8hpp_source.html#l00039">39</a> of file <a class="el" href="options_8hpp_source.html">options.hpp</a>.</p>
-<hr/>The documentation for this struct was generated from the following file:<ul>
-<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 Sun Jun 13 12:31:58 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>

Deleted: sandbox/xint/libs/xint/doc/structboost_1_1xint_1_1options_1_1threadsafe__base.png
==============================================================================
Binary file. No diff available.

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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -23,11 +23,11 @@
 <div class="contents">
 
 
-<h1><a class="anchor" id="threadsafe">The <code>threadsafe</code> Template Parameter </a></h1><p>The <code>threadsafe</code> parameter on the integer_t template controls the copy-on-write behavior of the program. When set to <code>false</code>, identical integer objects are allowed to share storage, which is more efficient for both CPU power and memory, but which is generally unsafe for multithreaded programs.</p>
+<h1><a class="anchor" id="threadsafe">The <code>threadsafe</code> Template Parameter </a></h1><p>The <code>threadsafe</code> and <code>copy_on_write</code> parameters on the integer_t template control the copy-on-write behavior of the library. When using <code>copy_on_write</code>, identical integer objects are allowed to share storage, which is more efficient for both CPU power and memory, but which is generally unsafe for multithreaded use.</p>
 <p>That's a simplification though. The only problem multithreaded programs have with copy-on-write is that one thread might change an object while another is reading from it. Since the copy-on-write behavior is entirely internal to the class, no other code can tell when it's safe to make changes to an object. This is only a problem when more than one thread can access a specific object. So long as an integer object is only accessed from the thread that it's created in, there's no danger.</p>
-<p>If you want the speed of copy-on-write (which can be noticeable if you're dealing with very large numbers), but need to use integer objects from multiple threads when one or more might alter them, you can use the <code>force_thread_safety</code> parameter on the object's copy constructor to make a duplicate of an object with its own unique storage, even if the <code>threadsafe</code> template parameter is <code>false</code>. You'll only need to do that when the integer object is crossing thread boundaries. </p>
+<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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.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-18 20:22:02 EDT (Fri, 18 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 Sun Jun 13 12:31:58 2010 for The Extended Integer (XInt) Library by&nbsp;
+<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;
 <a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
 </body>

Modified: sandbox/xint/libs/xint/test/test_add.cpp
==============================================================================
--- sandbox/xint/libs/xint/test/test_add.cpp (original)
+++ sandbox/xint/libs/xint/test/test_add.cpp 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -177,5 +177,13 @@
     BOOST_CHECK_EQUAL(--min1, 0);
 }
 
+BOOST_AUTO_TEST_CASE(test_difference) {
+ typedef integer_t<xopts::negative_not_allowed> T;
+ T n1(3), n2(5);
+ BOOST_CHECK_THROW(n1 - n2, xint::exceptions::cannot_represent);
+ BOOST_CHECK_EQUAL(difference(n1, n2), 2);
+ BOOST_CHECK_EQUAL(difference(n2, n1), 2);
+}
+
 } // namespace xint
 } // namespace boost

Modified: sandbox/xint/libs/xint/test/test_fixed.cpp
==============================================================================
--- sandbox/xint/libs/xint/test/test_fixed.cpp (original)
+++ sandbox/xint/libs/xint/test/test_fixed.cpp 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -122,11 +122,18 @@
     BOOST_CHECK_EQUAL(+one, 1);
     BOOST_CHECK_EQUAL(-one, -1);
 
+ // Digit-and-a-half
     const size_t bits = detail::bits_per_digit + (detail::bits_per_digit / 2);
- typedef integer_t<fixedlength<bits> > T; // Digit-and-a-half
- boost::uintmax_t src = 0x12345678;
- T t(src);
- BOOST_CHECK_EQUAL(~t, T(~src));
+ typedef integer_t<fixedlength<bits>, negative_not_allowed> T;
+ boost::uintmax_t usrc = 0x12345678;
+ T t(usrc);
+ BOOST_CHECK_EQUAL(~t, ~usrc);
+
+ const std::size_t int32bits = 31; // 31 bits for magnitude, 1 for sign
+ typedef integer_t<fixedlength<int32bits>, negative_allowed> U;
+ boost::int32_t ssrc = 0x12345678, exp = -0x6DCBA987;
+ U u(ssrc);
+ BOOST_CHECK_EQUAL(~u, exp);
 }
 
 BOOST_AUTO_TEST_CASE(test_fixed_add_subtract) {
@@ -152,5 +159,16 @@
     BOOST_CHECK_EQUAL(n4, 1);
 }
 
+BOOST_AUTO_TEST_CASE(test_unsigned_negative_modulus) {
+ const size_t bits = detail::bits_per_digit + (detail::bits_per_digit / 2);
+ typedef integer_t<fixedlength<bits>, negative_not_allowed> T;
+
+ const T max_value(boost::uintmax_t(-1));
+ T t(0);
+ BOOST_CHECK_EQUAL(--t, max_value);
+ BOOST_CHECK_EQUAL(T(1) - 3, max_value - 1);
+ BOOST_CHECK_EQUAL(T("-1"), max_value);
+}
+
 } // namespace xint
 } // namespace boost

Modified: sandbox/xint/libs/xint/test/test_main.cpp
==============================================================================
--- sandbox/xint/libs/xint/test/test_main.cpp (original)
+++ sandbox/xint/libs/xint/test/test_main.cpp 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -27,7 +27,13 @@
 
     // To ensure that the compiler doesn't optimize away important parts of the
     // tests.
- #define USE_NUMBER(n) n._data().beginendmod();
+ std::size_t counter;
+ #define USE_NUMBER(n) counter += n._data().max_length()
+
+ // Select the integer type to use in the tests.
+ namespace xopts = boost::xint::options;
+ //typedef boost::xint::integer_t<xopts::threadsafe<false> > T;
+ typedef boost::xint::integer_t<> T;
 
     // For running comparative tests with different options
     int main() {
@@ -40,18 +46,18 @@
 
         cout << "Generating numbers..." << endl;
         default_random_generator gen;
- std::vector<integer> n1, n2;
+ std::vector<T> n1, n2;
         for (size_t x = 0; x < raw_number_pairs; ++x) {
- n1.push_back(integer::random_by_size(gen, bits, true, true));
- n2.push_back(integer::random_by_size(gen, bits, true, true));
+ n1.push_back(T::random_by_size(gen, bits, true, true));
+ n2.push_back(T::random_by_size(gen, bits, true, true));
         }
- const integer nmod = integer::random_by_size(gen, bits, true, true);
+ const T nmod = T::random_by_size(gen, bits, true, true);
 
         cout << "Running addition test" << flush;
         for (size_t x = 0; x < 10; ++x) {
             for (size_t y = 0; y < add_rounds / 10; ++y) {
                 for (size_t round = 0; round < raw_number_pairs; ++round) {
- integer r = n1[round] + n2[round];
+ T r = n1[round] + n2[round];
                     USE_NUMBER(r);
                 }
             }
@@ -63,7 +69,7 @@
         for (size_t x = 0; x < 10; ++x) {
             for (size_t y = 0; y < mult_rounds / 10; ++y) {
                 for (size_t round = 0; round < raw_number_pairs; ++round) {
- integer r = n1[round] * n2[round];
+ T r = n1[round] * n2[round];
                     USE_NUMBER(r);
                 }
             }
@@ -75,7 +81,7 @@
         for (size_t x = 0; x < 10; ++x) {
             for (size_t y = 0; y < mulmod_rounds / 10; ++y) {
                 for (size_t round = 0; round < raw_number_pairs; ++round) {
- integer r = mulmod(n1[round], n2[round], nmod);
+ T r = mulmod(n1[round], n2[round], nmod);
                     USE_NUMBER(r);
                 }
             }

Modified: sandbox/xint/libs/xint/test/test_misc.cpp
==============================================================================
--- sandbox/xint/libs/xint/test/test_misc.cpp (original)
+++ sandbox/xint/libs/xint/test/test_misc.cpp 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -108,15 +108,6 @@
     }
 }
 
-BOOST_AUTO_TEST_CASE(test_throwing_nan) {
- BOOST_CHECK_THROW(integer::nan(), exceptions::not_a_number);
-}
-
-BOOST_AUTO_TEST_CASE(test_nonfixed_bitwise_not) {
- integer n;
- BOOST_CHECK_THROW(~n, exceptions::too_big);
-}
-
 BOOST_AUTO_TEST_CASE(test_random_by_size) {
     default_random_generator gen;
     integer n = integer::random_by_size(gen, 512, true);
@@ -125,5 +116,67 @@
     BOOST_CHECK_EQUAL(log2(n), 512);
 }
 
+BOOST_AUTO_TEST_CASE(test_unsigned_negative_policies) {
+ {
+ // Test signed behavior
+ typedef integer_t<negative_allowed> T;
+ T t;
+ BOOST_CHECK_EQUAL(--t, -1);
+ }
+
+ {
+ // Test unsigned variable-length default
+ typedef integer_t<negative_not_allowed> T;
+ T t;
+ BOOST_CHECK_THROW(--t, xint::exceptions::cannot_represent);
+ }
+
+ {
+ // Test unsigned fixedlength default
+ typedef integer_t<fixedlength<12>, negative_not_allowed> T;
+ T t;
+ BOOST_CHECK_EQUAL(--t, (std::numeric_limits<T>::max)());
+ }
+
+ {
+ // Test unsigned fixedlength modulus
+ typedef integer_t<fixedlength<12>, negative_modulus> T;
+ T t;
+ BOOST_CHECK_EQUAL(--t, (std::numeric_limits<T>::max)());
+ }
+
+ // Can't test unsigned variable-length modulus, because if it's working
+ // right, it can't be compiled.
+
+ {
+ // Test exception on standard integers
+ typedef integer_t<negative_exception> T;
+ T t;
+ BOOST_CHECK_THROW(--t, xint::exceptions::cannot_represent);
+ }
+
+ {
+ // Test exception on nothrow integers
+ typedef integer_t<negative_exception, nothrow> T;
+ T t;
+ --t;
+ BOOST_CHECK(t.is_nan());
+ }
+
+ {
+ // Test force-to-zero
+ typedef integer_t<negative_zero> T;
+ T t;
+ BOOST_CHECK_EQUAL(--t, 0);
+ }
+
+ {
+ // Test force-to-absolute
+ typedef integer_t<negative_absolute> T;
+ T t;
+ BOOST_CHECK_EQUAL(--t, 1);
+ }
+}
+
 } // namespace xint
 } // namespace boost

Modified: sandbox/xint/libs/xint/test/test_nothrow.cpp
==============================================================================
--- sandbox/xint/libs/xint/test/test_nothrow.cpp (original)
+++ sandbox/xint/libs/xint/test/test_nothrow.cpp 2010-06-18 20:22:02 EDT (Fri, 18 Jun 2010)
@@ -34,7 +34,7 @@
 
     // Test the copy constructor from a different type of nothrow_integer's
     // Not-a-Number value.
- nothrow_integer n3(integer_t<fixedlength<12>, nothrow<true> >::nan());
+ nothrow_integer n3(integer_t<fixedlength<12>, nothrow>::nan());
     BOOST_CHECK(n3.is_nan());
 }
 


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